---JUST FOR DEMO---
A comprehensive full-stack team collaboration application built with React frontend, Python FastAPI backend, and MySQL database. This MVP demonstrates modern web development practices with real-time features, responsive design, and robust backend architecture.
- π Authentication: Secure JWT-based registration, login, and logout
- π Project Management: Create projects, manage team members with role-based access
- β Task Management: Create, assign, and track tasks with status updates
- π¬ Real-time Communication: Threaded comments and discussions
- π Smart Notifications: In-app and email notifications with deadline reminders
- π± Responsive Design: Fully responsive for desktop, tablet, and mobile
- β‘ Real-time Updates: WebSocket integration for live collaboration
- π§ Email System: Automated deadline reminders and task notifications
- π¨ Modern UI/UX: Clean, intuitive interface with CSS animations
- π Secure Backend: JWT authentication with password hashing
- π Progress Tracking: Visual progress indicators and completion statistics
- React 19 with TypeScript
- React Router for navigation
- Context API for state management
- CSS3 with Flexbox/Grid (no external UI libraries)
- WebSocket API for real-time features
- FastAPI with Python 3.8+
- JWT Authentication with bcrypt password hashing
- MySQL database with connection pooling
- WebSocket support for real-time updates
- APScheduler for background tasks
- SMTP integration for email notifications
- MySQL 8.0+ with foreign key constraints
- Normalized schema with proper indexing
- Sample data for testing and development
project-management-system/ βββ server/ # Backend API β βββ app.js # Main server entry point β βββ config/ # Configuration files β β βββ database.js # PostgreSQL connection & schema β β βββ redis.js # Redis connection & cache utilities β βββ middleware/ # Express middleware β β βββ auth.js # Authentication & authorization β β βββ errorHandler.js # Centralized error handling β βββ routes/ # API route handlers β β βββ auth.js # Authentication endpoints β β βββ projects.js # Project CRUD operations β β βββ tasks.js # Task management β β βββ discussions.js # Discussion threads β β βββ users.js # User management β β βββ notifications.js # Notification system β βββ services/ # Business logic services β β βββ deadlineService.js # Deadline monitoring β βββ socket/ # WebSocket handlers β β βββ socketHandler.js # Real-time event handling β βββ package.json # Backend dependencies βββ client/ # Frontend React application β βββ [React app structure] # To be created βββ ARCHITECTURE.md # Detailed system architecture βββ package.json # Root package configuration βββ README.md # This file
- Node.js 18+ and npm
- Python 3.8+ and pip
- MySQL 8.0+ server
- Modern web browser
bash
sudo service mysql start # Linux
brew services start mysql # macOS
mysql -u root -p
sql CREATE DATABASE synergysphere; CREATE USER 'synergy_user'@'localhost' IDENTIFIED BY 'synergy_password'; GRANT ALL PRIVILEGES ON synergysphere.* TO 'synergy_user'@'localhost'; FLUSH PRIVILEGES; EXIT;
bash
cd database/ mysql -u synergy_user -p synergysphere < schema.sql mysql -u synergy_user -p synergysphere < sample_data.sql
bash cd backend/
python -m venv venv
venv\Scripts\activate
source venv/bin/activate
pip install -r requirements.txt
cp .env.example .env
python -m uvicorn app.main:app --reload --host 0.0.0.0 --port 8000
bash cd frontend/
npm install
npm start
- Frontend: http://localhost:3000
- Backend API: http://localhost:8000
- API Documentation: http://localhost:8000/docs
env
DB_HOST=localhost DB_PORT=3306 DB_USER=synergy_user DB_PASSWORD=synergy_password DB_NAME=synergysphere
SECRET_KEY=your-super-secret-jwt-key-here ALGORITHM=HS256 ACCESS_TOKEN_EXPIRE_MINUTES=30
SMTP_HOST=smtp.gmail.com SMTP_PORT=587 SMTP_USER=your-email@gmail.com SMTP_PASSWORD=your-app-password SMTP_FROM=noreply@synergysphere.com
CORS_ORIGINS=http://localhost:3000,http://127.0.0.1:3000
env REACT_APP_API_URL=http://localhost:8000/api
Once the backend is running, visit http://localhost:8000/docs for interactive API documentation.
-
Authentication
- POST /api/auth/register - Register new user
- POST /api/auth/login - User login
- GET /api/auth/me - Get current user
-
Projects
- GET /api/projects/ - List user projects
- POST /api/projects/ - Create project
- GET /api/projects/{id} - Get project details
- POST /api/projects/{id}/members - Add team member
-
Tasks
- GET /api/tasks/project/{project_id} - Get project tasks
- POST /api/tasks/project/{project_id} - Create task
- PUT /api/tasks/{id}/status - Update task status
-
Real-time
- ws://localhost:8000/api/ws/project/{id} - Project WebSocket
- ws://localhost:8000/api/ws/notifications - Notifications WebSocket
-
Admin User
- Email: john@example.com
- Password: password123 (you'll need to hash this)
-
Regular User
- Email: jane@example.com
- Password: password123 (you'll need to hash this)
Use the registration form or register via API:
bash
curl -X POST "http://localhost:8000/api/auth/register"
-H "Content-Type: application/json"
-d '{
"name": "Test User",
"email": "test@example.com",
"password": "password123"
}'
-
Environment Setup bash
-
Run with Gunicorn bash pip install gunicorn gunicorn app.main:app -w 4 -k uvicorn.workers.UvicornWorker
-
Build for Production bash npm run build
-
Serve Static Files
- Deploy build/ folder to your web server
- Configure routing for SPA
- JWT Authentication with secure token handling
- Password Hashing using bcrypt
- CORS Protection with configurable origins
- SQL Injection Protection via parameterized queries
- Input Validation with Pydantic models
- Responsive Design - Works on all device sizes
- Modern Interface - Clean, professional design
- Loading States - Proper feedback during operations
- Error Handling - User-friendly error messages
- Accessibility - ARIA labels and keyboard navigation
- Live Task Updates - See changes instantly
- Real-time Comments - Instant messaging experience
- Push Notifications - Stay informed of updates
- Collaborative Editing - Multiple users can work simultaneously
- Task Assignments - Notify when tasks are assigned
- Deadline Reminders - Automated reminders for due tasks
- Project Invitations - Email invites for team members
- Status Updates - Progress notifications
-
Database Connection Error
- Ensure MySQL is running
- Check database credentials in .env
- Verify database exists
-
CORS Errors
- Check CORS_ORIGINS in backend .env
- Ensure frontend URL is included
-
Email Not Sending
- Configure SMTP settings properly
- For Gmail, use App Passwords
-
WebSocket Connection Failed
- Check firewall settings
- Ensure backend is running
This is a demonstration MVP. For production use, consider:
- Adding comprehensive tests
- Implementing proper logging
- Adding rate limiting
- Setting up monitoring
- Adding data backup strategies
| Member Name | Passing Year |
|---|---|
| Mance Uthappa | 2027 |
| Amulya U Shet | 2027 |
| Shivasubrahmanya K C | 2027 |
| G Nisha Bangera | 2027 |
- Selected Problem Statement: "SynergySphere β Advanced Team Collaboration Platform"
- Video Link:
This project is created for demonstration purposes. Feel free to use as a learning resource or foundation for your own projects.
- FastAPI for the excellent Python web framework
- React team for the powerful frontend library
- MySQL for reliable data storage
- All the open-source libraries that made this possible