← All projects

Tickety

A queue management system for Cameroon, with a REST API, web app, and Android app, built around phone-first login.

Summary

Tickety is a digital queue and ticketing system designed for the Cameroonian context. Service providers manage queues with counters, priority rules, and scheduled opening and closing times; users take tickets from the web or from the Android app. Because phone numbers are more widely used than email in Cameroon, users can sign in with either a phone number or an email address via a one-time code (OTP).

Role

Full-stack developer across the backend, web client, and mobile client; the Flutter mobile app is developed with a collaborator.

Android app

APK download available from the landing page.

Key features

  • Digital tickets for queue management
  • Multiple service counters
  • Priority handling within queues
  • Scheduled opening and closing times
  • Login by phone number or email with one-time codes
  • Web app (React) and native Android app (Flutter), with direct APK download

Screenshots

Landing page with a live ticket preview showing queue position and estimated wait.
Provider dashboard: active queues, tickets issued today, team members, and opening hours.
Queue management with status and priority filters, counter assignment, and ticket issuing.
Team management with owner, manager, and agent roles plus invite links.
Analytics: tickets per day, priority breakdown, and average wait time per queue.

Demo

Screen recording of the Tickety web app.

Architecture

  • Backend: Flask REST API using SQLAlchemy, served by gunicorn on a VPS. MySQL in production, SQLite for local testing.
  • Web client: React.
  • Mobile client: Flutter (Android).
  • CI/CD: GitHub Actions workflows run the test suites and block deployment if tests fail.
Tickety architecture: React web client and Flutter Android app call a Flask REST API served by gunicorn, backed by MySQL in production and SQLite in local testing, with GitHub Actions gating deployment. Web client React · Vitest GitHub Actions tests gate deployment Android app Flutter · Dart Flask REST API SQLAlchemy · gunicorn · VPS OTP delivery email · Brevo SMS MySQL production SQLite local testing HTTPS / REST HTTPS / REST deploy on green build
Both clients talk to the same Flask REST API. One-time codes are delivered by email or Brevo SMS, and GitHub Actions blocks deployment when the test suites fail.

Tech stack

Backend

  • Python
  • Flask
  • SQLAlchemy
  • MySQL
  • SQLite
  • gunicorn
  • pytest

Web

  • React
  • Vitest

Mobile

  • Flutter
  • Dart
  • flutter_test

Messaging

  • Email OTP
  • Brevo SMS

DevOps

  • GitHub Actions
  • VPS deployment

Links

The Android APK can be downloaded from the landing page.