Skip to content

Latest commit

History

18 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 8 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/ # ASP.NET Core Web API
│ ├── ProjectManagement.Business/ # Business Logic & Services
│ ├── ProjectManagement.DataAccess/ # EF Core, Repositories & DbContext
│ ├── ProjectManagement.Entity/ # Entities, DTOs & Enums
│ ├── ProjectManagement.sln
│ └── Dockerfile
│
├── frontend/
│ ├── src/
│ │ ├── app/
│ │ │ ├── core/ # Guards, Interceptors & Services
│ │ │ ├── features/ # Feature Modules/Components
│ │ │ ├── shared/ # Shared Components & Utilities
│ │ │ └── layouts/ # Layout Components
│ │ ├── 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