Search

Search

Accessible IT Solutions Kenya
Menu

Zanzi Scenic Gateways - East Africa Tour & Safari Platform

Location: Tanzania, Kenya
Client: Zanzi Scenic Gateaways
Live Project: Visit Website
Zanzi Scenic Gateways - East Africa Tour & Safari Platform

Zanzi Scenic Gateways is a comprehensive tour and travel booking platform connecting travelers with curated East Africa adventures. Built on Django 6.0 with a sophisticated responsive design, this platform enables travelers to discover, book, and manage Kenya safaris, Tanzania wildlife tours, Zanzibar beach holidays, and gorilla trekking experiences in Rwanda and Uganda.

The platform features a powerful multi-currency system with real-time exchange rates, an intelligent shopping cart and checkout system, integrated payment gateways including M-Pesa, Pesapal, and PayPal, a dynamic tour listing with advanced filtering (price range, duration, destination, activity type), comprehensive destination management with gallery and feature sections, a fully-featured blog with commenting system, and an automated email notification system for bookings.

Zanzi Scenic Gateways addresses key challenges in East Africa's travel industry including fragmented booking processes, currency conversion complexity, limited payment options, and lack of transparent pricing for both local citizens and international travelers.

Project Details

Project Overview

Zanzi Scenic Gateways is a Nairobi-based tour operator specializing in curated East Africa adventures. The company required a modern, feature-rich booking platform that could handle the complexities of East African tourism including dual pricing for citizens versus international visitors, multiple currency support, and integration with local payment methods like M-Pesa alongside international options like PayPal and credit cards. The platform needed to showcase destinations, tours, and provide seamless booking functionality while maintaining excellent performance across all devices.

Technical Architecture

The project is built on a modern Django 6.0 framework utilizing:

  • Django 6.0 with Python 3.12 - Core framework providing robust MVC architecture and security features
  • MySQL Database with PyMySQL - Ensuring data integrity and handling complex relationships between tours, destinations, bookings, orders, currencies, and blog content
  • Custom Multi-Currency System - Admin-configurable exchange rates with user preference persistence via session and user accounts
  • M-Pesa Daraja API - STK Push integration for mobile payments with callback handling and transaction logging
  • Pesapal API 3.0 - Card payment gateway integration with IPN (Instant Payment Notification) support
  • PayPal SDK - International payment processing for global customers
  • Django REST Framework - For building AJAX endpoints supporting dynamic tour filtering, cart updates, and payment status polling
  • Custom Cart & Order System - Support for both authenticated users and guest sessions with persistent cart storage
  • jQuery UI Sliders - For interactive price range and duration filtering
  • Swiper.js & Owl Carousel - For testimonial sliders and image galleries
  • MixItUp - For dynamic tour filtering on category pages
  • AOS (Animate on Scroll) - For smooth scroll-triggered animations
  • Custom Email Templates - Branded HTML emails for booking confirmations and admin notifications
  • WhiteNoise & Django Compressor - Static file optimization and compression

Key Functionality Modules

Multi-Currency System: The platform features a fully dynamic currency system where administrators can add any currency, set exchange rates, and designate a base currency. Users can switch currencies via a dropdown menu, and all prices throughout the site (tours, cart, checkout, order confirmation) update in real-time using JavaScript or server-side rendering. The system supports decimal precision configuration per currency and persists user preferences via session or user account.

Dual Pricing Structure: Recognizing the tourism industry's need for differentiated pricing, the platform supports both citizen/local rates and non-resident/foreigner rates for each tour. The booking calculator allows customers to select quantities for both categories, and the cart calculates totals accordingly. Discount percentages can be applied across both pricing tiers.

Interactive Booking Calculator: On each tour detail page, users can open a modal calculator to select quantities for citizen adults/children and non-resident adults/children. The calculator instantly shows subtotals per category and a grand total in the user's selected currency. A single click adds the configured booking to the cart.

Payment Gateway Integration: Three payment methods are fully integrated:

  • M-Pesa: STK Push integration where customers enter their phone number and receive a prompt to enter PIN. The system polls for payment status and updates order accordingly. Test mode is available for sandbox testing.
  • Pesapal: Card payment gateway that redirects users to a secure payment page. IPN (Instant Payment Notification) ensures order status updates even if the user closes the browser after payment.
  • PayPal: Standard PayPal checkout with order capture and confirmation callbacks.

All payment methods can be enabled/disabled via admin, with test mode toggles for each gateway.

Shopping Cart & Checkout: The cart system supports both tour bookings and merchandise items (souvenirs) in a unified cart. Users can update quantities, remove items, and see real-time subtotal calculations. The checkout process collects customer information (name, email, phone, country, special requests), creates an order record, calculates tax (16% VAT), and presents available payment methods based on the user's selected currency.

