Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/diazdavilajesus16-stack/Sevicheria-Mar-sabroso/llms.txt

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

The Platos Marinos section is the heart of the El Sabor Marino homepage. It presents the restaurant’s full seafood offering through an interactive, auto-scrolling carousel built with Owl Carousel. Each dish card displays a photo, name, description, and price, along with an “Agregar” button that adds the item directly to the client-side shopping cart.

Dishes

All 8 menu items are rendered as individual carousel cards inside the #menu section.
DishPriceDescription
Ceviche ClásicoS/ 25.00Pescado del día marinado con limón, cebolla y ají
Ceviche MixtoS/ 30.00Mariscos frescos con sabor peruano
Pulpo a la ParrillaS/ 40.00Pulpo con aceite de oliva y especias
Langostinos al AjilloS/ 35.00Langostinos salteados con mantequilla, ajo y limón
Arroz con MariscosS/ 28.00Arroz con camarones, calamares y mejillones
Pescado a la PlanchaS/ 27.00Filete fresco con verduras al vapor
Calamares RellenosS/ 32.00Calamares rellenos con puré cremoso
Chupe de CamaronesS/ 26.00Sopa cremosa tradicional peruana
The menu uses Owl Carousel initialized on .menu-carousel. The configuration is responsive and loops continuously.
menu carousel init
$(".menu-carousel").owlCarousel({
  loop: true,
  margin: 25,
  nav: true,
  dots: true,
  autoplay: true,
  autoplayTimeout: 3500,
  responsive: {
    0: { items: 1 },
    600: { items: 2 },
    1000: { items: 3 }
  }
});
BreakpointVisible items
0px (mobile)1
600px (tablet)2
1000px (desktop)3
  • Loop: Enabled — the carousel wraps around continuously.
  • Autoplay: Advances every 3,500ms (3.5 seconds).
  • Nav: Previous/next arrow buttons are shown.
  • Dots: Dot indicators are shown below the carousel.
  • Margin: 25px gutter between cards.

Adding a dish to the cart

Each dish card includes a button that calls agregarCarrito() with the dish name and price:
dish card button
<button class="btn" onclick="agregarCarrito('Ceviche Clásico', 25)">Agregar 🛒</button>
The agregarCarrito function pushes the item into the in-memory carrito array and displays a toast notification to the user:
agregarCarrito
function agregarCarrito(nombre, precio) {
    carrito.push({ nombre, precio });
    mostrarNotificacion(nombre + " agregado 🛒");
    actualizarCarrito();
}
See the Shopping Cart page for a full breakdown of the cart system.

Django admin: managing menu items

Menu content is managed through two Django models defined in menu/models.py.
menu/models.py
class Categoria(models.Model):
    nombre = models.CharField(max_length=100)
    def __str__(self): return self.nombre

class Plato(models.Model):
    categoria = models.ForeignKey(Categoria, on_delete=models.CASCADE)
    nombre = models.CharField(max_length=200)
    descripcion = models.TextField()
    precio = models.DecimalField(max_digits=8, decimal_places=2)
    imagen = models.ImageField(upload_to='platos/')
    disponible = models.BooleanField(default=True)
    creado = models.DateTimeField(auto_now_add=True)
    def __str__(self): return self.nombre
1

Open the Django admin panel

Navigate to /admin/ and log in with your superuser credentials.
2

Manage categories

Use the Categoria model to create or edit menu categories (e.g., Ceviches, Parrillas, Sopas).
3

Add or edit a dish

Use the Plato model to add a new dish. Fill in nombre, descripcion, precio, upload an imagen, and assign a categoria. Set disponible to control whether the dish appears on the frontend.
Set disponible = False to temporarily hide a dish from the menu without deleting it — useful for seasonal items or stock shortages.
The frontend carousel currently renders dishes from static HTML. To dynamically pull dishes from the database, the view rendering home.html must query Plato.objects.filter(disponible=True) and pass them to the template context.

Build docs developers (and LLMs) love