You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
A RESTful Web API built with .NET 10 and ASP.NET Core, serving as the backend for the Multitool Frontend (repository will be published soon).
The application follows a Clean Architecture pattern and currently provides the following features:
Authentication & Security with JWT-based protection and rate limiting.
Calendar with recurring event support.
Custom Table Builder for user-defined data structures.
Support for recurring events via iCalendar RRULE strings (daily, weekly, monthly, yearly)
Date-range-based event retrieval with optional category filtering
Full-text event search across title and notes
German public holidays fetched from a third-party API (api-feiertage.de)
Category management with custom colors
Custom Table Builder
Dynamically create tables with user-defined columns
Five supported column types: String, Int, Decimal, Date, Bool
Add, remove and reorder columns and rows at runtime
Inline cell editing with automatic type coercion and validation
Persistent row and column ordering
Todo List
Create, read, update, and delete task items
Toggle task completion status
Request validation for task creation and updates
Authentication & Security
JWT-based authorization protecting core API endpoints
Secure user registration validated by an administrative key (X-Admin-Key header)
Rate limiting configured on the login endpoint to prevent brute force attempts
Secure password hashing using BCrypt
Background Jobs
Scheduled database cleanup of past calendar events using a customizable cron expression
Architecture
The solution follows a Clean Architecture approach with a strict separation of concerns across four layers:
┌─────────────────────────────────────────────┐
│ Multitool.Api │ Controllers, Exception Handling, DI Setup
├─────────────────────────────────────────────┤
│ Multitool.Application │ Business Logic, Services, DTOs, Mappings
├─────────────────────────────────────────────┤
│ Multitool.Domain │ Entities, Interfaces, Enums, Exceptions
├─────────────────────────────────────────────┤
│ Multitool.Infrastructure │ EF Core, Repositories, External API Clients, Auth
└─────────────────────────────────────────────┘
Tech Stack
Category
Technology
Runtime
.NET 10 / ASP.NET Core
ORM
Entity Framework Core 10
Database
PostgreSQL
Object Mapping
Mapster
Containerization
Docker
Testing
xUnit, Moq, FluentAssertions, SQLite (in-memory)
Documentation
Swagger / OpenAPI
CI/CD
GitHub Actions
Cryptography & Auth
BCrypt.Net-Next, JWT (JSON Web Tokens)
Scheduling
Cronos
Project Structure
The following project structure illustrates the Clean Architecture layout and the separation of concerns across API, Application, Domain, and Infrastructure layers.