Toluwalope AkinkunmiLoading…

Sketching things…

000
Skip to content
← All work

05 / The Circular Net

Circular Ticket Mobile

The iOS and Android app for Circular Ticket: attendees discover events and carry their tickets; organisers create events, scan tickets at the door and request payouts.

Company
The Circular Net
Role
Sole mobile engineer
Period
Jul 2026 – PresentIn development
Links
Private / internal
Stack
ExpoReact NativeExpo RouterTypeScriptNativeWindTanStack QueryRedux ToolkitZodReanimatedexpo-cameraEAS
05

Circular Ticket Mobile

The events app for iOS and Android

ExpoReact NativeExpo RouterTypeScript

Screenshots coming soon

What I built

  • 01The attendee flow: discover and filter events, event details, registration, checkout and orders with QR tickets
  • 02The organiser flow: a multi-step create/edit event wizard, dashboard stats, orders and scanner access
  • 03A ticket scanner with camera framing that locks onto the code, validation and attendee check-in
  • 04NGN/USD wallets, transactions, payout accounts and payout requests
  • 05A five-step KYC wizard and in-review states on payout screens
  • 06SSO sign-in, calendar sync, a notifications hub, dark mode and illustrated empty states

The system

One app, two roles, the shared package underneath

One app, two roles, the shared package underneathAttendees & organisers → Mobile app; Mobile app → Shared package; Mobile app → Attendee flow; Mobile app → Organiser tools; Mobile app → Ticket scannerAttendees & organisersMobile appExpo RouterShared packagenpm workspacesAttendee flowOrganiser toolsTicket scannerexpo-cameraimports

Key decisions

  1. 01

    One account, two roles

    Attendees and organisers use the same sign-in and switch roles inside the app, instead of installing two apps.

  2. 02

    Scan, validate, then check in

    The scanner frames the code, validates the ticket against the API and only then checks the attendee in, with a visible state for each step.

  3. 03

    Ready for the newest iOS

    iPad rotation and the iOS scene lifecycle are in from the start, so the app launches cleanly on the latest iOS.

01

The problem

Organisers and attendees needed a native app for the events product, with one account that switches between attendee and organiser roles.

02

The process

I built the app in the same npm-workspaces monorepo as the web app, importing services, hooks and schemas from the shared package. It started from mock data and UI primitives, then each area (events, orders, wallets, payouts, KYC and scanning) was wired to the live API.

03

The outcome

App identity, deep links and EAS builds for the Play Console are configured; the store release is next.

04

What I learned

Sharing data and validation logic kept web and mobile consistent, while the screens stayed native to each platform.

Next projectExport TradesCross-border commodity trading, in many languages