~/projects · 5 repositories

Projects

Audio-First Danish Citizenship Study App

ez-dk-citizen

An in-progress mobile learning app that helps Thai-speaking learners prepare for the Danish citizenship exam with localized, audio-first lessons.

React Native → Hono BFF → Hono Data Service → PostgreSQL + AWS S3

Tech Stack

  • React Native
  • TypeScript
  • Hono
  • Drizzle ORM
  • PostgreSQL
  • AWS S3
  • Docker Compose

Key Features

  • Thai explanations for Danish citizenship-study content
  • Audio-first lessons with direct object-storage playback
  • Localized lesson content for Danish, English, and Thai
  • Private data service boundary for relational persistence
ResPawn screenshot

Online Pawn Shop Platform

ResPawn

Production-grade online pawn shop where users submit items for sale and receive purchase offers. Evolved from a SEP3 university project into a fully containerized microservice system with enterprise-level security.

5-container microservices with gRPC + RabbitMQ inter-service communication

Tech Stack

  • React 19 + Vite
  • Blazor (.NET 10)
  • C# WebAPI (.NET 10)
  • Spring Boot 4 (Java 25)
  • gRPC + Protobuf
  • RabbitMQ + MassTransit
  • PostgreSQL
  • Docker Compose
  • GitHub Actions CI/CD
  • Kubernetes (Minikube - Development Only)
  • JWT Auth
  • TLS/SSL

Key Features

  • Polyglot microservices (C#, Java, React)
  • Event-driven email via RabbitMQ + MassTransit
  • 80% coverage gates in CI/CD
  • Hetzner VPS production deployment

Danish VAT Discrepancy Dashboard

VAT Catcher Mini

A full-stack dashboard that calculates expected 25% Danish VAT for business expenses and flags discrepancies.

Next.js → NestJS API → MongoDB, Docker Compose

Tech Stack

  • Next.js + TypeScript
  • NestJS + TypeScript
  • MongoDB + Mongoose
  • Docker Compose

Key Features

  • Business expense and invoice submission
  • Automatic 25% Danish VAT calculation
  • VAT discrepancy detection and highlighting
  • Dashboard summary statistics
Chess-Assistance screenshot

IoT + ML Chess Performance Platform

Chess-Assistance

Full-stack IoT and machine learning platform that helps chess players see how their environment and health habits affect their game. Imports games via Lichess OAuth, monitors room conditions (temperature, humidity, CO2, light) with Arduino sensors, tracks wellness (sleep, water, activity), and runs four trained ML models to predict win rate, tilt, accuracy, and which factors matter most. Built as a SEP4 IoT team project.

Microservices: Caddy → Express gateway → C# gRPC services + FastAPI ML, RabbitMQ + PostgreSQL

Tech Stack

  • React 19 + Vite
  • Bootstrap 5 + Sass
  • Express 5 (API Gateway)
  • C# .NET 10 (Lichess API, gRPC)
  • C# .NET 10 (IoT Service, gRPC)
  • FastAPI + scikit-learn (Python ML)
  • gRPC + Protobuf
  • RabbitMQ
  • PostgreSQL 17
  • Docker Compose + GitHub Actions
  • Arduino / ATmega2560 (C)
  • JWT Cookie Auth

Key Features

  • Lichess OAuth game-history import
  • Arduino IoT environmental sensing (temp, humidity, CO2, light)
  • 4 ML models: win rate, tilt, accuracy & factor impact
  • Environment recommendations for optimal play
  • Polyglot microservices (React, Node, C#, Python, C)
  • Hetzner VPS deploy via Docker Compose + Caddy; frontend on Cloudflare Pages

Self-Hosted Caddy VPS Infrastructure

CannyBoiz DevOps Hub

The infrastructure repository for hosting a Caddy container on my first VPS and providing a foundation for self-hosted services.

Internet → Caddy reverse-proxy container → hosted services

Tech Stack

  • Caddy
  • Docker
  • VPS Hosting

Key Features

  • Containerized Caddy configuration
  • Foundation for self-hosted services
  • Shared reverse-proxy infrastructure