All Projects

A collection of everything I've built — from featured work to utilities and experiments.

Featured

RecceLabs LLM-powered Marketing Dashboard
A containerized microservices platform enabling non-technical stakeholders to perform complex marketing analytics via natural language and high-accuracy time-series forecasting.
Achieved A Grade
FullStackNext.jsTypeScriptFlaskPythonMongoDBDockerNginxLLMProphetOptunaDeepSeekTailwindCSSMicroservices

Problem

Marketing managers relied on static CSVs and aggregated monthly data that made granular ROAS calculation impossible. Traditional forecasting models like ARIMA and XGBoost yielded high error rates (MAPE > 40%), failing to provide the predictive depth needed for proactive budget allocation.

Solution

Developed a containerized architecture utilizing Meta's Prophet for time-series forecasting and a multi-LLM pipeline (Llama 3, Llama 4 Maverick, and DeepSeek-R1) to automate report generation. The system features automated hyperparameter tuning via Optuna and an Nginx-routed microservices backend to handle concurrent analytical workloads.

Achievements

  • Achieved ≤ 15% MAPE for revenue forecasting, significantly outperforming ARIMA (42.3%) and XGBoost (49.8%)
  • 91.7% success rate in query classification across description, report, and chart tasks
  • Sub-second classification latency (0.71s) for real-time user query processing
  • Optimized 25 engineered features down to 7 key predictors using VIF to eliminate multicollinearity and improve model stability
RecceLabs LLM-powered Marketing Dashboard preview
Twenify
A sophisticated, all-in-one productivity ecosystem designed to mitigate cognitive fragmentation and digital distraction through a harmonized suite of essential organizational tools.
Achieved B+ Grade
FullStackVueFirebaseTailwindCSSAuthenticationGamificationProductivityWebBlocking

Problem

Modern students navigate an environment of constant cognitive fragmentation, where the friction of switching between disparate applications for scheduling, focus, and music leads to significant digital distraction and the erosion of 'deep work' capabilities.

Solution

Engineered a centralized 'digital sanctuary' that converges high-precision focus tools—including a Pomodoro timer and robust website blocker—with a gamified reinforcement layer. The platform leverages a Tamagotchi-style virtual companion and social leaderboards to transform task management into an engaging, habit-forming ritual.

Achievements

  • Developed and harmonized 7+ integrated productivity modules into a single, cohesive Vue.js interface
  • Architected a real-time backend using Firebase Firestore and Authentication for seamless cross-device state persistence
  • Successfully implemented a gamification loop that incentivizes academic performance and sustained focus sessions
Twenify preview
Promptly
A high-performance macOS menubar utility that provides instant AI-powered text processing across the entire operating system. It eliminates the friction of traditional AI interfaces by allowing users to highlight text in any app and trigger local LLM-driven actions—such as summarizing, rewriting, or code analysis—via a customizable global shortcut.
8 Stars on GitHub
SwiftSwiftUImacOSAIOllamaProductivityLocalAINativeAppLLM

Problem

Standard system-level writing tools often feel restrictive and lack the flexibility to choose specific AI models. Previously, accessing advanced AI assistance mid-workflow required disruptive context-switching to browsers or resource-heavy applications, which broke focus and compromised data privacy through cloud-based processing.

Solution

Engineered a native SwiftUI application that serves as a seamless conduit between the macOS ecosystem and local AI intelligence. By leveraging system-wide accessibility permissions and deep integration with Ollama, the app enables a private, 'invisible' utility experience where users can query local models instantly without ever leaving their active window.

Achievements

  • Architected a lightweight Swift-based system that captures and processes text across any macOS application with sub-second latency.
  • Eliminated the need for Docker or complex terminal workflows by providing a clean, consumer-grade GUI for local LLM orchestration.
  • Developed a customizable shortcut and prompt engine that allows for personalized AI behaviors tailored to specific professional tasks.
  • Optimized the application footprint to match the performance standards of elite macOS tools like Rectangle and Alfred.
Promptly preview

Utilities

Networking Lock Screen Generator
A web application that generates custom lock screen wallpapers for networking events, featuring QR codes and contact information.
ReactTypeScriptNext.jsTailwindCSSRadix UIQR CodesResponsiveAccessibility

