About the Project

We set out to build Allan AI because, as ping pong players, we wanted an easier way to watch back our matches, spot momentum shifts, and relive highlight rallies without scrubbing through entire recordings.

The vision: drop in a match video and instantly get the story of the game — who pulled ahead, which points mattered, and a reel you can share or learn from.

Tech Stack Overview

To make that happen, we engineered a full stack:

  • Frontend: Jetpack Compose Android app that records or uploads matches, handles secure authentication, and presents match history, stats, and highlight clips with a table-tennis look and feel.
  • Backend: Spring Boot service backed by MongoDB that manages user accounts, stores match metadata, and orchestrates the (future) computer-vision pipeline.
  • Computer Vision (in progress): Models that identify rallies, classify strokes, and auto-curate highlight reels tailored for ping pong.

What We Learned

Mobile ↔ Backend Choreography

We leaned on Retrofit, Hilt DI, and buildConfig-driven base URLs to keep the Android client flexible across emulator, LAN, and future cloud deployments.

Security Foundations

Migrating from local SharedPreferences passwords to JWT-based authentication taught us the value of hashing, request validation, and token lifecycle management.

Operational Discipline

Working with large video uploads forced us to tune OkHttp timeouts, storage, and logging so the pipeline remains reliable even on flaky networks.


Challenges We Met

Cleartext Restrictions

The emulator initially blocked HTTP calls to our local backend; we fixed it with a custom network security configuration and environment-based URLs.

Session and Storage Coordination

We reshaped our repository layer to persist tokens securely while leaving room for synchronized match data once computer vision is integrated.

Parallel Development

Balancing Android UI, backend APIs, and CV planning required heavy use of architecture docs (FrontendArchitecture.md) and DTO contracts to keep everyone aligned.


Next Steps

We now have a working login flow, match dashboard, and backend scaffolding ready for ping pong highlight detection.

Next up:

  • Productionize the computer vision models
  • Refine the upload and record experience
  • Deploy the backend globally so players can analyze their games from any table in the world

Built With

Share this project:

Updates