Kawhan Laurindo

WHOISKAWHAN / SOFTWARE ENGINEER / João Pessoa

Language

PROJECTS / 2024

NLW Journey API

A .NET API written with real DDD, not slide-deck DDD. Entity Framework, dynamic validation through FluentValidation, and Swagger for whoever consumes it.

OVERVIEW

An API for planning trips: register a trip and the activities that belong to it. Built during Rocketseat's NLW, it was a testing ground for Clean Code, SOLID and Domain-Driven Design in a project small enough to see every decision.

CONCEPT

Domain-Driven Design. The domain — trips and activities — sits at the center, isolated from the database and from HTTP. Validation rules are declarative with FluentValidation instead of a cascade of ifs, and errors become custom exceptions handled by a single filter, so every error response has the same shape.

FEATURES

  • Registering trips and each trip's activities
  • Declarative validation with FluentValidation
  • Custom exceptions with a global error filter
  • Interactive documentation with Swagger

HOW IT WORKS

Persistence uses Entity Framework with SQLite. Each request goes through the use case's validation before touching the database; if something fails, the exception bubbles up to the filter, which returns a standardized response.

STACK

  • CSharp
  • DotNet
Back to portfolio