Back to Portfolio
Ticketing & Payments

Selling show tickets from a taxi, in under a minute

A ticketing platform for a cultural dance show in Pokhara. A Django REST backend runs the shows, ticket types, bookings and payments, and a Flutter app lets the people who meet tourists every day (taxi drivers, hotel receptionists, Lakeside tea sellers, travel agents) sell a ticket and take payment on the spot.

2024
Year
< 30s
Booking Time
15 min
Seat Hold
4x Faster
Efficiency Gain
The challenge

Built for the street, not the office

Agents sell between other jobs, on cheap Android phones with patchy data, often in a moving taxi. A sale has to take under a minute, survive a dropped connection, and show the agent exactly what they earned.

  • Either person can pay: the tourist scans the QR, or the agent pays from their own bank app
  • Seats are held for 15 minutes while payment completes
  • Every step can be retried safely, so nothing is lost
  • English and Nepali, big touch targets, little typing
What we built

A booking API and an app for agents

Designed around one flow: show, ticket type, quantity, customer, QR, done.

  • Backend

    Django REST

    Shows, ticket types, bookings, tickets, commissions and analytics behind a JWT-secured REST API.

  • Agent app

    Flutter + Riverpod

    Four tabs with go_router, a Dio client with single-flight token refresh, and layouts tested at 320 pt with 1.3× text in both languages.

  • Payments

    Fonepay dynamic QR

    Confirmed by the gateway’s WebSocket, 4-second polling and a check when the app resumes, so no payment is missed.

  • Live counters

    WebSockets

    Seats-left counters pushed from the server as tickets sell.

Highlights

What it does

Sell

  • Show, ticket type, quantity, name and WhatsApp number, then a payment QR
  • Live total and commission while you sell
  • Save or share the QR to pay from any bank app

After the sale

  • My sales with search, filters and paging
  • Resend tickets, cancel, and check in
  • Resume a sale that was interrupted

Earnings

  • Commission per show and ticket type
  • Visible before, during and after each sale
  • Profile, language, password and support in the app
Stack: #Django REST#Flutter#Riverpod#Fonepay QR#WebSockets#JWT

Have a project like this?

Our team in Pokhara designs and builds mobile apps, backends and the systems that connect them.

Start a conversation