We Built a Complete Tour Management App — Here’s Everything It Can Do

At Butterfly Teck, we love solving complex, real-world problems through technology. Our latest project is one of our most ambitious yet — a full-stack, enterprise-grade tour management application built for adventure travel operators who need more than just a booking form.

This platform manages the entire lifecycle of a guided adventure tour — from the moment a traveler discovers a trip, through weeks of fitness training and gear preparation, all the way to post-tour feedback. Here’s a deep dive into what we built and why each feature matters.

What Is This Platform?

The app is a multi-role Progressive Web App (PWA) with native iOS and Android support, built for three types of users: Travelers, Tour Guides, and Administrators. Each role gets its own dedicated portal with tailored access and permissions.

Whether you’re a tour operator managing dozens of concurrent expeditions or a traveler preparing for a 14-day Himalayan trek, this platform has you covered — end to end.

User Roles & Authentication

Security and role-based access are foundational. The platform supports:

Security and role-based access are foundational. The platform supports:

  • Email/Password login with server-side hashing
  • Apple Sign-In via native OAuth for iOS users
  • Password reset with secure token-based email delivery
  • Email verification that gates access until confirmed
  • Automatic post-login routing — each role lands in their own portal

On first login, users receive a welcome email. Every subsequent session is managed via token-based authentication that refreshes automatically.

Tour Management — The Core of Everything

Tours are the heart of the platform. Admins can create and publish tours with rich metadata including:

  • Tour name, description, country, region, difficulty level (Easy to Advanced)
  • Start/end dates, participant limits, terrain tags, elevation data
  • Inclusions/exclusions, cover images, and assigned guide
  • Full pricing configuration in USD, EUR, GBP, INR, or NPR
  • Payment channels including bank transfer, UPI, and WhatsApp
  • Rich-text booking and cancellation policies

Tours move through a clear lifecycle: Draft → Published → Completed → Cancelled. A tour series key links multiple instances of the same route, enabling aggregate ratings over time.

Day-by-Day Itinerary Planning

Every tour includes a detailed day-by-day itinerary so travelers know exactly what to expect. For each day, admins can specify:

  • Start/end locations, elevation data, distance, and hiking duration
  • Terrain description and daily difficulty rating
  • Accommodation type (hotel, tent, tea house, etc.), room sharing type, washroom type
  • Meals included (breakfast, lunch, dinner — independently toggled)

Itinerary data can also be imported directly from WordPress, saving admins hours of manual entry.

Pre-Tour Fitness Training — The Readiness Engine

This is where the platform truly sets itself apart. We built a proprietary fitness scoring system that tracks traveler readiness in real-time across multiple training phases.

Admins define named training phases — Foundation, Volume, Endurance, Peak, Taper — each with independent targets for:

  • Hike distance and elevation
  • Training time and session count
  • Yoga, strength training, and stair/step logging

Each phase has a deadline. Once it passes, that phase’s score locks permanently — no retroactive inflation. Late joiners automatically get their training timeline anchored to their actual join date.

The result is a live readiness score (displayed as a percentage ring) visible to both the traveler and admin, with full per-requirement breakdowns showing actual vs. target progress.

Strava Integration — Automated Activity Sync

To power the readiness engine, we integrated with Strava using a club-based sync model. Rather than requiring each traveler to connect their own Strava account, a single admin service account manages all club data.

Here’s how it works: The admin connects a Strava club once. The platform automatically syncs all member activities — hikes, yoga sessions, and more — filters by sport type and training start date, and maps athletes to app users. A background cron job runs continuously, refreshing data and recomputing readiness scores on a rolling basis.

Travelers see their own activity feed directly in the training tab.

Gear & Packing Management

No more last-minute scrambles. Admins define a packing list per tour with required/optional flags and product purchase links. Travelers manage their own checklist with four granular item statuses: Have it | Don’t have it | Want to purchase | Packed.

Two weeks before tour departure, the system automatically sends a gear reminder email for any items not yet marked as packed.

