A full-stack task management and collaboration platform built for the Entrepreneurship Development Cell (EDC), NIT Durgapur. Designed for cross-functional workflows, speed, modularity, and secure team collaboration.
View Live Demo » · Report Bug · Request Feature
- About The Project
- Key Features
- Tech Stack
- Project Structure
- Getting Started
- Running the Project
- Available Scripts
- Deployment
- License
- Contact
Task Bucket is a complete, modular task management solution developed for the Entrepreneurship Development Cell (EDC) at NIT Durgapur. Structured as a scalable monorepo with a modern React and Vite frontend paired with a robust Node.js and Express backend, it simplifies club operations, member task distribution, and cross-departmental collaboration. The platform focuses on high performance, strict data security, and seamless workflow management across multiple technical and creative domains.
- Multi-Domain & Multi-Skill Support: Members can select multiple domains during registration (Web Development, Content Writing, Graphic Designing, Video Editing, General). The platform dynamically adapts task visibility, filtering, and assignment pipelines across all selected skill areas.
- Role-Based Access Control & Admin Panel: A dedicated administrative dashboard allows club maintainers to review and approve new user registrations, inspect domain distributions, and manage organization-wide tasks.
- Flexible Task Assignment: Tasks can be assigned to individual members or distributed to entire domain groups. Includes public and private visibility toggles to separate personal drafts from collaborative team tasks.
- Interactive Discussion Threads: Every task features an integrated commenting and discussion system, facilitating real-time communication, status updates, and peer feedback.
- Real-Time Task Notifications: Built-in notification popups and status trackers keep team members updated on new assignments, progress changes, and deadlines.
- Input Validation & Security: Strong backend validation prevents malformed or malicious data submissions, ensuring database integrity and secure collaboration.
- Rate Limiting & Abuse Prevention: Custom rate-limiting middleware protects backend API endpoints against excessive requests, spam, and brute-force attempts.
- Responsive Dark-Mode UI: Built with Tailwind CSS and Lucide Icons, providing a clean, modern, and fully responsive user interface optimized for desktop and mobile workflows.
| Layer | Technology |
|---|---|
| Frontend | React, Vite, Tailwind CSS, Lucide Icons |
| Backend | Node.js, Express.js, MongoDB, Mongoose |
| Authentication | JSON Web Tokens (JWT) with Multi-Domain Claims |
| Security | Custom Middleware, API Rate Limiting, Input Validation |
| Deployment | Vercel Monorepo Configuration |
The repository is organized as a unified monorepo containing distinct client and backend applications:
task_bucket/
├── client/ # React frontend (Vite + Tailwind CSS)
├── backend/ # Express backend (Controllers, Routes, Models, Security)
├── CHANGELOG.md # Feature and release history
├── LICENSE.md # MIT License
├── MULTIPLE_DOMAINS_FEATURE.md # Detailed technical documentation on multi-domain support
├── package.json # Root workspace configuration
└── README.md # Project documentation
Follow these steps to set up a local development environment.
Ensure you have the following software installed on your local machine:
- Node.js (v18.x or later recommended)
- npm (bundled with Node.js)
- MongoDB instance (local or Atlas connection string)
-
Clone the repository:
git clone https://github.com/Subhadip006/task_bucket.git cd task_bucket -
Install root workspace dependencies:
npm install
-
Install frontend dependencies:
cd client npm install -
Install backend dependencies:
cd ../backend npm install
The project requires specific environment variables for database connectivity, authentication, and API routing.
Backend Configuration (/backend):
Create a .env file inside the backend/ directory and configure the following parameters:
PORT=5000
DATABASE_URL="your_mongodb_connection_string"
JWT_SECRET="your_strong_jwt_secret_key"Frontend Configuration (/client):
Create a .env file inside the client/ directory to connect the frontend to your local backend server:
VITE_API_BASE_URL="http://localhost:5000/api"To run the full stack locally, open two separate terminal windows for the frontend and backend services.
-
Start the Backend Server (from the
backend/directory):npm run start
The Express API server will start on
http://localhost:5000. -
Start the Frontend Server (from the
client/directory):npm run dev
The Vite development server will start on
http://localhost:5173(or the port specified by Vite).
| Location | Command | Description |
|---|---|---|
| client | npm run dev |
Starts the Vite frontend development server |
| client | npm run build |
Compiles and optimizes the frontend for production deployment |
| backend | npm run start |
Starts the Express backend API server |
The monorepo is structured for seamless automated deployment on Vercel:
- Push your changes to a GitHub repository.
- Import the repository into your Vercel account.
- Vercel automatically detects the monorepo structure and configures build settings via
vite.config.js. - Add all required environment variables from your
.envfiles into the Vercel Project Settings prior to initiating the production deployment.
Distributed under the MIT License. See LICENSE.md for more information.
