Skip to content

Latest commit

ย 

History

112 Commits

Folders and files

NameName
Last commit message
Last commit date
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Organizational Project Management System Logo

๐Ÿ“Š Organizational Project Management System

A full-stack organizational project management platform for managing projects, estimations, assignments, tasks, time logs, performance tracking, delivery status, and analytical reports.

GitHub Stars GitHub Forks GitHub Issues License: ISC


๐Ÿ“š Table of Contents


๐Ÿ”Ž Overview

Organizational Project Management System is a MERN-based web application designed to support project planning, team allocation, task execution, time tracking, performance monitoring, delivery review, and reporting from one centralized dashboard.

The application includes a React frontend with protected pages and an Express.js backend connected to MongoDB through Mongoose. JWT authentication is used for secured API access, and the frontend consumes backend services through Axios.


๐ŸŽฏ Why This Project?

Organizations often need a clear view of project budgets, estimated hours, assigned team members, task progress, delivery status, and delays. This project brings those operational workflows into a single system so teams can:

Need How the System Helps
Project visibility Tracks projects, status, budget, hours, and recent activity
Work allocation Assigns members to projects with hour limits
Task control Connects tasks to project assignments and monitors progress
Time tracking Logs work hours against tasks and updates used hours
Performance review Calculates score, completion percentage, and delay impact
Reporting Provides project summary, member performance, and lag attribution reports

โœจ Key Features

Module Available Capabilities
๐Ÿ” Authentication Register, login, JWT token generation, protected frontend routes
๐Ÿ“Š Dashboard Project, member, task, completed task, active project, allocated hour, and used hour statistics
๐Ÿ“ Project Management Create, view, update, delete, and track projects
๐Ÿ’ฐ Estimation Create estimations, update estimations, approve estimations, reject estimations
๐Ÿ‘ฅ Team Members Add, view, and delete team members
๐Ÿงฉ Project Assignment Assign members to projects, allocate hours, prevent duplicate assignments
โœ… Task Management Create, view, update, delete, prioritize, and track task progress
โฑ๏ธ Time Logging Log task hours, update task logged hours, update assignment hours used
๐Ÿ“ˆ Performance Tracker View member score, task completion, used hours, remaining hours, and breach count
๐Ÿ“ฆ Project Delivery View project delivery dashboard data
๐Ÿšจ Breach Logs View automatically recorded task deadline breaches
๐Ÿ“ธ Closure Snapshots View project closure snapshot records
๐Ÿ“„ Reports & Analytics Project summary, member performance, lag attribution, PDF export, CSV export
๐Ÿ‘ค Profile View profile, update profile, and change password
โš™๏ธ Settings Frontend settings page

๐Ÿ”„ System Workflow

User Registration
        โ†“
User Login
        โ†“
JWT Stored on Client
        โ†“
Create Project
        โ†“
Create / Review Estimation
        โ†“
Assign Team Members
        โ†“
Create Project Tasks
        โ†“
Log Working Hours
        โ†“
Track Progress and Breaches
        โ†“
Review Performance
        โ†“
Project Delivery / Closure Snapshot
        โ†“
Reports and Analytics

๐Ÿ–ผ๏ธ Screenshots

Screenshots are stored in the Screenshots folder.

Dashboard Projects
Dashboard Projects
Assignment Team Members
Assignment Team Members
Project Delivery Reports
Project Delivery Reports

๐Ÿ› ๏ธ Technology Stack

Frontend

React Vite React Router Bootstrap Axios React Toastify Recharts

Backend

Node.js Express.js JWT Bcrypt CORS

Database

MongoDB Mongoose

Export and UI Utilities

jsPDF PapaParse FileSaver Framer Motion


๐Ÿ“‚ Folder Structure

Organizational Project Management/
โ”œโ”€โ”€ backend/
โ”‚   โ”œโ”€โ”€ config/
โ”‚   โ”‚   โ””โ”€โ”€ database.js
โ”‚   โ”œโ”€โ”€ controllers/
โ”‚   โ”œโ”€โ”€ middleware/
โ”‚   โ”‚   โ””โ”€โ”€ authMiddleware.js
โ”‚   โ”œโ”€โ”€ models/
โ”‚   โ”œโ”€โ”€ routes/
โ”‚   โ”œโ”€โ”€ validations/
โ”‚   โ”œโ”€โ”€ app.js
โ”‚   โ”œโ”€โ”€ server.js
โ”‚   โ””โ”€โ”€ package.json
โ”œโ”€โ”€ frontend/
โ”‚   โ”œโ”€โ”€ public/
โ”‚   โ”œโ”€โ”€ src/
โ”‚   โ”‚   โ”œโ”€โ”€ api/
โ”‚   โ”‚   โ”œโ”€โ”€ assets/
โ”‚   โ”‚   โ”œโ”€โ”€ components/
โ”‚   โ”‚   โ”œโ”€โ”€ layouts/
โ”‚   โ”‚   โ”œโ”€โ”€ pages/
โ”‚   โ”‚   โ”œโ”€โ”€ styles/
โ”‚   โ”‚   โ”œโ”€โ”€ App.jsx
โ”‚   โ”‚   โ””โ”€โ”€ main.jsx
โ”‚   โ”œโ”€โ”€ index.html
โ”‚   โ”œโ”€โ”€ vite.config.js
โ”‚   โ””โ”€โ”€ package.json
โ”œโ”€โ”€ Screenshots/
โ”œโ”€โ”€ docs/
โ”œโ”€โ”€ package.json
โ””โ”€โ”€ README.md

