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.
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
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.
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
Have a project like this?
Our team in Pokhara designs and builds mobile apps, backends and the systems that connect them.
Start a conversation