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.

Role
Full-stack architecture, application development, database design and production deployment.
Year
2024
Technologies
Next.jsFastAPIPostgreSQLDockerCoolify
La Dolce Pizza

The challenge

Context

The 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.

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.