Closet is a web application I designed and developed for cataloging a wardrobe and generating outfits. Users add their clothing to a browsable catalog, then generate outfits for a specific occasion and weather. The front end is built in HTML, CSS, and JavaScript and hosted on GitHub Pages; user accounts and data are stored in Supabase.
| Catalog | Add, search, and sort clothing; filter by category (outerwear, tops, sweaters, dresses, jeans) and color |
|---|---|
| Outfit generator | Rule-based outfits by occasion (university, work, networking, date night, events) and weather |
| Weather input | Condition (sunny, cloudy, rainy, windy, snowy) and temperature in °F or °C, set manually or from location |
| Planning modes | Today, My week, and A trip |
| Explanations | Each outfit lists the reasons it was selected (warmth, formality, palette) |
| Personalization | Optional "style from my taste" weighting from Pinterest pins, outfit photos, and most-worn pieces |
| Tracking | "Wore this today" journal and liked outfits |
| Accounts & sync | Supabase authentication and cloud storage, synced across devices |
The generator uses deterministic, rule-based matching rather than a machine-learning model. Given the occasion, weather condition, and temperature, it selects pieces that satisfy warmth, formality, and color rules, then names the outfit and lists why each choice fits. For example, a 59°F sunny day at university produced a "street neutrals" look, with the leather jacket selected for warmth and a neutral palette for the setting. Because the logic is explicit, every recommendation is traceable and the rules are straightforward to tune.
The first version stored data locally in the browser. To make the closet available on any device without manual export and import, I migrated persistence to Supabase, which provides user authentication and a hosted cloud database. Each user's catalog, outfits, journal, and likes now sync automatically across devices.
The interface uses an olive-and-neutral palette, an editorial serif for headings, and arched item cards, with a persistent sidebar for Closet, Outfits, Journal, Inspiration, and Liked.