Back to projects

Published event platform

Fantastic Events

A native Android event app and Next.js administration system for tickets, schedules, tournaments, content, and audience engagement.

Role
Solution architect, backend, Android and web developer
Current status
Publicly listed on Google Play

Overview

Overview

Fantastic Events combines an Android application, an iOS application, a Next.js administration system and a shared backend for tickets, schedules, tournaments, content and audience communication. Mateja developed the backend, Next.js administration system and Android application; Mihael Koić developed the iOS application and contributed design concepts and UX ideas.

Business problem

Event visitors need one reliable place for practical information and interactive participation before, during, and after an event.

My contribution

  • Designed the Supabase architecture across authentication, PostgREST data access, storage, Realtime, roles, and row-level security.
  • Implemented product areas represented in the repository, including QR ticket workflows, tournaments, leaderboards, schedules, profiles, and GDPR account deletion.
  • Built and maintained a Next.js and TypeScript admin dashboard for users, games, tournaments, sponsors, posts, applications, schedules, and targeted push notifications.
  • Implemented tournament participant seeding, bracket generation, byes, match progression, and realtime bracket updates.

Engineering challenges

Engineering challenges

01

Supabase platform architecture

Designing authentication, relational data, storage, Realtime subscriptions, roles, and RLS policies for mobile and admin clients.

02

Tournament operations and seeding

Generating seeded brackets with byes, advancing winners, and synchronising match updates in realtime.

03

Mobile, admin, and communication

Keeping Android features, admin workflows, QR tickets, and targeted OneSignal notifications coherent.

Screenshots

Screenshots

Captures from the running application. Serial numbers, network addresses and sensor identifiers are redacted.

Fantastic Events ticket screen on a phone: an event ticket illustration, a field for the twenty-digit code with a QR scan button, a save button, and a link to buy a ticket

Ticket — scan the QR code or type the twenty digits

The screen that decides whether entry works: a visitor scans the QR code on their ticket, or types the code when the camera will not cooperate at the door. Once saved, the ticket lives on the device, and the same screen offers a purchase link to anyone who arrives without one.

Fantastic Events home screen on a tablet: the event logo, a live countdown to Fantastic Gaming Show 2026, shortcuts to ticket, leaderboard, events and tournaments, and a partners strip with four partner logos

Home — countdown, the four shortcuts and the event's partners

One screen for the four things a visitor opens the app for — their ticket, the leaderboard, the programme and the tournaments — under a live countdown to the show. The strip below switches between partners, media, sponsors and exhibitors, all maintained from the Next.js admin rather than shipped in a release.

Fantastic Events schedule screen on a tablet, with Friday and Saturday tabs and timed programme entries including the opening ceremony, a giveaway and STEM workshops for schools

Schedule — the programme per day, in time order

The programme as the organiser maintains it: one tab per event day, entries in time order, each carrying the description published from the admin dashboard. Moving a slot is an edit in the backend rather than an app update, which is what a schedule that shifts on the day actually needs.

Architecture

Architecture

A Kotlin and Jetpack Compose Android client and a Next.js admin dashboard share one Supabase backend. Authentication, PostgREST data access, storage and Realtime subscriptions sit behind role-based row-level security, so the same policies govern both the mobile app and the administration system.

Outcome

Outcome

Mateja delivered the shared backend, Android application and Next.js administration workflows. Mihael Koić delivered the iOS application and contributed design concepts and UX ideas, giving the product coordinated mobile and administration experiences.

Technologies

KotlinAndroidJetpack ComposeNext.jsTypeScriptSupabaseRow Level SecurityRealtimeOneSignalCameraX / ML KitTipTapSwift / iOS