Skip to main content
Independent product · Sports Assistant BD

One platform for the academy and the ground.

I built connected workflows for players, staff, attendance devices, fee records, and venue bookings across FastAPI, Next.js, and Flutter.

FlutterFastAPIPostgreSQLZKTeco ADMSWeasyPrint
Sports Assistant BD conceptual project illustration

ROLE

Solo full-stack & mobile developer

2026 · Ongoing product

PRODUCT CONTEXT

The product serves academy staff, members, and venue bookers through distinct app surfaces, backed by shared organization and subscription services.

Engineering contributions

What I built, and why it matters.

01

Access follows the user's context

Staff and members belong to organizations; a venue booker may not. The API scopes organization data by tenant and booking data by the booking a user can access.

  • Staff, member, and booking surfaces
  • Membership-aware routing and revocation
  • Module and subscription enforcement
02

Attendance starts at a real device

ZKTeco ADMS/PUSH events enter the backend through registered devices. Device serial numbers resolve tenancy, while attendance and access services connect those events to member records.

  • ZKTeco F18 integration
  • Device-user and timezone handling
  • Member attendance and staff management views
03

Availability must survive a race

Venue availability combines hourly pricing, closures, and active booking slots. A database uniqueness constraint on ground, date, and hour resolves competing booking requests.

  • Public search with real availability
  • Booking holds, expiry, and owner confirmation
  • QR squad enrollment and roster-scoped features
04

Clear records for money already collected

The product records fees and other transactions collected outside the app, then issues branded invoices and updates membership/reporting state. It does not process those payments.

  • Per-academy invoice sequences
  • Dues, extensions, and financial reports
  • PDF regeneration without losing the payment record
05

An operator's product, too

Subscription tiers, expiry behavior, feature modules, notifications, and a super-admin console support running the service. Flutter now also has a browser release and desktop layout adaptations.

  • Trials, usage limits, and read-only expiry
  • Operator audit, plan, and organization tools
  • Next.js public/admin web plus Flutter clients

Mobile clients and release tooling are implemented. Store review preparation is described separately from public app-store approval.