Skip to content

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.

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

9 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.

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, and send invite links via email.
  • 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
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 :

  • 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 :

    cd server
    npx prisma migrate dev --name init

5. Running the project :

    cd client
    npm run dev
    cd server
    npm run dev

About

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.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages