Skip to content

Latest commit

 

History

19 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Project Management & Tracking Portal

A full-stack Project Management and Kanban Board application built with Angular and .NET Core Web API. The system enables administrators to manage projects and tasks while allowing developers to track their assigned work through an interactive Kanban board.


Project Structure

ProjectManagementPortal/
│
├── backend/
│   ├── ProjectManagement.API/              
│   ├── ProjectManagement.Business/         
│   ├── ProjectManagement.DataAccess/       
│   ├── ProjectManagement.Entity/           
│   ├── ProjectManagement.sln
│   └── Dockerfile
│
├── frontend/
│   ├── src/
│   │   ├── app/
│   │   │   ├── core/                       
│   │   │   ├── features/                   
│   │   │   ├── shared/                     
│   │   │   └── layouts/                    
│   │   ├── assets/
│   │   └── environments/
│   ├── package.json
│   └── angular.json
│
├── docs/
│   ├── TaskManagementPortal.postman_collection.json
│   └── api-tests.http
│
└── README.md

Features

  • JWT Authentication & Authorization
  • Role-Based Access Control (Admin / Developer)
  • Project CRUD Operations
  • Task CRUD Operations
  • Kanban Board
  • Drag & Drop Task Status Updates
  • Project Member Assignment
  • Dashboard Statistics
  • Form Validation
  • Toast Notifications
  • Responsive UI

Business Rules

  • Admin

    • Full Project CRUD
    • Full Task CRUD
    • Assign developers to projects
    • Assign developers to tasks
    • View all projects
  • Developer

    • View assigned projects
    • View assigned tasks
    • Update task status
    • Cannot create, edit or delete projects

Technology Stack

Frontend

  • Angular 17+
  • TypeScript
  • Standalone Components
  • Angular Router
  • Lazy Loading
  • RxJS
  • Reactive Forms
  • Angular CDK Drag & Drop
  • HTTP Interceptor
  • Route Guards
  • Tailwind CSS

Frontend Highlights

  • Standalone Component Architecture
  • Feature-based folder structure
  • Lazy-loaded routes
  • JWT Authentication
  • BehaviorSubject-based state management
  • Async Pipe usage
  • Custom Form Validators
  • Responsive UI
  • Toast notifications
  • Loading indicators
  • Empty state components

Backend

  • ASP.NET Core 8 Web API
  • Entity Framework Core
  • SQL Server
  • JWT Authentication
  • Mapster
  • Serilog
  • Docker

Architecture

The backend follows a classic N-Tier Architecture.

API
│
Business
│
DataAccess
│
Entity

Backend Highlights

  • Layered Architecture
  • Generic Repository Pattern
  • Service Layer
  • DTO Mapping with Mapster
  • Repository Pattern
  • Role-Based Authorization
  • Global Exception Handling
  • Structured Logging (Serilog)
  • Automatic Seed Data
  • Docker Support

Getting Started

Prerequisites

  • .NET 8 SDK
  • Node.js (18.19+ or 20+)
  • Angular CLI 17+
  • SQL Server (or LocalDB)

Backend Setup

Navigate to the API project.

cd backend/ProjectManagement.API

Configure your connection string inside:

appsettings.json

Run the API.

dotnet run

The database is automatically created and seeded using EnsureCreated().

Swagger is available at:

https://localhost:7176/swagger

Backend (Docker)

Navigate to the backend directory.

cd backend

Build Docker image.

docker build -t project-management-api .

Run container.

docker run -d -p 8080:8080 --name pm-api project-management-api

Swagger:

http://localhost:8080/swagger

Frontend Setup

Navigate to frontend.

cd frontend

Install packages.

npm install

Run application.

npm start

or

ng serve

Application:

http://localhost:4200

API Testing

The project includes multiple ways to test the API.

Swagger

/swagger

Postman

docs/
└── TaskManagementPortal.postman_collection.json

Import the collection into Postman.

REST Client (VS Code)

markdowns/
└── api-tests.http

Default Credentials

The application automatically seeds test data.

Admin

Email: admin@test.com
Password: test1234

Developer

Email: dev@test.com
Password: test1234

Additional developer accounts are also generated during seeding.


Logging

Serilog writes logs to:

logs/
└── log-.txt

Logs are rolled daily.


Docker

The backend includes a production-ready Dockerfile.

Build:

docker build -t project-management-api .

Run:

docker run -d -p 8080:8080 project-management-api

Notes

  • JWT authentication is required for protected endpoints.
  • The database is automatically created and seeded on first run.
  • The frontend API URL can be configured through the Angular environment files.
  • The project is intended as a technical assessment demonstrating clean architecture principles, maintainability, and modern full-stack development practices.

About

A full-stack project management platform for team collaboration, task tracking, and workflow management.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages