This is a boat management application built for the OWT technical test.
It follows the Clean Architecture approach, inspired by Jason Taylor.
πΊ Reference video: Jason Taylor - Clean Architecture
- βοΈ .NET 9 β Web API implementation
- π MediatR β CQRS pattern
- β FluentValidation β Request validation
- π AutoMapper β Object mapping
- π¦ Ardalis.GuardClauses β Defensive programming
- π NSWAG β API documentation & client generation
- βοΈ React 19 β Modern frontend framework
- π΅ TypeScript β Strongly typed JavaScript
- π¨ Tailwind CSS β Utility-first styling
- π React Query β Data fetching & caching
- π Zustand β State management
The project follows Clean Architecture, separating:
π Domain β Core business logic
π Application β CQRS, validation & use cases
π Infrastructure β Database, authentication, external services
π Presentation β Web API & React frontend
β‘ This architecture might be overkill for the task, but I had fun implementing it!
I finished the test in 3 days, but there's still room for improvement.
βοΈ User authentication (Login, Register, JWT, Refresh Token)
βοΈ Boat CRUD (Create, Read, Update, Delete boats)
βοΈ Pagination & Page Size Selection
βοΈ Role-based authorization
βοΈ NSwag-generated API client
βοΈ Automatic token refresh
βοΈ Global error handling
βοΈ Clean & modern UI with Tailwind CSS
βοΈ Unit Testing
cd backend
dotnet runcd frontend
npm install
npm run devπ‘ Improve UI/UX animations
π‘ Implement Docker & CI/CD pipeline
π‘ Add search & filtering for boats