The Project Management App helps teams organize projects, departments, and tasks efficiently. Users can:
- Manage projects and assign them to departments
- Link multiple tasks to projects
- Maintain relational data integrity with cascading deletes
- Track department and task assignments
- Node.js + Express.js – Backend server and API
- PostgreSQL – Relational database with enforced constraints
- EJS – Templating engine for rendering UI
- dotenv – Environment variable management
- Git + GitHub – Version control
bash
git clone <your-repo-link>
cd project-management-app
bash
npm install
Create a .env file:
env
PORT=3000
DATABASE_URL=postgresql://<username>:<password>@localhost:5432/project_management_db
Populate departments, tasks, projects, and project-task associations:
bash
node seed.js
bash
npm start
- Projects: Create, view, edit, and delete projects
- Departments: Assign projects to departments
- Tasks: Link multiple tasks to projects
- Relational Integrity: Cascading deletes maintain clean data
- Responsive UI: EJS templates for device-friendly layout
- Departments:
id,name - Tasks:
id,name - Projects:
id,name,department_id(FK → Departments) - Project_Tasks:
project_id,task_id(Composite PK, FK → Projects & Tasks)
- Add User Authentication and project ownership
- Task Status Tracking: Pending, In-Progress, Completed
- Search & Filter Projects by department or task
- Integrate React or Tailwind CSS for modern UI
- Add API endpoints for external integrations
/app
/server.js
/seed.js
/db
/client.js
/routes
/projects.js
/tasks.js
/departments.js
/public
/demo.gif
.env
package.json
This Project Management App demonstrates full-stack development, PostgreSQL relational design, cascading relationships, and project-task management. It’s optimized for maintainability and scalability in real-world team environments.