Problem

At networking events, sharing contact info requires juggling apps, QR scanners, and LinkedIn URLs. Professionals needed a single glanceable lock screen that others could scan instantly without either person unlocking their phone.

Solution

Built a Next.js web app that generates a custom phone lock screen with up to 2 QR codes (LinkedIn, GitHub, portfolio), a company logo, and contact details — downloadable in the exact pixel dimensions of popular phone models.

Achievements

  • Supports iPhone, Samsung, and Pixel dimensions
  • One-click download via html-to-image
  • Full WCAG accessibility compliance with ARIA labels
Networking Lock Screen Generator preview
Volunteer Clock
A blockchain-based solution for managing and rewarding participation in Community Involvement Projects (CIP).
BlockchainEthereumSolidityTruffleGanacheSmartContractsWeb3SoulboundTokens

Problem

Community volunteering organizations had no tamper-proof way to track participation, verify hours, or reward volunteers — manual spreadsheets were error-prone and easily manipulated by either party.

Solution

Designed Ethereum smart contracts in Solidity that issue non-transferable soulbound ERC-721 tokens upon verified checkout, creating an immutable on-chain record of each volunteer session without relying on a central authority.

Achievements

  • Soulbound token standard — non-transferable by design
  • Automated token issuance on volunteer checkout
  • Block timestamps for tamper-proof hour tracking
  • Trustless verification for organizations
Volunteer Clock preview
Monarch - Drone Rental Platform
A startup project submission for UEH Biztech Hackathon 2022.
3rd Place at Hackathon
FullStackAuthenticationReactNodeJSMongoDBExpress

Problem

Businesses needing aerial photography had no centralized marketplace to find, vet, and book drone operators — discovery relied on fragmented social groups, word of mouth, and zero trust signals.

Solution

Built a MERN stack platform connecting drone owners with clients, featuring listings, a booking and scheduling system, secure JWT authentication, and a rating system — delivered as a hackathon submission.

Achievements

  • Full booking & scheduling system shipped within hackathon timeframe
  • JWT auth with role-based access for owners and clients
  • MongoDB for flexible drone listings
  • Rating and review system for trust signals
Monarch - Drone Rental Platform preview
Housing Pricing Prediction
A model to predict resale prices of HDB flats in Singapore.
DataAnalysisMachineLearningSciKitLearnPyTorchTensorFlowPandasNumpyTimeSeriesXGBoostCatBoost

Problem

HDB resale flat prices in Singapore are shaped by dozens of geospatial and temporal factors. Existing valuation tools were opaque, failed to account for local amenity density, and couldn't forecast future price trends.

Solution

Built a multi-model forecasting pipeline across 16 Jupyter notebooks — engineering 20+ features from MRT proximity, school density, BTO supply, and SORA rates — then benchmarked XGBoost, CatBoost, GNNWR, and LSTM head-to-head.

Achievements

  • 5 ML models benchmarked on the same dataset
  • 20+ engineered geospatial and temporal features
  • OneMapSG API integration for coordinate resolution
  • Best model achieved <8% MAPE on 2024 held-out data
Housing Pricing Prediction preview

Artifacts

MemoriesHub
A personalized digital memory repository designed to capture and cherish moments spent with your partner.
FullStackNext.jsReactTailwindCSSMaterialUIDaisyUIPlanetScaletRPCFirebaseAuthentication

Problem

Couples and close friends lacked a dedicated, private space to preserve and revisit meaningful shared memories in an organized, beautifully curated way — social media feeds are noisy and impermanent.

Solution

Built a full-stack Next.js app with tRPC, PlanetScale, and Firebase Storage that lets couples upload photos, add captions, and browse a personal memory timeline — all behind authentication.

Achievements

  • Full CRUD memory management with image uploads
  • tRPC for end-to-end type-safe API layer
  • PlanetScale for scalable relational storage
  • Firebase Storage for optimized image delivery
MemoriesHub preview
Fraud Detection System
A sophisticated real-time transaction monitoring application using machine learning to detect fraudulent activities.
JavaJavaFXMachineLearningWekaH2DatabaseMavenDataAnalysisRealTime

Problem

Smaller financial institutions needed a fraud detection tool they could run without cloud infrastructure or specialist ML teams — existing solutions were expensive, online-only, and opaque in their decision logic.

