🚀 Project Manager: Full-Stack Collaboration Platform
A comprehensive full-stack collaboration and project management system designed to empower distributed teams with real-time communication, task tracking, calendar scheduling, and analytics. Built using React, Node.js, Express, Prisma, and Socket.io , this platform delivers modern tools for productivity and seamless teamwork.
📋 1. Project & Task Management (Kanban Board)
Dynamic Kanban Board : Drag-and-drop tasks using react-beautiful-dnd.
Full CRUD Operations : Manage Boards, Lists (columns), and Tasks (cards).
Advanced Task Details :
Edit descriptions
Set Priority (High / Medium / Low)
Assign Due Dates
Add/Remove Labels
Toggle Status (Completed/Pending)
Activity Logging : Real-time tracking of actions in Dashboard & Project Details.
🗓️ 2. Calendar & Notifications
Monthly Calendar : Visual overview of tasks and events.
Drag & Drop Scheduling : Easily change due dates.
Desktop Notifications : Alerts for upcoming tasks using the Notification API.
Custom Reminders : User-configurable alerts (e.g., 15 minutes before).
Socket.io Powered : Instant messaging.
Chat Modes :
Global Team Chat
Direct Messages (DMs)
Project-Specific Rooms
Media Sharing : Send files and images directly in chat.
👤 4. Authentication & User Management
Secure Auth : JWT-based Sign Up/In and Bcrypt password hashing.
Google OAuth : Seamless login via Passport.js.
User Profile : Manage details, notification preferences, and password.
Collaboration : Search users and invite them to project boards.
📊 5. Dashboard & Reporting
Overview Stats : Total Boards, Active/Completed Tasks.
Deadline Tracking : Countdown timers for upcoming tasks.
Visual Reports :
Task Status Distribution (Pie Chart)
Priority Breakdown (Bar Chart)
Activity Trends (Line Chart)
Area
Technologies
Frontend
React, Vite, Tailwind CSS, Recharts, react-beautiful-dnd
Backend
Node.js, Express.js, Passport.js
Database
PostgreSQL (via Prisma ORM)
Real-time
Socket.io
Authentication
JWT, Google OAuth 2.0, Bcrypt
├── client/ # Frontend (React App)
│ ├── src/
│ │ ├── components/ # UI Components
│ │ │ ├── Calendar.jsx
│ │ │ ├── Chat.jsx
│ │ │ ├── Dashboard.jsx
│ │ │ ├── ForgotPassword.jsx
│ │ │ ├── InvitationHandler.jsx
│ │ │ ├── InviteModal.jsx
│ │ │ ├── ProjectDetails.jsx
│ │ │ ├── Projects.jsx
│ │ │ ├── Reports.jsx
│ │ │ ├── Settings.jsx
│ │ │ ├── Sidebar.jsx
│ │ │ ├── SignIn.jsx
│ │ │ ├── SignUp.jsx
│ │ │ └── TaskDetails.jsx
│ │ ├── context/ # React Context
│ │ ├── styles/ # CSS Styles
│ │ └── App.jsx # Main App Component
│ └── ...
│
└── server/ # Backend (Node/Express)
├── controllers/ # Logic Handlers
│ ├── invitationController.js
│ ├── messageController.js
│ └── userController.js
├── routes/ # API Routes
│ ├── activity.js
│ ├── boards.js
│ ├── calendarRoutes.js
│ ├── cards.js
│ ├── dashboard.js
│ ├── invitationRoutes.js
│ ├── lists.js
│ ├── messageRoutes.js
│ ├── userRoutes.js
│ └── ...
├── prisma/ # Database Schema
├── server.js # Entry Point
└── ...
Node.js (v14+)
npm or yarn
PostgreSQL installed and running
Navigate to the server directory:
Install dependencies:
Configure Environment Variables:
Create a .env file in the server directory and add:
PORT = 5000
DATABASE_URL = " postgresql://user:password@localhost:5432/your_db_name"
JWT_SECRET = " your_super_secret_key"
GOOGLE_CLIENT_ID = " your_google_client_id"
GOOGLE_CLIENT_SECRET = " your_google_client_secret"
CLIENT_URL = " http://localhost:5173"
Run Database Migrations:
npx prisma migrate dev --name init
Start the Server:
Navigate to the client directory:
Install dependencies:
Start the Development Server:
Role
Email
Password
Notes
Admin User
[email protected]
password123
Can create boards, manage tasks, and invite users.