Skip to content

doganenes/TaskManagementPortal

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

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

Watchers

Forks

Releases

Packages

Contributors

Languages