DevLinkUp is a platform designed to connect developers based on their skill sets, projects, and interests. This repository contains the backend logic that powers the matching algorithm, user profiles, and communication features.
- Developer Profiles: Create and customize profiles with skills, projects, and interests.
- Matching Algorithm: Matches developers based on similar skill sets, interests, and project goals.
- Real-time Chat: Allows developers to communicate with each other directly via real-time messaging.
- Project Collaboration: Propose and join development projects with other users.
- Authentication: Secure login and signup via email/password or OAuth providers.
- Node.js: Backend runtime environment.
- Express.js: Web framework for building APIs.
- MongoDB: NoSQL database for storing user profiles, messages, and project data.
- Socket.io: Real-time communication for chat features.
- JWT: JSON Web Tokens for secure authentication and session management.
- Redis: Caching layer for faster match lookups and storing real-time chat data.
To get the backend up and running locally, follow these steps:
-
Clone the repository:
git clone https://github.com/KhalkarYash/dev-link-up-backend.git cd dev-link-up-backend -
Install dependencies:
Make sure you have Node.js and MongoDB installed.
npm install
-
Set up environment variables:
Create a
.envfile in the root directory and add the necessary environment variables (see Environment Variables). -
Start the development server:
npm run dev
The backend server should now be running at
http://localhost:5000.
The backend requires a few environment variables to be set for proper functioning. Create a .env file in the root directory and include the following:
MONGODB_URI=<your-mongodb-uri>
JWT_SECRET=<your-jwt-secret>
REDIS_URL=<your-redis-url>
PORT=5000Here are some of the main API endpoints the backend exposes:
POST /api/auth/signup- Register a new userPOST /api/auth/login- Login a user and generate JWT token
GET /api/users/:id- Get user profile by IDPUT /api/users/:id- Update user profile
GET /api/matches- Get a list of developer matches based on skills and interestsPOST /api/matches/swipe- Swipe left or right on a developer
GET /api/chat/:conversationId- Get messages for a conversationPOST /api/chat- Send a new message in a conversation
GET /api/projects- Get a list of projectsPOST /api/projects- Create a new projectPUT /api/projects/:id- Update project details
We welcome contributions! Please follow these steps:
- Fork the repository.
- Create a new branch:
git checkout -b feature/your-feature-name. - Make your changes and commit them:
git commit -m 'Add new feature'. - Push to the branch:
git push origin feature/your-feature-name. - Submit a pull request.
This project is licensed under the MIT License - see the LICENSE file for details.