A simple task management system that allows caseworkers to efficiently manage their tasks.
- Create, read, update, and delete tasks
- Track task status
- Set due dates/times
- Optional task descriptions
- RESTful API
- User-friendly web interface
- Backend: ASP.NET Core Web API
- Frontend: Blazor WebAssembly
- Database: SQLite with Entity Framework Core
- Documentation: Swagger/OpenAPI
- Deployment: Railway.app with Docker containers
- Server: Nginx (Web Frontend)
- TaskManagementSystem.API: REST API endpoints and configuration
- TaskManagementSystem.Core: Domain models and interfaces
- TaskManagementSystem.Infrastructure: Data access and repository implementations
- TaskManagementSystem.Web: Blazor WebAssembly frontend
- TaskManagementSystem.Tests: Unit and integration tests
- GET /api/tasks - Get all tasks
- GET /api/tasks/{id} - Get a specific task
- POST /api/tasks - Create a new task
- PUT /api/tasks/{id} - Update an existing task
- DELETE /api/tasks/{id} - Delete a task
- Web Application: https://taskmanager-production-ad9d.up.railway.app
- API Endpoint: https://taskmanager-production-6bd0.up.railway.app
- Clone the repository
- Navigate to the API project directory:
cd TaskManagementSystem.API - Run the database migrations:
dotnet ef database update - Start the API:
dotnet run - Navigate to the Web project directory:
cd ../TaskManagementSystem.Web - Start the web application:
dotnet run - Open your browser and navigate to
https://localhost:7001
- .NET 8.0 SDK
- Visual Studio 2022 or VS Code
cd TaskManagementSystem.API
dotnet ef migrations add InitialCreate
dotnet ef database updateRun the tests using:
dotnet testThe application is deployed on Railway.app with two services:
- Deployed from the main branch
- Uses Dockerfile in the root directory
- Configured with SQLite database
- Health check endpoint at
/health
- Deployed from the main branch
- Uses Dockerfile in TaskManagementSystem.Web directory
- Served using Nginx
- Configured to communicate with the production API