A full-stack developer collaboration platform for discovering projects, finding collaborators, communicating in real time, and tracking project progress.
Live Demo: https://projectbuddy-dzn3.onrender.com
GitHub: https://github.com/VirajM723/ProjectBuddy
Project Buddy is a web application designed to help developers connect and collaborate on software projects. Users can create projects, find collaborators, communicate through project-specific chat, manage milestones, and track contributions from a single platform.
The application also includes location-based project discovery, activity tracking, and backend protections against spam and abuse.
Project Buddy uses JWT-based authentication to secure user sessions.
- Register and log in using email and password
- Secure password hashing with bcrypt
- Protected routes using JWT
- Role-based authorization
- Default profile picture assigned during registration
- Upload a custom profile picture at any time
Create projects and manage collaborators from a single dashboard.
- Create and edit projects
- Add descriptions, required skills, tech stack, and commitment level
- Search projects by title, description, creator, tags, or technologies
- Filter projects based on skills, tech stack, location, and commitment
- Browse projects posted by the community
Users can apply to projects and project owners can manage incoming applications.
- Send collaboration requests
- Accept or reject applicants
- Manage project members
- Keep track of team composition
Each project includes a dedicated chat room powered by native WebSockets.
- Instant messaging between collaborators
- Project-specific conversations
- Messages are stored in MongoDB for future access
- Automatically synchronizes conversations across connected users
Every project maintains an activity feed that updates in real time.
The feed records important events such as:
- New collaborators joining
- Project updates
- Milestone completion
This allows team members to stay informed without manually checking project details.
Projects can be divided into milestones to organize development.
Users can:
- Create milestones
- Assign milestones to collaborators
- Mark milestones as completed
- Track overall project progress
- View milestone history through activity logs
Project Buddy includes a GitHub-style contribution heatmap built using D3.js.
The heatmap provides a visual overview of user activity by tracking:
- Daily contributions
- Project participation
- Development consistency
Every user has a public profile showcasing their work and activity.
Profiles include:
- Bio
- Technical skills
- Projects
- Contribution heatmap
- Activity history
- External links
- Profile picture
New accounts automatically receive a default profile image until one is uploaded via URL.
Users can endorse the technical skills of other developers.
These endorsements help showcase experience and improve profile credibility.
Projects are indexed using H3 spatial indexing to support location-aware discovery.
Users can:
- Filter projects near their location
- Discover local collaboration opportunities
- Combine location filters with existing search and filter options
The backend uses express-rate-limit to prevent abuse and protect
application resources.
Configured limits:
- Login / Register: 10 attempts per 15 minutes per IP
- Project Creation: Maximum 5 projects per day per user
- Collaboration Requests: Maximum 10 requests per hour per user
These limits help prevent spam, brute-force attacks, and excessive API usage while maintaining a smooth user experience.These limits reduce spam, brute-force attacks, and excessive API usage while maintaining a smooth user experience.
Frontend - React - TypeScript - Vite - Tailwind CSS - Framer Motion - Axios - D3.js
Backend - Node.js - Express.js - MongoDB - Mongoose - JWT - Native WebSockets - bcrypt - express-rate-limit - H3.js
git clone https://github.com/VirajM723/ProjectBuddy.git
cd ProjectBuddy
npm installCreate a .env file.
MONGODB_URI=
JWT_SECRET=
PORT=Start the development server.
npm run dev- Authentication
- Users
- Projects
- Collaboration Requests
- Milestones
- Chat
- Activity Logs
- Skill Endorsements
- Real-time notifications
- Mobile responsive improvements
- AI teammate recommendations
- Calendar and deadline management





