Hospitality · 2 booking platforms with a voice agent
Two hotel booking platforms with an AI voice agent
LIVE · 2 sites · HTTP 200 · 02 Jul 2026
Context
Two hotel booking platforms built on the same architecture and deployed to production: Gîte Amazigh (a guesthouse in Tichy, Béjaïa) and Hotel Luna (a hotel in Saint-Germain-des-Prés). Both are complete projects taken from database schema to production, voice agent included — presented as work, not as client references.
Problem
In a small lodging business, booking runs on manual back-and-forth: check availability by hand, answer the phone during desk hours, confirm by email, produce the invoice, remember the pre-arrival reminder. Every manual step is a chance to lose a booking or introduce an error.
Approach
One principle: automate the deterministic, keep humans on the decisions. Availability checks, transactional emails, invoicing, and reminders are fixed-rule processes — they are automated. Confirming a booking and setting prices stay in the back office. The voice agent is not a gimmick: it is a booking channel. It queries the same endpoints as the website — rooms, availability, alternatives, calendar, hotel information, booking creation — and creates a request that follows exactly the same human validation circuit.
What was delivered
- Backend: PHP 8, framework-free MVC — lightweight, deployable on shared hosting.
- Database: MySQL/MariaDB over PDO, prepared statements only.
- Frontend: Tailwind CSS, persistent dark/light mode, gallery, customer accounts with email verification.
- JSON API: availability, promo codes, newsletter, plus endpoints dedicated to the voice agent, protected by a Bearer token (timing-safe comparison) and rate limiting at 60 requests/min per IP.
- Voice agent: ElevenLabs Conversational AI with custom server tools — “Tanina” on the guesthouse, “Luna” on the hotel — able to answer questions and take a booking by voice.
- Emails and automation: SMTP — confirmation, validation or cancellation, day-before reminder, and post-stay email, sent by a daily cron.
- Invoicing: server-side PDF invoice generation.
- Security: strict CSP, CSRF tokens on all POSTs, bcrypt cost 12, hardened sessions, forced HTTPS.
Stack
- PHP 8 (framework-free MVC)
- MySQL/MariaDB (PDO, prepared statements)
- Tailwind CSS
- ElevenLabs Conversational AI (custom server tools)
- PHPMailer SMTP
- dompdf (PDF invoices)
- Bearer-secured JSON API + rate limiting
- daily cron
- AlwaysData hosting
Observed results
Both sites respond in production: gite-amazigh.alwaysdata.net and hotelluna.alwaysdata.net, verified HTTP 200 on 02 Jul 2026.
live demos · HTTP 200 · verified 02 Jul 2026
One technical foundation delivered as two distinct, verifiable deployments — two identities, two voice agents (“Tanina”, “Luna”), a single architecture taken from database schema to production.
two live demos · verified 02 Jul 2026
What stays human
Confirming each booking, pricing, handling edge cases, and the guest relationship stay with the operator. The system prepares, records, and follows up; it does not decide in the operator's place. No usage figures (bookings processed, voice calls) are published: none are measured to date.