Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/NicolasMPP/restorante-springboot/llms.txt

Use this file to discover all available pages before exploring further.

Restorante is a full-stack restaurant management application built with Spring Boot 4 and Java 21. It provides a structured REST API and a Thymeleaf-powered web interface that together handle the day-to-day operational data of a restaurant — from what is on the menu and how each dish is prepared, to which ingredients are stocked in the pantry and which staff members are on the team. This documentation covers how to run the application locally, how to configure it for your environment, and how to interact with its REST endpoints.

Key Features

Menu Management

Create and retrieve menus composed of food items (alimentos). Each menu is associated with a manager (Gerente) and can contain main dishes, desserts, beverages, and additional items.

Pantry Inventory

Track ingredient stock through the Despensa (pantry) entity. Each pantry is linked to a manager and holds a collection of ingredients with their available quantities.

Recipes & Chefs

Recipes (Recetas) are authored by chefs and carry a list of required ingredients and step-by-step preparation instructions. Each food item on the menu can reference a recipe.

Food Type Classification

Every food item inherits from a shared Alimento base using SINGLE_TABLE JPA inheritance, with four concrete subtypes: PlatoFuerte, Postres, Bebida, and Adicionales.

Architecture Overview

Restorante is built on the following technology stack:
LayerTechnology
FrameworkSpring Boot 4
LanguageJava 21
DatabaseMySQL 8+
ORMSpring Data JPA / Hibernate (SINGLE_TABLE inheritance)
TemplatesThymeleaf
APICORS-enabled REST controllers (@CrossOrigin("*"))
Build toolGradle (with Gradle wrapper)
The application exposes REST endpoints for each domain entity alongside two Thymeleaf views: /menu for browsing the current menu and /despensa for viewing pantry inventory. All other routes redirect to /menu by default.

Entity Relationships

Restorante uses two inheritance hierarchies to model its domain: Staff (Persona hierarchy)
Persona
└── Empleado
    ├── Chef       — authors recipes, has salary and schedule
    └── Mesero     — floor staff, has salary and schedule
└── Gerente        — manages menus and the pantry
└── Cliente        — guest record
Food (Alimento hierarchy)
Alimento
├── PlatoFuerte    — main course, linked to a recipe
├── Postres        — dessert, optionally linked to a recipe
├── Bebida         — beverage, optionally linked to a recipe
└── Adicionales    — side or extra, optionally linked to a recipe
All Alimento subtypes are stored in a single alimentos table via Hibernate’s SINGLE_TABLE inheritance strategy, discriminated by a dtype column.

Where to Go Next

Quickstart

Clone the repo, create the database, and make your first API call in under five minutes.

API Reference

Explore all available REST endpoints for menus, pantry, recipes, ingredients, and staff.

Build docs developers (and LLMs) love