← Back to Home

Projects

A selection of work from my BSc, my ongoing OOSD certificate, and personal projects.

Pet Shop: Multi-Platform Pet Store

OOSD term project · 4-person Agile team · 2025

A single Spring Boot 4 / Java 25 backend serves three independent clients (a Next.js 16 web app, a JavaFX desktop app, and a Kotlin Android app) from one well-typed REST API. The system handles real Stripe checkout and refunds, an AI assistant via OpenRouter, real-time chat over WebSocket/STOMP, transactional email through Resend, and Azure Blob file storage. Authentication is JWT via Spring Security; persistence is MySQL with Flyway-managed migrations. The whole system is containerized with Docker and deployed to Azure Container Apps.

Java 25Spring Boot 4Spring SecurityHibernateMySQLNext.js 16KotlinJavaFXStripeAzureDocker

CollectorMono: Infinite 2D Sandbox

Solo · C# / MonoGame · 2020–2022

A top-down sandbox in C# / MonoGame with chunk-based infinite-world generation using OpenSimplex noise. Around 1,400 lines of C# with clean separation across world, character, rendering, and UI subsystems. Uses MonoGame.Extended for collisions and Myra for in-game UI.

C#.NETMonoGameMonoGame.ExtendedMyraOpenSimplex Noise

Keyboard Remapping Plugin (Wayland)

Solo · C++ / libevdev / Nix · 2025

A fork of an Interception Tools plugin extended in C++/libevdev to add dual-function keys (space as a layer key, caps as esc/ctrl) with consistent behaviour under Wayland. Packaged the fork as a Nix flake for reproducible builds and installs.

C++libevdevNix FlakesWaylandLinux

Randhawa.dev: This Portfolio

Self-hosted on a Raspberry Pi · 2025

The site you are on right now. A Next.js 16 / React 19 / Tailwind CSS 4 portfolio running in Docker on a Raspberry Pi 4B (Debian) at home. I own the full pipeline end to end, from container build through reverse proxy and TLS to the public domain.

Next.js 16React 19TypeScriptTailwind CSS 4DockerRaspberry PiDebian

Travel Experts: OOSD Threaded Project

OOSD course · 4-person team · 2025

A group HTML/Bootstrap travel-agency site built with a 4-person team for an OOSD course. Includes responsive navigation, a vacation-package catalog, customer registration, and contact forms.

HTML5CSS3Bootstrap 5JavaScript

Taipan Remake

5-person team · 2019

A recreation of the 1982 Apple II strategy game built with a 5-person team during my BSc. Around 6,000 lines of Java with both a JavaFX GUI and a text-mode interface sharing a single logic layer. MVC across nine subsystems (banking, loan shark, ship warfare, travel, warehouse, etc.) with JUnit test coverage.

JavaJavaFXMVCJUnit