Projects

Building cool things that resolve real-world problems.

iMapped

Cross-platform trip-itinerary planner that sequences day-by-day plans, optimizes routes to minimize travel time, and surfaces AI-ranked restaurants, activities, and events anchored to lodging on a map. Built as a 5-person venture team in MacEwan's technology-entrepreneurship course (COSL 301) and shipped to web and native Android from one codebase.

Key Features
·Shipped to web and native Android from one Flutter/Dart codebase (88 Dart source files across 210 commits, 172 tests green)
·Client-side route optimizer in Dart - haversine distance with nearest-neighbour construction and 2-opt improvement - to sequence day-by-day plans and minimize total travel time
·Recommendation re-ranker on Groq (Llama 70B) as a Supabase Edge Function, caching ranked results to control response latency and API cost
·Integrated with Supabase (Postgres + PostGIS, PKCE auth, Edge Functions) behind repository interfaces, so seed-backed fakes could be swapped for live implementations without touching UI code
·Pivoted from an original flight-booking concept to itinerary planning based on two rounds of user testing and pain-point validation
FlutterDartSupabase (Postgres, PostGIS, Edge Functions)Groq (Llama 70B)OpenStreetMap / Overpass APIVercel

Schedulater

Full-stack mobile exam-deferral platform for university workflows. Won 1st Place at the IEEE-sponsored CMPT 395 Software Engineering Competition (April 2026). A research paper on its RAG-grounded policy assistant has been accepted to IEEE SmartEdu 2026.

Key Features
·Role-based multi-tenant platform for students, faculty, and administrators
·JAMN Bot: RAG-grounded LLM policy assistant over MacEwan deferral policy PDFs
·Room-booking engine with conflict detection and proctor load-balancing
·Automated FCM push-notification triggers and a scheduled no-show poller
·Containerized backend deployed on Railway with environment-driven secrets
KotlinJetpack ComposeKtorJetBrains ExposedSQLiteFirebase (Auth, FCM, Firestore)Ollama (Llama 3.2 3B)DockerRailway

VocabMaxxing

Android vocabulary app combining a Kotlin/Ktor backend with a Groq-powered semantic scoring service and a custom algorithmic scoring engine.

Key Features
·Hybrid scoring: Groq Llama 3.3 70B semantic rubric + custom algorithmic engine (stemming, structural complexity, vocabulary diversity, grammar)
·Hardened system prompts against prompt-injection, language, and content-policy attacks
·Gamification mechanics: streaks, XP, and a coin shop
·Microphone capture and daily practice flow on the Android client
KotlinJetpack ComposeKtorJetBrains ExposedPostgreSQLGroq (Llama 3.3 70B)Firebase AuthenticationDockerRailway

Client Storefront Rebuild & Delivery

Rebuilt and relaunched a local retailer's storefront site overnight after a multi-day outage had severed its primary customer-facing channel, delivered at $0/month recurring cost with a full DNS, TLS, and email cutover.

Key Features
·Kept the revenue-generating online store up with zero downtime through the entire nameserver cutover: enumerated the legacy cPanel zone, verified DNSSEC state beforehand, and preserved the third-party e-commerce subdomain untouched
·Rebuilt the site from scratch after the only surviving artifact proved to be an unusable dev-mode SPA capture; delivered a dependency-free static site with no build step
·Configured TLS, Cloudflare Email Routing, and SPF/DKIM/DMARC (p=reject) so customer enquiries reach the business and its domain cannot be spoofed; added a fails-closed 18+ age gate and the privacy/terms pages the previous site never implemented
·Structured the handover around client ownership: a client-owned domain and admin access, a portable static-file deliverable, and a written runbook, so the business can change hosts or developers without losing its storefront again
Cloudflare (Workers, DNS, Email Routing)GoDaddyDNS / DNSSECTLSSPF/DKIM/DMARCStatic Site (no build step)

Calorie Tracker & Planner

Python CLI application that reverse-engineers maintenance calories from tracked intake and weight data, models metabolic adaptation over a goal window, and solves for target intake with SciPy bounded optimization.

Key Features
·Reverse-engineers maintenance calories from tracked intake and weight data
·Models metabolic adaptation over a goal window and solves for target intake with SciPy bounded optimization
·Moving-average weight-trend analysis
·Custom linked list implementation and JSON/CSV persistence, validated by a 24-test pytest suite
PythonSciPypytestCustom Data StructuresJSON/CSV

Phone Menu Transcriber

Packaged Python transcription service that pairs Whisper speech-to-text with a locally-hosted Qwen 3 8B (Ollama) extractor to turn automated phone prompts into structured, readable menu options.

Key Features
·Whisper speech-to-text feeding a locally-hosted Qwen 3 8B extractor behind a pluggable interface
·Schema-constrained JSON output via Pydantic, exposed as both a CLI and a FastAPI service
·mypy --strict typing and a 4-version CI matrix
PythonWhisper AIOllama (Qwen 3 8B)PydanticFastAPImypy