Solution

Built a self-contained JavaFX desktop app that loads transaction datasets, trains a Weka ML classifier in-process, and surfaces real-time fraud alerts stored in an embedded H2 database — fully offline and auditable.

Achievements

  • Real-time transaction classification with Weka
  • Embedded H2 database for tamper-evident audit logs
  • Fully offline — no cloud dependencies
  • Transparent decision logic via Weka model inspection
Fraud Detection System preview
Annoying Reminders
A modern Java desktop application that helps users stay productive through playful accountability and escalating reminders.
JavaJavaFXDesktopTaskManagementProductivityUI/UXGSONMaven

Problem

Conventional to-do apps let users dismiss or silence reminders too easily, making procrastination effortless. Users needed a productivity tool with genuine escalating accountability rather than a gentle nudge.

Solution

Built a JavaFX desktop app that escalates reminder frequency and visual intensity the longer a task remains incomplete — with GSON-backed local persistence so tasks survive restarts.

Achievements

  • Escalating reminder system with configurable intervals
  • GSON for local persistent task storage across sessions
  • JavaFX animated alerts for increasing urgency
  • Maven build system for reproducible packaging
Annoying Reminders preview
AdVizor
A powerful Django-based web application that provides real-time analytics and visualization for advertising campaign performance data.
PythonDjangoDataVisualizationAnalyticsWebDevelopmentMarketingDashboardRealTime

Problem

Advertising campaign managers had no quick way to visualize performance data from uploaded CSVs, relying on manual pivot tables and static charts in Excel — too slow for fast-moving campaigns.

Solution

Built a Django web app where users upload campaign CSV data and instantly receive interactive real-time charts and KPI summaries rendered server-side, with role-based dashboard access.

Achievements

  • Dynamic chart generation from CSV uploads
  • Django ORM for flexible data querying
  • Real-time analytics refresh on data update
  • Role-based dashboard access control
AdVizor preview
StudyGPT
A custom ChatGPT assistant that helps students study by generating questions and providing feedback.
OpenAIEducationUniversityPrompt Engineering

Problem

Students studying large volumes of material had no interactive way to self-test beyond re-reading notes — existing flashcard tools required manual card creation rather than AI-generated questions from their own content.

Solution

Engineered a custom ChatGPT prompt system that accepts student-supplied notes and generates contextual quiz questions, hints, and explanations across Bloom's taxonomy levels through the OpenAI API.

Achievements

  • AI-generated questions across multiple Bloom's taxonomy levels
  • Zero student friction — paste notes and receive questions instantly
  • Prompt engineered for consistent, well-formatted output
  • Used by NUS students for exam preparation
StudyGPT preview
Overkill Golf Trip Receipt Generator
An interactive web application for creating and sharing detailed expense breakdowns for golf trips.
JavaScriptChart.jsBootstrapWebDevelopmentInteractiveVisualizationExpenseTrackingResponsiveDesign

Problem

After a group golf trip, splitting expenses fairly among multiple participants with varying activities, shared costs, and different payment arrangements was tedious and argument-prone.

Solution

Built a vanilla JS web app that tracks individual and shared expenses, runs a settlement algorithm to minimize the number of transactions, visualizes breakdowns with Chart.js pie charts, and generates a shareable link.

Achievements

  • Automated fair expense settlement algorithm
  • Chart.js visualization of expense distribution
  • Shareable URL encoding of full expense state
  • Mobile-responsive Bootstrap layout
Overkill Golf Trip Receipt Generator preview
Photography Portfolio Website
A responsive website to showcase photography work and services.
FrontendReactCSSResponsiveGalleryUI/UX

Problem

Photographers needed a clean portfolio site that prioritized image quality and gallery browsing without the overhead of CMS platforms like WordPress — something fast, custom, and easy to maintain.

Solution

Built a lightweight React frontend with a responsive masonry gallery layout, optimized image lazy-loading, and a minimal design language that keeps the focus entirely on the photography.

Achievements

  • Responsive masonry gallery across all device sizes
  • Optimized image lazy-loading for fast page render
  • Deployed on Vercel with automatic CI/CD
  • Showcases work across multiple photography categories
Photography Portfolio Website preview