OZONES

Projects

A closer look at what I've been building — the problem, the stack, and how it works.

Flag a Day

A Wordle-style daily flag-guessing game — everyone gets the same flag each day, three guesses, and a community-driven layer of hints and fun facts.

  • Built a full-stack web app with Next.js (App Router, React) and TypeScript, using Drizzle ORM over Postgres — an embedded PGlite database for zero-setup local dev that swaps to Supabase Postgres in production.
  • Served one deterministic daily puzzle to every player from a fixed shuffle of ~250 countries indexed by day, with anonymous cookie-based identity and gated, community-driven hints, fun facts, up/down voting, and flag-based auto-moderation.
  • Set up a GitHub Actions CI pipeline (tests plus production build on every pull request) with continuous deployment to Vercel on each merge to main.
Next.jsReact.jsTypeScriptDrizzle ORMPostgreSQL

FamFunds - Shared Expense Tracker

A shared expense tracker built on Spaces — switch between a private Personal Space and shared Family Spaces.

  • Built a cross-platform mobile app with React Native (Expo) and TypeScript, backed by Supabase (PostgreSQL) for auth, data, and storage.
  • Modeled finances around intrinsic Spaces — a permanent private Personal Space auto-provisioned at signup plus shareable Family Spaces joined by a rotatable invite code, with admin/member permissions enforced through Postgres Row-Level Security.
  • Implemented per-month budgets with auto-carry from the prior month, a DB-enforced category list, and denormalized logger names so a departing member's expenses persist in the shared ledger.
React NativeExpoTypeScriptSupabasePostgreSQL

PL Predict

A prediction system for visualizing team performance trends.

  • Engineered a prediction system using Python for data processing, Scikit-learn for machine-learning pipelines, and a React front-end to visualize predictions and team performance trends.
  • Validated model behavior by comparing predicted vs. actual outcomes and analyzing error distributions throughout training.
PythonPandasScikit-learnReact.js
Hello, there. I'll walk with you.