Projects

Check out more on GitHub!

Roolet #

reactJs discrete event visualiser (Demo|Blog Post|Repository)

roolet

Full-stack ReactJs site that visualises betting outcomes (pmf, cmf) in xkcd-like graphics. Inspired by Roulette.

Synacore #

Virtual machine for assembly code (Repository)

synacore

Implemented an object-oriented VM that can read assembly code. Includes memory, registers, stack, function calls, jumps and an ALU. This project is for the Synacor Challenge

Pomenohenn #

Retro word game in Python, Pyxel (Repository)

pomenohenn
Created a retro word game (limited to 256x256 pixels!) in Python, Pyxel. The inspiration was from a Cambridge article on how we are able contextually understand mispelled words, as long as the first and last letters remained in place.

FlaskShort #

Full-stack URL Shortener in Python (Repository)

flask short demo
A URL shortener with a complete backend system, using Flask, FlaskBootstrap, PostgreSQL.

Ghost #

Python package for a word game (PyPi Package|Repository)

Created a Finite State Machine Game Engine that can be used by various applications (web, mobile).

Dynalite #

Internet-of-Things using RaspberryPi and CoAP (Demo|Repository|Presentation)

dynalite
Created a light-detection system to retrieve data on room occupancy rates. Finds available study spaces in school. I worked on the RaspberryPi module, using CoAP (Constrained Application Protocol). CoAP is a lightweight http-like protocol for use in IoT devices with limited bandwidth (this will soon be resovled with 5G).

tcptrace #

Traceroute in TCP using C (Blog Post|Repository)

tcp traceroute
Created a primitive traceroute in TCP. It can tell you which routers your data goes through before reaching your destination.

Intellex Search Engine #

A weighted tf-idf information retrieval system (Repository)

diagram
Created a search system for legal documents (data by Intellex). I worked on the indexing portion, as well as creating APIs to access the indexed data. Having worked with the legal data let me understand the sheer complexity of legal information retrieval. Different court systems, different document formats and different terminology used are just some problems plaguing the legal industry.

semacrawl #

Multi-threaded web crawler using semaphores (Repository)

A simple database-free web crawler using semaphores.

Pose Estimator #

DSTA TIL Artificial Intelligence Hack 2019 (Blog Post|Repository|Slides)

Trained a pose estimator in Tensorflow/ Keras using Transfer Learning and the ensemble method. Won the 6th place in the competition (Merit Award), out of 50+ teams

Poker Agent #

Artificial Intelligence (Blog Post|Report)

poker
Combined the concepts of CounterFactual Regret (CFR) Minimisation and Deep-Q Networks (DQN) in a poker agent.

Concierge #

Command-Line Hotel Management Application (Repository|Project Portfolio)

concierge
This project was morphed from a 10kLoC address book application in Java. The system has an MVC architecture. I created a login system using SHA256 hash to protect the password. This feature involve creating a new command, a login manager, and password storage.

Healthcare Queuing Application #

Android App to manage queues at NUS UHC (Repository)

halp
Created an android prototype that allows NUS students to take a queue number without being physically present at the clinic. The project is now outdated as we integrated to the NUS system using the old IVLE LAPI. NUS has since migrated to LumiNUS.