Skip to content

Latest commit

 

History

History
138 lines (104 loc) · 4.2 KB

File metadata and controls

138 lines (104 loc) · 4.2 KB

DevLink - A Platform for Developer Collaboration

DevLink is a modern web platform that connects developers with projects and collaborators, functioning like a "Tinder for Developers." It enables efficient discovery and collaboration between developers and project owners.

✨ Features

🔄 Real-time Messaging & Notifications

  • Instant Messaging: Real-time chat between matched users using Pusher
  • Live Notifications: Instant notifications for applications, matches, and updates
  • WebSocket Support: Powered by Pusher for reliable, scalable real-time communication

🤝 Smart Matching System

  • Swipe Interface: Tinder-like discovery for projects and developers
  • Mutual Matching: Connect when both parties show interest
  • Skill-based Matching: Algorithm considers skills, experience, and project needs

👤 Developer Profiles

  • GitHub Integration: Automatic profile population from GitHub
  • Skills Management: Comprehensive skill listing and verification
  • Portfolio Showcase: Display projects, contributions, and achievements

📋 Project Management

  • Project Creation: Detailed project posting with role requirements
  • Application System: Handle developer applications efficiently
  • Collaboration Tools: Manage team members and project progress

🚀 Getting Started

Prerequisites

  • Node.js 18+
  • MongoDB database
  • Pusher account (free tier available)

Installation

  1. Clone the repository
git clone <repository-url>
cd devlink
  1. Install dependencies
npm install
  1. Set up environment variables Create a .env.local file with:
# Database
MONGODB_URI=your_mongodb_connection_string

# Authentication
NEXTAUTH_SECRET=your_nextauth_secret
NEXTAUTH_URL=http://localhost:3000

# GitHub OAuth
GITHUB_CLIENT_ID=your_github_client_id
GITHUB_CLIENT_SECRET=your_github_client_secret

# Pusher (for real-time features)
PUSHER_APP_ID=your_pusher_app_id
PUSHER_KEY=your_pusher_key
PUSHER_SECRET=your_pusher_secret
PUSHER_CLUSTER=your_pusher_cluster
NEXT_PUBLIC_PUSHER_KEY=your_pusher_key
NEXT_PUBLIC_PUSHER_CLUSTER=your_pusher_cluster
  1. Run the development server
npm run dev

Open http://localhost:3000 to see the application.

📖 Documentation

🛠️ Tech Stack

  • Frontend: Next.js 15, React 19, TypeScript
  • Styling: Tailwind CSS, Radix UI
  • Backend: Next.js API Routes
  • Database: MongoDB with Mongoose
  • Authentication: NextAuth.js with GitHub OAuth
  • Real-time: Pusher Channels
  • Deployment: Vercel-ready

🚀 Deployment

This application is optimized for Vercel deployment:

  1. Connect your GitHub repository to Vercel
  2. Add environment variables in Vercel dashboard
  3. Deploy automatically on every push

The real-time features work seamlessly on Vercel with no additional configuration needed.

🧪 Testing Real-time Features

  1. Open the application in two browser windows
  2. Log in as different users
  3. Create a match between the users
  4. Test instant messaging and notifications

Use the test script in scripts/test-pusher.js to verify Pusher connection.

📁 Project Structure

├── app/                    # Next.js app directory
│   ├── api/               # API routes
│   ├── (pages)/           # Application pages
│   └── globals.css        # Global styles
├── components/            # React components
│   ├── ui/               # UI components
│   ├── matches/          # Match-related components
│   └── projects/         # Project-related components
├── lib/                  # Utility libraries
├── models/               # Database models
├── types/                # TypeScript definitions
└── hooks/                # Custom React hooks

🤝 Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Add tests if needed
  5. Submit a pull request

📄 License

This project is licensed under the MIT License.