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.
- 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.
- 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.
- 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.
- 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:
cd server - Install dependencies:
npm install
- Configure Environment Variables:
Create a
.envfile in theserverdirectory 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:
npm start
- Navigate to the client directory:
cd client - Install dependencies:
npm install
- Start the Development Server:
npm run dev
| Role | Password | Notes | |
|---|---|---|---|
| Admin User | [email protected] |
password123 |
Can create boards, manage tasks, and invite users. |