A FastAPI backend that automatically sorts event participants into compatible groups based on exclusion rules and age, then exposes it as a clean API a no-code frontend can call. Read-only and safe against the live database. Built solo, end to end.
Organizing people into groups for outdoor events was manual and error-prone. Some attendees bring kids or dogs, others want to avoid them, and groups also needed sensible sizing and age balance. Doing this by hand for every event didn't scale and led to bad pairings.
An API that pulls participants for an event, applies clear compatibility rules, balances by age, sizes the groups dynamically, and returns ready-made groups, all without touching the live database, so it slots into the existing app safely.
For a given event, the API reads the participant list from the existing Supabase schema, strictly read-only, so production data is never modified.
Participants are matched only if compatible: anyone avoiding kids or dogs is never placed with someone bringing them. The exclusion logic is the core of the algorithm.
Group count adapts to headcount, small events get one group, larger ones split into balanced groups sized for the number of attendees.
Within compatible groups, members are sorted by age and distributed round-robin so each group stays age-balanced rather than lopsided.
Results come back as clean JSON for the frontend, plus a grouped CSV. Designed for direct integration with a no-code app.
One call does it all. A single endpoint turns a raw participant list into compatible, age-balanced, correctly sized groups, ready for the app to display.
Grouping under exclusion rules (avoid vs bring) is a genuine constraint-satisfaction problem, not a simple split. The logic guarantees no incompatible pairing.
Dynamic sizing plus round-robin age distribution keeps groups even in both size and age, instead of dumping everyone into one bucket.
The whole system is read-only against the live database and works off exports, so it adds capability without any chance of corrupting existing data.
Simple, predictable REST endpoints with JSON responses make it trivial to wire into a no-code frontend, no backend knowledge needed on their side.
The grouping algorithm runs and is tested independently of the database, via CSV, so the core logic is verifiable without any live connection.
API, models, database layer, business logic, and tests, designed and shipped end to end by one engineer.
I turn messy business problems into reliable systems, APIs, hardware control, voice agents, content platforms, RAG, and automation, designed and shipped solo.