Skip to content
fetching.[)esign_
Web Application

Team Builder

Forms student teams from validated psychometrics using clustering algorithms.

Python 3.11FastAPISQLModelscikit-learnReactPostgreSQL

Problem

Manual team assignment is slow and biased; random assignment creates poor group dynamics; there was no validated, data-driven tool.

What I built

An app that administers IPIP-NEO-120 / HEXACO-60 assessments and forms teams three ways: Similar (k-means), Complementary (diversity-maximizing round-robin), and Balanced (conscientiousness stratification with an agreeableness guardrail). It computes cohort z-scores and percentiles and supports draft/publish, manual editing, and CSV export.

Engineering highlights

scikit-learn clustering with research-grounded strategies; a custom scorer (item-to-domain mapping, reverse scoring, cohort norms via scipy); FastAPI with async SQLModel; a React + TypeScript UI with drag-and-drop editing. Deployed behind nginx with SSL.