Home

Projects

Tracksy

Habit tracking, rebuilt from scratch.

A clean habit and goal tracker for iOS, Android, and web. Track streaks, cumulative values, and best-effort records with daily, weekly, and monthly views. No cloud, no accounts. Your data stays on your device.

React Native · Expo · TypeScript · AsyncStorage

I couldn't find a habit tracker that didn't feel like a to-do list dressed up. Tracksy is what I actually wanted to use.

Per-habit notification scheduling with custom times and days
Settings with general preferences and privacy controls
Home screen with streak counter, daily logs and goals
Goals view grouped by category with live progress bars
Create New Goal with category, end date and log linking

Home screen with streak counter, daily logs and goals

01 / 08

PitchPlease

A full-stack Android shop for sports kits.

An e-commerce Android app for browsing and buying sports kits across Rugby, NBA, Football, and Cricket. Features Firebase authentication, a real-time Firestore product catalogue, cart and wishlist management, a full review system with star ratings, and purchase history tracking.

Java · Android · Firebase · Firestore · Material Design 3 · Glide

A COMPSYS 302 team project that ended up being a proper full-stack build. Real auth, a live database, and enough features that it actually feels like a usable app.

Cart with quantity controls, GST breakdown and checkout
Profile with purchase history and order tracking
Home screen with category browsing, fan favourites and special offers
Product detail with image carousel, star rating and size selector
Customer reviews with star breakdown and user-submitted ratings

Home screen with category browsing, fan favourites and special offers

01 / 06

Celestial Shift

Composite image generation for photographers.

A desktop tool that automates composite image creation: night sky replacements, astrophotography blends, vortex and starburst effects. What used to take hours in Lightroom now takes minutes. Built with a Flutter frontend and a Python image processing server running locally.

Flutter · Python · Flask · OpenCV · Pillow

This came directly out of my photography practice. I was spending hours doing sky composites manually in Lightroom. So I built a tool to automate it. Then kept going.

Home screen showing four generators: Vortex, Slices, Starburst and Circles

Home screen showing four generators: Vortex, Slices, Starburst and Circles

01 / 06

SOL Trading Bot

ML-driven crypto trading, live on AWS.

An algorithmic trading bot for SOL/USDT built on an XGBoost classifier trained on live Binance data. Uses RSI, MACD, Bollinger Bands, and Z-score as features to predict short-term price movements. Deployed as a systemd service on AWS EC2 with automatic restarts and a running trade log.

Python · XGBoost · CCXT · Binance API · AWS EC2 · Pandas

Started as a curiosity about whether ML could actually predict short-term price movements. Turned into a live trading system running around the clock.

Top 15 features by XGBoost importance score

Top 15 features by XGBoost importance score

01 / 02

Guess the Thief

A timed mystery investigation game with AI characters.

A JavaFX detective game where you investigate a museum theft under a countdown timer. Navigate between rooms, interrogate AI-powered suspects via live chat, gather clues, and identify the culprit before time runs out. Built as a team project for SOFTENG 206 using university proxy APIs for Chat Completions and multi-voice TTS.

Java · JavaFX · Maven · OpenAI API · Text-to-Speech

A university team project with a real constraint: no direct API access, only a credit-limited proxy. It pushed us to be deliberate about every call we made.

Main menu

Main menu

01 / 06

Sign Language Classifier

Deep learning for sign language recognition.

A VGG-based convolutional neural network trained on the Sign MNIST dataset in PyTorch. Built for COMPSYS 302 at the University of Auckland, with optimised training pipelines, ablation studies across architecture variants, and a detailed final report covering methodology and results.

PyTorch · Python · VGG · Deep Learning · NumPy

A COMPSYS 302 assignment that turned into a proper deep dive on CNN architecture decisions: how depth, kernel size, and batch normalisation interact in practice.

Dataset loading screen with 36-class breakdown and progress tracking

Dataset loading screen with 36-class breakdown and progress tracking

01 / 04