Sentidos Café is a production-quality web application built as a university project for Universidad Tecnológica de los Andes (Programación Web). It powers a real coffee shop located in the historic heart of Cusco, Peru — a city whose tagline the site proudly echoes: “Despierta tus sentidos con nuestro aroma.” The project demonstrates full-stack PHP development from a structured MySQL schema and PDO-based backend through to a polished, mobile-responsive frontend built with vanilla JavaScript, CSS3, and Font Awesome icons.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/Jimmy13anhelo/paginaweb2.github.io/llms.txt
Use this file to discover all available pages before exploring further.
Tech Stack
| Layer | Technology |
|---|---|
| Server-side rendering | PHP 7.4+ with require_once includes |
| Database access | MySQL 5.7+ via PDO (with PDO::ERRMODE_EXCEPTION) |
| Styling | CSS3 — custom properties, Flexbox, responsive breakpoints |
| Icons | Font Awesome 6.4.0 (CDN) |
| Client-side logic | Vanilla JavaScript (ES6+) — no frameworks |
| Maps | Google Maps Embed API (iframe) |
| Messaging | WhatsApp Business API (api.whatsapp.com/send) |
Key Features
Interactive Menu
A full menu page at
menu/menu.php with category navigation, item cards, and hover effects powered by buscador.js. Customers can browse coffees, pastries, and combo packages.WhatsApp Ordering
Every combo card and the fixed floating button trigger a pre-filled WhatsApp message to the café’s Cusco number (
+51 937604465), letting customers order in one tap.Table Reservations
A full CRUD reservation system under
reservas/ — customers submit their name, date, time, party size, and seating preference, stored in the reservas MySQL table.Contact & Location
An embedded Google Maps iframe pinpoints the café’s exact coordinates (
-13.5269295, -71.9492471) with a direct “Ver en Google Maps” button, plus email and social media links.Database Overview
The application uses a single database namedsentidos_cafe_db, created and seeded by script.sql. It contains three tables:
pedidos— Stores customer orders: client name, phone, delivery address, product list, total amount (decimal), and timestamp.reservas— Stores table reservations: first/last name, phone, reservation date and time, party size, and preferred seating zone (zona_preferida).usuarios— Stores admin login credentials: username and hashed (or plain-text) password used byLogin/login.php.
Main Files at a Glance
| File | Purpose |
|---|---|
index.php | Homepage — header, nav, welcome section, Google Maps, combo gallery, contact footer |
conexion.php | Shared PDO connection, included via require_once in every PHP page |
buscador.js | All client-side logic: hover effects, WhatsApp messaging, AJAX registration, payroll calculator, category search |
estilo.css | Full stylesheet: resets, orange brand theme (#f7941d), responsive breakpoints |
script.sql | MySQL DDL — creates the database and all three tables, seeds the default admin user |
The database seed in
script.sql inserts a default administrator account with the credentials user: admin / password: admin123. These are stored in plain text in the initial migration. You must update this record with a hashed password and a strong secret before deploying to any public server.