A modern, robust enterprise-grade Task Management System built with ASP.NET Core 8 Web API and React 19. Designed following clean architecture principles, adhering to rigorous software engineering standards including xUnit testing, SonarQube static analysis, and structured logging via Serilog.
- Framework: ASP.NET Core 8.0 Web API (
net8.0) - ORM: Entity Framework Core 8.0
- Database: SQL Server / LocalDB (
(localdb)\MSSQLLocalDB) - Security: JWT Authentication & Role-Based Access Control (RBAC) + BCrypt Password Hashing
- Logging: Serilog (Console & Daily Rolling File
logs/log.txt)
- Library: React 19 + Vite
- Styling: Tailwind CSS v4 + Google Fonts (Inter, Outfit)
- Routing: React Router v7
- State & HTTP: Axios + React Hot Toast
- Unit Testing: xUnit + Moq + EF Core InMemory Database (17 comprehensive test cases)
- Static Analysis: SonarQube (
SonarAnalyzer.CSharpfor local IDE linting +dotnet-sonarscannertemplate for CI/CD)
- Role-Based Access Control (RBAC): Distinct permissions for Admin (system-wide view, user management, global deletion) and User (restricted profile access, assigned task tracking).
- Task Lifecycle Management: Create, assign, categorize, update, and track tasks with status updates (
Pending,InProgress,Completed) and priority flags. - Completion Notifications: Simulated real-time notification dispatching (
ConsoleNotificationService) alerting administrators immediately when a user marks a task as complete. - Dashboard & Analytics: Live task completion statistics and metric aggregations tailored to user permissions.
- Audit & Activity Logging: Comprehensive system activity tracking storing timestamped events (e.g. registrations, updates, deadline triggers) into dedicated database logs.
- Automated Background Workers: Built-in background worker (
DeadlineCheckService) actively monitoring and flagging overdue tasks automatically.
Task Management System/
docs/ # Engineering documentation
sonar-scanner-example.ps1 # CI/CD SonarQube CLI integration script
database/
Database Schema.sql # SQL Server database schema
frontend/
taskmanagement-frontend/ # React Frontend SPA
backend/
TaskManagement.API/ # Main ASP.NET Core Web API Project
Controllers/ # Used for Routing and contains API Endpoints
DTOs/ # Strongly typed data transfer objects with strict nullability
Models/ # Entity Framework Domain Models
Services/ # Core Business Logic
Program.cs # DI container, Serilog setup, and Middleware pipeline
TaskManagement.API.Tests/ # xUnit Unit Testing Suite (17 passing tests)
- Ensure SQL Server (or SQL Server LocalDB) is installed.
- Open SQL Server Management Studio (SSMS) or Azure Data Studio and run the SQL script located in
database/Database Schema.sqlto initialize themyDBschema and default roles/categories. - Verify the connection string in
backend/TaskManagement.API/TaskManagement.API/appsettings.json:
"ConnectionStrings": {
"DefaultConnection": "Server=(localdb)\\MSSQLLocalDB;Database=myDB;Trusted_Connection=True;"
}cd backend/TaskManagement.API/TaskManagement.API
dotnet run- The API will launch on standard HTTPS/HTTP ports with Swagger API explorer available at
/swagger.
cd frontend/taskmanagement-frontend
npm install
npm run dev- Open your browser and navigate to
http://localhost:5173.
The backend includes an exhaustive xUnit test suite verifying business logic across all core services without relying on a live SQL database (using InMemory EF Core).
To run all 17 automated tests from your terminal:
cd backend/TaskManagement.API
dotnet testThe project actively enforces SonarQube static code analysis rules:
- Local IDE Linting: The
SonarAnalyzer.CSharppackage is embedded in the API project. Any code smells or vulnerabilities will automatically appear as warnings in Visual Studio / VS Code error windows during development and insidedotnet buildlogs. - CI Server Integration: For automated pipeline builds (such as GitHub Actions), run the included script:
./sonar-scanner-example.ps1












