Skip to content

Visual task management tool with graph-based scheduling, rescheduling, team collaboration, and real-time dependency tracking using topological sort.

Notifications You must be signed in to change notification settings

AhmedTrb/Project-Management-web-app

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

56 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Project-Management-web-app

This project is a task management and visualization tool designed to help users create, organize, and manage tasks within a project. The tool leverages a visual graph-based representation to display task dependencies.


Insipiration :

This project was inspired by a university course on Graph Theory, where I explored topological sorting to determine task degrees and optimize project visualization. Currently, I use topological sorting in this project to:

  • Calculate the degree of each task based on its dependencies.
  • Determine the positioning of tasks in the graph view.
  • Improve the visualization of task dependencies for better project planning.
  • Reschedule tasks dynamically – When a task is delayed or updated, its dependent tasks are automatically adjusted to maintain a consistent and valid project timeline, ensuring all constraints are respected.

VIDEO DEMO

Live Demo website


image


Overview :

Prerequisites : Node.js (v16+ recommended) PostgreSQL (configured in .env file) Prisma ORM


1. Features

  • Project & Task Management – Create and manage projects, assign tasks, and track progress.
  • Graph View (DAG Representation): Visualize project dependencies as a Directed Acyclic Graph (DAG) using topological sorting.
  • Team Collaboration: Assign team members to projects, manage roles.
  • Task Rescheduling (Gantt View) – Reschedule tasks by dragging them on a Gantt chart. Updates automatically propagate to dependent tasks.
  • Real-Time Messaging – Collaborate with your team using built-in messaging within each project workspace.
  • Authentication & Authorization : Secure login with jwt Refresh and Access tokens
  • Responsive & Modern UI : Designed with TailwindCSS for a clean and intuitive user experience.

2. Project Structure :

# Frontend folder
client/
├── .next/
├── node_modules/
├── public/
├── src/
│   ├── app/
├── .env
# backend folder
server/
├── prisma/
│   ├── migrations/
│   └── schema.prisma
├── src/
│   ├── controllers/
│   ├── middleware/
│   ├── routes/
│   └── utils/
├── .env

3. Setup :

# Clone the repository
git clone https://github.com/AhmedTrb/Project-Management-web-app.git

Install npm packages :

cd project-management-platform

Install dependencies

cd client
npm install --legacy-peer-deps
cd server
npm install

Create an environment variables file :

Frontend :

NEXT_PUBLIC_API_BASE_URL=http://localhost:8000

Backend .env file :

PORT=8000
DATABASE_URL=postgresql://postgres:<Database password>@localhost:5432/<db name>?schema=public

JWT_ACCESS_TOKEN_SECRET=1234567890
JWT_REFRESH_TOKEN_SECRET=0987654321

STATUS=development

FRONTEND_URL=http://localhost:3000

4. Database setup :

For local database:

  • install PgAdmin

  • create a new postgres database

  • save database name and password

  • update DATABSE_URL in .env file in server directory

  • create database with the commands :

  • Or use Neon as a database provider

    cd server
    npx prisma migrate dev --name init

5. Running the project :

    cd client
    npm run dev
    cd server
    npm run dev

Screenshots :

Home Page

image

Project Page (Board view) :

image

Project Page (Graph view) :

image

Members Page :

image

Gantt View :

image

Team Messaging :

image

About

Visual task management tool with graph-based scheduling, rescheduling, team collaboration, and real-time dependency tracking using topological sort.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages