Case study

Aletta Travel

A complete travel booking platform covering tours, hotels, events, a news hub and a photo gallery — backed by role-scoped vendor and admin dashboards.

Role
Full-stack developer
Timeline
July 2026 – present
Stack
Django, Python, PostgreSQL, Bootstrap
Live site
www.alettatravel.com ↗
Aletta Travel

The problem

Aletta Travel sells three quite different things — multi-day tours, hotel rooms and ticketed events — and each is managed by a different person. A single shared admin login would have meant every manager seeing, and being able to edit, everyone else's listings and bookings. The business needed one public site and several private, non-overlapping views behind it.

What I built

On the public side: destination pages, sitewide search with type filters, testimonials, newsletter signup, and a guided "Plan My Trip" inquiry flow. Homepage carousels and service tiles populate from live content, and hero images can be uploaded manually or pulled from a stock photo source.

Behind it, a vendor dashboard where hotel managers, tour managers and event organisers each get a scoped view of only their own listings and bookings. A superadmin can grant one-off permissions and customise what each user's dashboard shows.

  • Role-based access control with per-user permission overrides
  • One-time passcode login, password reset, and an approval workflow for new vendor signups
  • Live notifications for lead inquiries and trip-planner leads, with unread counts
  • QR-coded tickets generated per attendee for scanning at event doors

Running it in production

I handled the infrastructure as well as the code: domain configuration, hosting, and transactional email delivery. Deployment runs through an automated pipeline that executes checks and database migrations before every release, and rolls back automatically if a deployment fails its health check.

The project was handed over with a documented, handoff-ready codebase and configuration guidance for whoever maintains it next.

More projects