๐Ÿ—„๏ธ Database Collections / Schema Summary

Collection Main Fields Purpose
users name, email, password, role Stores registered users and authentication roles
projects projectId, name, client, type, priority, scope, totalHours, budget, startDate, endDate, status Stores project planning and budget details
estimations projectId, estimatedHours, hourlyRate, quotedPrice, approvalStatus Stores project estimation and approval state
teammembers name, email, role, department, status Stores team member profiles
projectassignments projectId, memberId, role, allocatedHours, hoursUsed, status, startDate Maps team members to projects
tasks projectId, assignmentId, assignedTo, title, description, estimatedHours, loggedHours, progress, deadline, priority, status, completedAt Stores assigned project tasks
timelogs taskId, memberId, date, hoursLogged, notes Records work hours against tasks
performancerecords memberId, projectId, score, statusTag Stores performance score records
projectdeliveries projectId, deliveryDate, mode, clientSignoff, notes, status Stores delivery review information
breachlogs taskId, memberId, originalDeadline, revisedDeadline, reason Tracks task deadline breaches
closuresnapshots projectId, totalBudget, estimatedHours, usedHours, completedTasks, totalTasks, remarks Stores project closure summaries

๐Ÿ—๏ธ Application Architecture

React + Vite Frontend
        โ†“
Axios API Layer
        โ†“
Express.js Routes
        โ†“
Controllers
        โ†“
Mongoose Models
        โ†“
MongoDB Database
Layer Responsibility
Frontend pages Screens for dashboard, projects, estimation, members, assignments, tasks, reports, profile, and settings
Components Reusable UI such as modals, tables, cards, navbar, sidebar, loaders, and protected routes
API layer Axios service modules for backend endpoints
Routes Express route definitions under /api
Controllers Request handling, business logic, validation checks, and response formatting
Models Mongoose schemas and collection relationships
Middleware JWT token verification for protected backend routes

๐Ÿ” Authentication Flow

Register or Login
        โ†“
Backend validates user credentials
        โ†“
Password is hashed / compared with bcryptjs
        โ†“
JWT is generated on successful login
        โ†“
Frontend stores token and user data in localStorage
        โ†“
Axios attaches token as Authorization: Bearer <token>
        โ†“
Protected backend routes verify token using JWT middleware
        โ†“
Invalid or expired tokens redirect the user to login
Area Current Implementation
Registration POST /api/auth/register
Login POST /api/auth/login
Token expiry 1d
Password hashing bcryptjs with salt rounds set to 10
Protected frontend pages ProtectedRoute checks token and user in localStorage
Protected API routes Most project, assignment, task, time log, report, profile, performance, breach, delivery, and closure routes use authMiddleware

๐Ÿ“ˆ Performance Formula Explanation

The performance module calculates a member-level score using assignments, tasks, and breach logs.

score = 100 - (breaches ร— 10) - (incompleteTasks ร— 5) + (completedTasks ร— 2)

The calculated score is clamped between 0 and 100.

Score Range Status
90 - 100 Excellent
70 - 89 Good
50 - 69 Average
0 - 49 Critical

Additional displayed metrics include:

  • Allocated hours
  • Used hours
  • Remaining hours
  • Total tasks
  • Completed tasks
  • Completion percentage
  • Breach count

โš™๏ธ Installation Guide

1. Clone the Repository

git clone https://github.com/svk-vasanthkumar/Organizational-Project-Management.git
cd Organizational-Project-Management

2. Install Backend Dependencies

cd backend
npm install

3. Install Frontend Dependencies

cd ../frontend
npm install

๐Ÿ”‘ Environment Variables

Create a .env file inside the backend folder.

PORT=5000
MONGO_URI=your_mongodb_connection_string
JWT_SECRET=your_jwt_secret_key
Variable Required Description
PORT No Backend server port. Defaults to 5000 when not provided
MONGO_URI Yes MongoDB connection string used by Mongoose
JWT_SECRET Yes Secret key used to sign and verify JWT tokens

๐Ÿš€ Running the Project

Start Backend Server

cd backend
npm run dev

Backend runs at:

http://localhost:5000

Start Frontend Development Server

cd frontend
npm run dev

The Vite development server will display the local frontend URL in the terminal.

Production Build

cd frontend
npm run build

๐ŸŒ API Overview

Base URL:

