← Back to full index
# Task Management System

A full-stack MERN application for assigning and tracking team tasks, with separate admin and member experiences, analytics dashboards and Excel reporting.

- Role: Sole Developer (Full-Stack)
- Date: Mar 2025
- Categories: project
- Tech: React, Vite, Node.js, Express.js, MongoDB, Tailwind CSS, JWT, Recharts
- GitHub: https://github.com/AmulyaJain2004/TaskManagementSystem
- Live: https://task-management-system-blush-delta.vercel.app

## Overview

Small teams often track work in scattered lists and messages. This project provides a single web application where an administrator creates and assigns tasks and members update their progress, with role-based permissions controlling what each person can see and change.

## Features

- **Admin workflow:** create, update and delete tasks, manage team members, view dashboard analytics as charts, and export task reports to Excel.
- **Member workflow:** a personal dashboard, a view of assigned tasks, task detail pages with attachments, status updates, and profile editing.
- **Security:** JWT-based login and signup, bcrypt password hashing, and route protection on both the client and the API. Administrator-only endpoints cover user management, task creation and deletion, and report export.
- **File attachments** on tasks through Multer uploads.

## System Design

```mermaid
flowchart TD
    UI["React 19 + Vite SPA<br/>admin and member dashboards"] -->|"Axios + JWT"| API["Express REST API"]
    API --> Auth["protect middleware<br/>JWT verify · adminOnly guard"]
    Auth --> AuthR["/api/auth<br/>register · login · profile"]
    Auth --> Tasks["/api/tasks<br/>CRUD · status · todo checklist · dashboard data"]
    Auth --> Users["/api/users"]
    Auth --> Reports["/api/reports<br/>Excel export (ExcelJS)"]
    AuthR --> DB[("MongoDB via Mongoose<br/>User · Task")]
    Tasks --> DB
    Users --> DB
    Reports --> DB
    AuthR --> Uploads[("Multer uploads<br/>served at /uploads")]
```

- **Frontend:** a React 19 single-page app built with Vite and styled with Tailwind CSS, with separate admin and member route trees behind a `PrivateRoute` guard and a user context that holds the logged-in session. Recharts draws the dashboard charts. It is deployed on Vercel.
- **Backend:** a Node.js and Express REST API in a controllers, routes, middleware and models layout, deployed on Render. A `protect` middleware verifies the JWT on every protected route, and an `adminOnly` guard restricts task creation and deletion, user management and report export.
- **Role-scoped queries:** the same `GET /api/tasks` endpoint returns every task to an admin and only the assigned tasks to a member, and each role has its own dashboard-data endpoint.
- **Reports:** ExcelJS builds task and user-task reports on the server and sends them back as Excel files.

## Status

This is a personal project that I designed and developed on my own. The application is functional and deployed, and it is a learning project focused on role-based access control and full-stack integration, so it does not include features such as notifications or team-level workspaces.

---

Back to the full index: /agent