Tour Management System: Administrators can manage tours with rich fields including:

  • Basic info: title, slug, location, duration (days/nights)
  • Pricing: citizen adult/child prices, foreigner adult/child prices
  • Discount: percentage discount with automatic flagging
  • Accommodation: type, notes, meal plan
  • Transport: vehicle type, languages available
  • Tour features: difficulty, trip type, activities, best time, included/excluded items
  • Media: main image, banner image, gallery images
  • SEO: meta title, description, keywords

Destination Management: Destinations (Kenya, Tanzania, Zanzibar, Rwanda, Uganda) have dedicated pages with description, feature icons with descriptions, image galleries, and associated tour listings. Each destination displays the number of available tours and features a sortable, filterable tour grid.

Dynamic Blog Platform: The blog system supports categories, tags, author attribution, and comments with approval workflow. Features include:

  • Search functionality across blog posts
  • Category and tag filtering with dedicated archive pages
  • Social media sharing buttons
  • Recent posts widget in sidebar
  • Comment system with moderation and email notifications
  • Popular posts widget based on view counts
  • Newsletter subscription form

Testimonial System: Customer testimonials are displayed in a Swiper carousel with star ratings, client photos, locations, and review text. Admins can approve/reject testimonials before they appear on the site.

FAQ System: Frequently asked questions are organized with category filtering (Booking & Payment, Travel Information, Safari Tips, Safety & Insurance) and displayed in an accordion format with smooth animations.

Security Implementation

Security was a critical consideration throughout development. We implemented:

  • CSRF protection on all forms with Django's built-in middleware
  • XSS prevention through template auto-escaping and content sanitization
  • SQL injection protection using Django's ORM parameterized queries
  • Secure session management with configurable timeouts
  • HTTPS enforcement via middleware configuration (HSTS, SSL redirect)
  • Secure cookie settings (Session cookie secure, CSRF cookie secure)
  • X-Frame-Options DENY to prevent clickjacking
  • Payment callback signature verification for M-Pesa and Pesapal
  • IP address logging for booking and contact submissions
  • Environment-based secret management with django-environ
  • Transaction logging for all payment attempts with full callback data storage
  • Comment moderation requiring admin approval before public display

Payment Processing & Transaction Logging

The platform implements robust payment processing with comprehensive logging:

  • M-Pesa Transactions: Each STK Push request creates a transaction record with checkout_request_id, phone number, amount, and status. Callback data is stored as JSON for audit trails. Status polling checks payment completion every 2 seconds for up to 90 attempts.
  • Pesapal Transactions: Order submission creates a transaction with order_tracking_id and merchant_reference. IPN endpoints receive payment status updates even if users don't return to the site. Callback and IPN data are stored as JSON.
  • Order Management: Each order stores both the displayed currency amount and the base currency amount (KES) for accurate accounting. Exchange rates used at checkout are stored with the order.
  • Payment Method Configuration: Admins can configure each payment gateway with API credentials, test mode toggles, and supported currencies. Each payment method can be independently enabled/disabled.

Email & Notification System

The platform implements a comprehensive notification system:

  • Booking Confirmation: Customers receive branded HTML emails with order details, payment confirmation, and next steps
  • Admin Notifications: Administrators receive formatted HTML emails for each booking with customer details and admin panel links
  • Contact Form Auto-reply: Customers receive immediate acknowledgment of their inquiry with expected response time
  • Contact Form Admin Alerts: Admin recipients receive formatted emails with inquiry details and quick-response buttons
  • Email Templates: All emails use responsive HTML templates with inline CSS for consistent rendering across email clients

Performance Optimization

To ensure fast load times and excellent user experience across all devices, we implemented:

  • Database query optimization with select_related and prefetch_related for related object fetching
  • Django Compressor for CSS and JS file minification and combination
  • WhiteNoise static file compression and cache management
  • Lazy loading of images throughout the site
  • Pagination on all list views (6-12 items per page)
  • AJAX-based filtering to reduce page reloads and server load
  • CDN integration for third-party libraries (Font Awesome, Google Fonts)
  • Database indexing strategy for search and filter performance
  • Rotating file logging for error tracking without performance impact

SEO & Structured Data

