SyncUp is a full-stack web application designed to simplify project management and enhance team collaboration through real-time communication, task tracking, and role-based project administration.
Built using the MERN Stack with Socket.IO, SyncUp enables teams to create projects, manage tasks, collaborate efficiently, and receive instant notifications.
- JWT-based Authentication
- Secure Password Hashing using bcrypt
- Protected Routes
- Role-Based Access Control (RBAC)
- Create and Manage Projects
- Request-Based Project Joining System
- Admin Approval Workflow
- Team Member Management
- Kanban-Style Task Board
- Task Assignment
- Priority Management
- Deadline Tracking
- Status Updates:
- Pending
- In Progress
- Completed
- Instant Notifications
- Live Task Updates
- Real-Time Project Activity
- Socket.IO Integration
- Project Statistics Dashboard
- Task Distribution Charts
- Team Contribution Analysis
- Excel Data Export
- Mobile-Friendly Interface
- Modern UI with Tailwind CSS
- Fast and Smooth User Experience
SyncUp follows a Three-Tier Architecture:
Frontend (React + Vite)
β
Backend (Node.js + Express)
β
Database (MongoDB)
Real-time communication is powered by Socket.IO.
- React
- Vite
- React Router
- Tailwind CSS
- Axios
- Recharts
- Node.js
- Express.js
- MongoDB
- Mongoose
- Socket.IO
- JWT (JSON Web Tokens)
- bcryptjs
- CORS
SyncUp/
β
βββ backend/
β βββ controllers/
β βββ routes/
β βββ middleware/
β βββ models/
β βββ socket/
β βββ server.js
β
βββ frontend/
β βββ src/
β β βββ pages/
β β βββ components/
β β βββ services/
β β βββ App.jsx
β β
β βββ vite.config.js
β
βββ README.md
- Node.js v18+
- MongoDB v6+
- Git
git clone https://github.com/your-username/syncup.git
cd syncupcd backend
npm install
npm run devCreate a .env file:
PORT=5000
MONGO_URI=your_mongodb_connection_string
JWT_SECRET=your_secret_key
CLIENT_URL=http://localhost:5173cd frontend
npm install
npm run devFrontend runs on:
http://localhost:5173
| Method | Endpoint |
|---|---|
| POST | /api/auth/signup |
| POST | /api/auth/login |
| GET | /api/auth/me |
| PUT | /api/auth/me |
| Method | Endpoint |
|---|---|
| POST | /api/projects/create |
| GET | /api/projects |
| GET | /api/projects/my-projects |
| POST | /api/projects/join/:id |
| POST | /api/projects/accept/:id |
| DELETE | /api/projects/:id |
| Method | Endpoint |
|---|---|
| POST | /api/tasks/create |
| GET | /api/tasks/:projectId |
| POST | /api/tasks/update/:id |
SyncUp uses Socket.IO to provide:
- Project Join Requests
- Task Assignment Notifications
- Task Status Updates
- Instant Team Activity Alerts
All notifications are:
- Delivered in real-time
- Persisted in MongoDB
- Marked Read/Unread
| Feature | Performance |
|---|---|
| Authentication | ~150ms |
| Project Listing | ~200ms |
| Task Creation | ~180ms |
| Notifications | ~120ms |
| Real-Time Latency | <100ms |
- Password Hashing with bcrypt
- JWT Authentication
- Protected API Routes
- Input Validation
- Role-Based Authorization
- Environment Variable Protection
- CORS Configuration
- Automated Testing (Jest & Cypress)
- API Rate Limiting
- Enhanced Logging
- Error Monitoring
- Task Comments
- File Attachments
- Time Tracking
- Email Notifications
- Activity Timeline
- Mobile Applications
- AI-Powered Task Suggestions
- Slack & GitHub Integration
- GraphQL API
- Multi-Language Support
Through this project, the following skills were developed:
- Full-Stack MERN Development
- REST API Design
- Real-Time Communication with Socket.IO
- MongoDB Database Design
- Authentication & Authorization
- Responsive UI Development
- Security Best Practices
- Scalable System Architecture
Contributions are welcome!
- Fork the repository
- Create a feature branch
git checkout -b feature-name- Commit changes
git commit -m "Add new feature"- Push to GitHub
git push origin feature-name- Open a Pull Request
This project is licensed under the MIT License.
Gayatri Padalia
BCA (Hons.) Artificial Intelligence & Data Science
Graphic Era Hill University, Haldwani
During my college journey, I observed that project teams are often formed every semester, but the majority of the work is completed by only one or two students while others remain dependent on them. Mentors typically evaluate the final report and presentation without visibility into each student's actual contribution.
Project Collaboration Hub was inspired by the transparency and collaboration culture seen on GitHub. The goal is to bring similar accountability and teamwork to academic projects by allowing mentors and examiners to understand who contributed, what work was completed, when it was completed, and how the team collaborated throughout the project.
I hope this platform can help students learn more effectively, contribute fairly, and receive recognition for their genuine efforts.
β If you like this project, don't forget to star the repository!