A full-stack task management application built with .NET 9 Web API and Angular 20. This application allows users to create, read, update, and delete tasks with priority levels, status tracking, and due dates.
- Backend: .NET 9 Minimal API with Clean Architecture
- Frontend: Angular 20 with standalone components
- Database: Entity Framework Core with In-Memory Database
- API Documentation: Swagger/OpenAPI
- ✅ Create, read, update, and delete tasks
- ✅ Task priorities (Low, Medium, High)
- ✅ Task statuses (New, InProgress, Completed)
- ✅ Due date management
- ✅ Search and sort functionality
- ✅ RESTful API with Swagger documentation
- ✅ Responsive Angular UI
- ✅ CORS-enabled for cross-origin requests
Before running this application, make sure you have the following installed:
- .NET 9 SDK
- Node.js (version 18 or higher)
- Angular CLI (
npm install -g @angular/cli)
git clone https://github.com/sinebongo/TaskTracker.git
cd TaskTrackerNavigate to the backend directory:
cd backend/TaskTrackerAPIRestore NuGet packages:
dotnet restoreBuild the project:
dotnet buildRun the API:
dotnet runThe API will be available at:
- HTTP:
http://localhost:5183 - HTTPS:
https://localhost:7114 - Swagger UI:
http://localhost:5183orhttps://localhost:7114
Open a new terminal and navigate to the frontend directory:
cd frontend/TaskTrackerUIInstall npm packages:
npm installStart the development server:
npm startThe Angular application will be available at http://localhost:4200
The TaskTracker API provides the following endpoints:
| Method | Endpoint | Description |
|---|---|---|
| GET | /api/tasks |
Get all tasks (supports query ?q= and sort ?sort=) |
| GET | /api/tasks/{id} |
Get task by ID |
| POST | /api/tasks |
Create a new task |
| PUT | /api/tasks/{id} |
Update an existing task |
| DELETE | /api/tasks/{id} |
Delete a task |
{
"id": 1,
"title": "Sample Task",
"description": "Task description",
"status": 0,
"priority": 1,
"dueDate": "2025-11-15T00:00:00Z",
"createdAt": "2025-11-10T00:00:00Z"
}Status Enum Values:
- 0: New
- 1: InProgress
- 2: Completed
Priority Enum Values:
- 0: Low
- 1: Medium
- 2: High
Backend Tests:
cd backend/TaskTrackerAPI
dotnet testFrontend Tests:
cd frontend/TaskTrackerUI
npm testBackend:
cd backend/TaskTrackerAPI
dotnet publish -c ReleaseFrontend:
cd frontend/TaskTrackerUI
npm run buildTaskTracker/
├── backend/
│ └── TaskTrackerAPI/
│ ├── Application/ # Business logic layer
│ ├── Domain/ # Entity models and enums
│ ├── Endpoints/ # API endpoint definitions
│ ├── Infrastructure/ # Data access layer
│ └── Program.cs # Application entry point
├── frontend/
│ └── TaskTrackerUI/
│ └── src/
│ └── app/
│ ├── components/ # Angular components
│ ├── models/ # TypeScript models
│ └── services/ # Angular services
├── README.md
└── SOLUTION.md
- .NET 9
- ASP.NET Core Minimal APIs
- Entity Framework Core
- In-Memory Database
- Swagger/OpenAPI
- Clean Architecture
- Angular 20
- TypeScript
- RxJS
- Angular CLI
- Standalone Components
This project is licensed under the MIT License.