Announcements & Push Notifications

Communication is built into the platform at every level. Admins and guides can send:

  • Global announcements to all users across all tours
  • Tour-specific announcements targeted to travelers or guides of a particular trip
  • Individual user messages for personalized alerts

Push notifications are powered by Firebase Cloud Messaging (FCM), supporting iOS, Android, and web simultaneously. Automated alerts trigger when a traveler falls behind their readiness targets, when new announcements are published, or when tour updates occur.

Tour Resources & Media Library

Each tour gets a curated resource library including:

  • PDFs and research documents (destination guides, health advisories)
  • Cloudinary-hosted videos and audio guides playable in-app
  • Curated external links (visa sites, embassy pages, gear shops)
  • Emergency medical notes and altitude sickness protocols
  • A shared Google Drive photo album link for the group

Admins control the sort order of all resources.

Logistics — Transport & Rooming

Ground logistics are fully managed within the platform. Admins can:

  • Define vehicle entries with pickup details and assign specific travelers to each
  • Create per-day hotel allocations with hotel name, room numbers, and check-in/check-out dates
  • Assign named occupants (with mobile numbers) to each room entry

Travelers only see their assigned vehicle and room. Admins and guides see the full logistics picture. Rooming data can also be imported from a WordPress booking system.

Live Weather Forecasting

For each tour day, admins add a location entry and the platform automatically fetches a live weather forecast from OpenWeatherMap. A background cron job keeps forecasts fresh for all upcoming active tours.

Travelers can view the weather forecast for each day of their trip — including temperature, precipitation, wind speed, and conditions — in metric or imperial units.

Flight Information Management

Coordinating dozens of arrivals at a remote trailhead is no small task. The platform handles it with a multi-leg flight information module. Travelers enter each leg of their inbound and outbound journey (flight number, date, time, airport code). Guides and admins see all participant flight details in a single panel, structured for easy export into ground logistics planning.

Post-Tour Feedback & Ratings

After a tour wraps, admins initiate a feedback cycle. Travelers receive a notification to submit a star rating (1–5), written feedback, and an optional photo. Ratings aggregate across tours sharing the same route via the tour series key, building a long-term quality picture for each destination.

Document Management

Travelers have a secure personal document vault for passports, visas, insurance certificates, and vaccination records — each with an optional expiry date for validity tracking. Tour-specific documents (e.g., a visa for a particular destination) are stored separately. All files are secured in Convex storage with role-based access controls.

Three Dedicated Portals

Admin Control Panel — Full platform control: tour creation, user management, training configuration, Strava setup, logistics, weather, announcements, feedback, and system feature flags.

Guide Panel — A focused portal for tour leaders covering assigned tours, participant health and emergency profiles, flight info coordination, and tour-specific announcements.

Traveler Portal — A mobile-first experience for browsing tours, tracking training readiness, managing gear, submitting flight info, accessing resources, and posting post-tour feedback.

The Technology Stack

We built this platform on a modern, scalable foundation:

  • Frontend: React 18 + TypeScript + Vite + Tailwind CSS + shadcn/ui
  • Mobile: Capacitor (iOS + Android) — a single codebase, native app store distribution
  • Backend/Database: Convex — serverless real-time database with reactive queries and scheduled actions
  • Authentication: Convex Auth (email/password + Apple OAuth)
  • Push Notifications: Firebase Cloud Messaging
  • File Storage: Convex Storage + Cloudinary for video and media
  • External APIs: Strava, OpenWeatherMap, WordPress REST API, Cloudinary
  • Deployment: Static frontend hosting + Convex cloud backend + EAS Build for mobile

Ready to Build Something Like This?

This project is a testament to what’s possible when you combine deep product thinking with modern engineering. If you’re a tour operator looking to digitise your operations, or a business with a complex workflow that needs a custom platform, we’d love to talk.

Get in touch with the Butterfly Teck team and let’s build something remarkable together.

Leave a comment

Your email address will not be published. Required fields are marked *