SkillShare is a collaborative platform where developers can sign up, post their skills, and join or create projects based on matching expertise. This repository includes the backend built with Node.js, Express.js, and MongoDB.
- User Authentication: JWT-based login/signup with email & password.
- Role-based Access: Support for User and Admin roles.
- User Profiles: Bio, profile picture URL, skills list, and social links (GitHub, LinkedIn).
- Project Listings: Create and manage projects with title, description, required skills, and status (open/closed).
- Matching System: Fetch projects based on a user's skills.
- Collaboration Requests: Request to join projects and accept/reject members.
- Admin Panel (optional): Monitor users, ban/report abuse (to be implemented).
- Backend: Node.js, Express.js
- Database: MongoDB (Mongoose ODM)
- Authentication: JWT (JSON Web Tokens)
git clone https://github.com/your-username/skillshare-backend.git
cd skillshare-backend
npm install
Create a .env file in the root with the following variables:
PORT=5000
MONGO_URI=your_mongodb_connection_string
JWT_SECRET=your_jwt_secret
npm run dev.
├── controllers/
├── models/
├── routes/
├── middlewares/
├── utils/
├── config/
├── server.js
POST /api/v1/auth/register— Register a new userPOST /api/v1/auth/login— Login userGET /api/v1/projects— Get all projectsPOST /api/v1/projects— Create a new projectPOST /api/v1/need/:projectId/join— Request to join a projectPOST /api/v1/request/my-requests— View all join requests by the current userGET /api/v1/users/me— Get current user profile
- Admin panel UI & moderation tools
- Email notifications
- Search and filter by tech stack
- Real-time chat/collaboration features
Developed by Hrishabh Gupta — Connect with me on GitHub