DjbrAutomation
All work

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.