Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

12 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸš€ Project Collaboration Hub - Real-Time Project Management & Team Collaboration Platform

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.


🌟 Features

πŸ” Authentication & Security

  • JWT-based Authentication
  • Secure Password Hashing using bcrypt
  • Protected Routes
  • Role-Based Access Control (RBAC)

πŸ‘₯ Team Collaboration

  • Create and Manage Projects
  • Request-Based Project Joining System
  • Admin Approval Workflow
  • Team Member Management

πŸ“‹ Task Management

  • Kanban-Style Task Board
  • Task Assignment
  • Priority Management
  • Deadline Tracking
  • Status Updates:
    • Pending
    • In Progress
    • Completed

⚑ Real-Time Functionality

  • Instant Notifications
  • Live Task Updates
  • Real-Time Project Activity
  • Socket.IO Integration

πŸ“Š Analytics & Reporting

  • Project Statistics Dashboard
  • Task Distribution Charts
  • Team Contribution Analysis
  • Excel Data Export

πŸ“± Responsive Design

  • Mobile-Friendly Interface
  • Modern UI with Tailwind CSS
  • Fast and Smooth User Experience

πŸ—οΈ System Architecture

SyncUp follows a Three-Tier Architecture:

Frontend (React + Vite)
        ↓
Backend (Node.js + Express)
        ↓
Database (MongoDB)

Real-time communication is powered by Socket.IO.


πŸ› οΈ Tech Stack

Frontend

  • React
  • Vite
  • React Router
  • Tailwind CSS
  • Axios
  • Recharts

Backend

  • Node.js
  • Express.js
  • MongoDB
  • Mongoose
  • Socket.IO

Security

  • JWT (JSON Web Tokens)
  • bcryptjs
  • CORS

πŸ“‚ Project Structure

SyncUp/
β”‚
β”œβ”€β”€ backend/
β”‚   β”œβ”€β”€ controllers/
β”‚   β”œβ”€β”€ routes/
β”‚   β”œβ”€β”€ middleware/
β”‚   β”œβ”€β”€ models/
β”‚   β”œβ”€β”€ socket/
β”‚   └── server.js
β”‚
β”œβ”€β”€ frontend/
β”‚   β”œβ”€β”€ src/
β”‚   β”‚   β”œβ”€β”€ pages/
β”‚   β”‚   β”œβ”€β”€ components/
β”‚   β”‚   β”œβ”€β”€ services/
β”‚   β”‚   └── App.jsx
β”‚   β”‚
β”‚   └── vite.config.js
β”‚
└── README.md

πŸš€ Installation & Setup

Prerequisites

  • Node.js v18+
  • MongoDB v6+
  • Git

Clone Repository

git clone https://github.com/your-username/syncup.git
cd syncup

Backend Setup

cd backend

npm install

npm run dev

Create a .env file:

PORT=5000

MONGO_URI=your_mongodb_connection_string

JWT_SECRET=your_secret_key

CLIENT_URL=http://localhost:5173

Frontend Setup

cd frontend

npm install

npm run dev

Frontend runs on:

http://localhost:5173

πŸ”Œ API Endpoints

Authentication

Method Endpoint
POST /api/auth/signup
POST /api/auth/login
GET /api/auth/me
PUT /api/auth/me

Projects

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

Tasks

Method Endpoint
POST /api/tasks/create
GET /api/tasks/:projectId
POST /api/tasks/update/:id

πŸ”” Real-Time Notification System

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

πŸ“ˆ Performance Highlights

Feature Performance
Authentication ~150ms
Project Listing ~200ms
Task Creation ~180ms
Notifications ~120ms
Real-Time Latency <100ms

πŸ”’ Security Features

  • Password Hashing with bcrypt
  • JWT Authentication
  • Protected API Routes
  • Input Validation
  • Role-Based Authorization
  • Environment Variable Protection
  • CORS Configuration

🎯 Future Enhancements

Short-Term

  • Automated Testing (Jest & Cypress)
  • API Rate Limiting
  • Enhanced Logging
  • Error Monitoring

Medium-Term

  • Task Comments
  • File Attachments
  • Time Tracking
  • Email Notifications
  • Activity Timeline

Long-Term

  • Mobile Applications
  • AI-Powered Task Suggestions
  • Slack & GitHub Integration
  • GraphQL API
  • Multi-Language Support

πŸ“š Learning Outcomes

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

🀝 Contributing

Contributions are welcome!

  1. Fork the repository
  2. Create a feature branch
git checkout -b feature-name
  1. Commit changes
git commit -m "Add new feature"
  1. Push to GitHub
git push origin feature-name
  1. Open a Pull Request

πŸ“„ License

This project is licensed under the MIT License.


πŸ‘©β€πŸ’» Author

Gayatri Padalia BCA (Hons.) Artificial Intelligence & Data Science
Graphic Era Hill University, Haldwani

🌟 Founder’s Note

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!

About

A Real-Time Project Management and Team Collaboration Platform

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages