Web Application · Full-stack · Reservations
La Dolce Pizza
Web platform for an Italian restaurant combining digital presence with an online reservation system connected to a custom API and database.

The challenge
ContextThe restaurant needed its own digital presence and a structured way to receive reservation requests, without relying on third-party booking platforms or generic reservation tools.
The project required combining a polished public interface with a working reservation system: a form with date, time and diner selection, client and server-side validation, submission to a custom API and persistent storage.
All of this within a decoupled architecture that would allow each layer to evolve independently and keep the system maintainable as it grows.
The solution
A three-layer decoupled application was built: a Next.js frontend for the restaurant's public presence, a FastAPI backend that receives and validates reservation requests, and a PostgreSQL database for persistent storage.
The frontend communicates with the backend via HTTP using an environment variable for the endpoint URL, allowing the target to change without code modifications. Validation runs on both client and server.
The local environment uses Docker Compose. In production, the backend and database are deployed via Coolify on a VPS server, keeping each component's deployment cycle independent.
Technical approach
Next.js frontend
Presents the restaurant publicly and handles the reservation form, communicating with the API via HTTP using a configurable environment variable.
FastAPI backend
Receives reservation requests, validates the data, handles errors and persists the information to the database.
PostgreSQL database
Relational storage for reservations with data integrity. Runs in Docker locally; deployed within the project infrastructure in production.
Client and server validation
The form validates data before submission; the API validates again on receipt, preventing incorrect data from reaching the database.
Coolify deployment on VPS
Backend and database deployed via Coolify on a VPS server. Local environment managed with Docker Compose.
Separation of concerns
Each layer (interface, business logic, persistence) is independent and can be updated or replaced without affecting the others.
Project gallery
Outcome
The project gave the restaurant its own digital presence and a working channel for receiving reservation requests. The decoupled architecture allows each layer to evolve independently, and the VPS infrastructure managed with Coolify makes maintenance straightforward without relying on external platforms.
Explore more of my work
Review more professional and academic projects across business software, web development and system integrations.