Built-in SEO optimization includes:

  • Dynamic meta title and meta description generation based on page content
  • Open Graph (Facebook) and Twitter Card meta tags for social sharing
  • Comprehensive Schema.org markup including TravelAgency, Tour, Destination, FAQPage, and BreadcrumbList structured data
  • Canonical URL management to prevent duplicate content issues
  • SEO-friendly URL slugs with automatic generation
  • Breadcrumb navigation for improved site structure and user experience
  • Semantic HTML5 markup throughout the site
  • Mobile-friendly design (Google's mobile-first indexing requirement)
  • hreflang tags for language and regional targeting

Admin Dashboard Excellence

The Django admin interface is extensively customized for operational efficiency:

  • Custom list displays with colored status badges and clickable filters
  • Inline editing for order fields and active status
  • Bulk actions for status updates (confirm bookings, cancel bookings, approve reviews)
  • Preview links to view content on the live site directly from admin
  • Fieldset organization with collapsed sections for advanced settings
  • Custom action buttons for payment method configuration
  • CSV export functionality for orders and transactions
  • Filter by date hierarchy, search across multiple fields, and list filtering
  • Read-only fields for analytics data (timestamps, transaction IDs)
  • Inline editing for tour galleries and destination galleries
  • Currency management with exchange rate editing and base currency designation

Mobile & Responsive Design

The platform is fully responsive with special attention to mobile users:

  • Mobile-first CSS approach with breakpoints at 768px, 992px, and 1200px
  • Offcanvas navigation for mobile devices with slide-in drawer animation
  • Touch-optimized buttons and form inputs
  • Responsive image handling with lazy loading
  • Floating action button for quick contact access (WhatsApp, Email, Call)
  • Mobile-optimized booking calculator modal
  • Grid layouts that adapt from multiple columns to single column on mobile
  • Readable font sizes across all devices
  • Swiper carousels that work with touch gestures

Results & Impact

Since launch, Zanzi Scenic Gateways has achieved significant business results:

  • 15+ tour packages covering Kenya, Tanzania, Zanzibar, Rwanda, and Uganda
  • 5 destination pages with comprehensive information and galleries
  • 20+ blog posts providing valuable travel content
  • Multiple payment methods including M-Pesa, Pesapal, PayPal, and cards
  • Multi-currency support with 8+ currencies including USD, EUR, GBP, KES, TZS, UGX, RWF, ZAR
  • Streamlined booking process reducing checkout time by 60%
  • Improved customer satisfaction through transparent pricing and multiple payment options
  • Increased conversion rates through intuitive booking calculator and cart system
  • Better customer insights through order tracking and analytics

Future Roadmap

Planned enhancements for the platform include:

  • Multi-language support (English, Swahili, French, German)
  • Customer portal for managing bookings and viewing travel documents
  • Real-time availability checking with date picker restrictions
  • Automated itinerary generation with PDF export
  • Integration with hotel and activity booking APIs
  • Customer loyalty program with points and discounts
  • Tour package builder allowing customers to customize itineraries
  • Live chat support integration
  • Mobile app development (iOS & Android) using React Native
  • AI-powered tour recommendations based on user preferences
Key Features
  • Multi-currency support with real-time exchange rate conversion
  • Secure payment integration (M-Pesa, Pesapal, PayPal, Credit/Debit Cards)
  • Dynamic tour filtering by destination, price, duration, and activity
  • Dual-pricing system (Citizen rates vs Non-Resident/Foreigner rates)
  • Interactive booking calculator with instant price calculation
  • Shopping cart with guest and authenticated user support
  • Responsive mobile-first design for all devices
  • Complete checkout workflow with payment processing
  • Automated email confirmations for bookings
  • Comprehensive blog with categories, tags, and commenting
  • Destination management with galleries and feature sections
  • Tour review and rating system with moderation
  • FAQ system with category filtering and accordion display
  • Contact form with automated email responses
  • Admin dashboard with transaction tracking
  • Structured data (Schema.org) for rich search results
  • WhatsApp integration for instant customer support
  • Offcanvas navigation for improved mobile experience
  • Back-to-top progress indicator
  • Floating action buttons for quick contact
  • SEO-optimized with meta tags and breadcrumb navigation
Technologies Used
Django 6.0 Python 3.12 MySQL PyMySQL M-Pesa Daraja API Django REST Framework jQuery jQuery UI Swiper.js Owl Carousel MixItUp AOS (Animate on Scroll) WhiteNoise Django Compressor HTML5/CSS3 JavaScript ES6 Font Awesome 6 Phosphor Icons Schema.org Structured Data SEO Optimization Responsive Web Design Mobile-First Development Git Version Control
Project Gallery

Have a Similar Project in Mind?

Let's discuss how we can help you achieve your digital goals.

๐Ÿ’ป

Grishon โ€” Accessible IT AI

Digital solutions expert ยท Online

๐Ÿ‘‹ Jambo! I'm Grishon, your AI assistant for Accessible IT Solutions Kenya.

I can help you with:
โ€ข ๐Ÿ’ป Web Design
โ€ข โš™๏ธ Custom Applications
โ€ข ๐Ÿ›’ E-commerce Platforms
โ€ข ๐Ÿ“Š Business Intelligence

What digital solution can I help you with today?