http://localhost:5000/api
Module Method and Endpoint Protection Purpose
Auth POST /auth/register Public Register a user
Auth POST /auth/login Public Login and receive JWT
Auth GET /auth/test Public Test auth route
Dashboard GET /dashboard Public in current backend Fetch dashboard statistics
Projects POST /projects JWT Create project
Projects GET /projects JWT Get all projects
Projects GET /projects/:id JWT Get project by ID
Projects PUT /projects/:id JWT Update project
Projects DELETE /projects/:id JWT Delete project
Estimations POST /estimations Public in current backend Create estimation
Estimations GET /estimations Public in current backend Get estimations
Estimations PUT /estimations/:id Public in current backend Update estimation
Estimations DELETE /estimations/:id Public in current backend Delete estimation
Estimations PUT /estimations/:id/approve Public in current backend Approve estimation
Estimations PUT /estimations/:id/reject Public in current backend Reject estimation
Team Members POST /team-members JWT Add team member
Team Members GET /team-members JWT Get team members
Team Members DELETE /team-members/:id JWT Delete team member
Assignments POST /assignments JWT Create assignment
Assignments GET /assignments JWT Get assignments
Assignments GET /assignments/project/:projectId JWT Get assignments by project
Assignments PUT /assignments/:id JWT Update assignment
Assignments DELETE /assignments/:id JWT Delete assignment
Tasks POST /tasks JWT Create task
Tasks GET /tasks JWT Get tasks
Tasks PUT /tasks/:id JWT Update task
Tasks DELETE /tasks/:id JWT Delete task
Time Logs POST /time-logs JWT Create time log
Time Logs GET /time-logs JWT Get time logs
Performance GET /performance JWT Get performance analytics
Project Delivery GET /project-delivery JWT Get project delivery data
Breach Logs GET /breach-logs JWT Get breach logs
Closure Snapshots GET /closure-snapshots JWT Get closure snapshots
Reports GET /reports/project-summary JWT Get project summary report
Reports GET /reports/member-performance JWT Get member performance report
Reports GET /reports/lag-attribution JWT Get lag attribution report
Users GET /users/profile JWT Get current profile
Users PUT /users/profile JWT Update current profile
Users PUT /users/change-password JWT Change password

โœ… Validation Rules

Area Validation / Rule
User email Must be unique in the users collection
User role Limited to Admin, Project Manager, or Team Member
Project priority Limited to Low, Medium, or High
Project assignment Prevents assigning the same member to the same project more than once
Assignment hours Total allocated hours cannot exceed the project totalHours
Assignment update Changing project or team member on an existing assignment is restricted
Assignment deletion Assignment cannot be deleted when the member has active tasks in that project
Task creation Task must reference a valid assignment
Task assignment match Task project and assigned member must match the selected assignment
Task hours Total task estimated hours cannot exceed assignment allocated hours
Task progress Must be between 0 and 100
Task status Limited to Not Started, In Progress, Review, Completed, or Blocked
Task priority Limited to Low, Medium, or High
Time logs Require task, member, date, and logged hours
Project delivery mode Limited to Online, Offline, or Hybrid
Project delivery status Limited to In Review, Delivered, or Closed
Estimation status Limited to Draft, Under Review, Approved, or Rejected

๐Ÿ›ก๏ธ Security Features

  • Password hashing with bcryptjs
  • JWT-based authentication
  • Bearer token verification middleware
  • Axios request interceptor for automatic token attachment
  • Axios response interceptor for 401 logout handling
  • Protected frontend routes using ProtectedRoute
  • Password field excluded from profile API response
  • MongoDB unique constraints for users, team members, and project assignment pairs

๐Ÿ“Š Reports & Analytics

Report Description
Project Summary Report Shows budget, estimated hours, allocated hours, used hours, completed tasks, and total tasks per project
Member Performance Report Shows allocated hours, used hours, completed tasks, total tasks, calculated score, and status
Lag Attribution Report Shows breach logs with task and member references
Performance Export The performance page supports PDF and CSV export

Reports are available from the frontend reports pages and protected backend report endpoints.


๐Ÿ”ฎ Future Enhancements

Planned improvement ideas for future versions:

  • Role-based API authorization for Admin, Project Manager, and Team Member permissions
  • Create and update endpoints for project delivery records from the backend
  • Create endpoint support for closure snapshots from the backend
  • Team member update endpoint alignment with the frontend API wrapper
  • Email notifications for deadline breaches and delivery updates
  • Calendar or timeline view for deadlines
  • Dark mode preference persistence
  • Expanded automated test coverage

๐Ÿ‘จโ€๐Ÿ’ป Author

Vasanthkumar S

Profile Details
Name Vasanthkumar S
Project Organizational Project Management System
Repository Organizational-Project-Management

๐Ÿ“œ License

This project currently uses the ISC License as defined in the backend package metadata.


โญ Support / Star Repository

If this project helped you or you found it useful, please consider giving it a star.

About

๐Ÿš€ Full-Stack Organizational Project Management System built with React, Node.js, Express & MongoDB.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages