Profile picture

Invoices App API

Intro

This was another ASP.NET API I built so I could practice with the Controller API pattern (as opposed to the Minimal API pattern I used in the Flashcards App API project). As usual, it was based on a Frontend Mentor challenge and the repo is publicly available here.

I will add a Next.js frontend as the next step so I can explore how the two servers can interact.

App Features

The purpose of the application is to manage invoices. A user can read, create, update and delete their own invoices, and the invoices can have a number of invoice items associated with them.

As with my other ASP.NET APIs, the main purpose of this was to explore some of features of the framework and so some of the services may seem a little contrived to more experienced eyes.

  • Controller API architecture for CRUD
  • Authentication/authorisation via JWT
  • Entity Framework and code first migrations
  • Model attributes
  • Data annotations
  • Data transfer objects
  • Pagination
  • Custom validation attributes
  • Documentation via Swagger
  • Interfaces
  • Enums

App Screenshots

Invoices API resources
Invoices API resources
Invoices API schemas
Invoices API schemas

Database Schema

Invoices database schema
Invoices database schema