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