Home  / Projects

Projects
Category:

SmartGPS for the Vancouver


Use of A* greedy algorithm to find the fatest bus route(s) between 2 Vancouver Skytrain stations. The bus routes can be ordered by the shortest distance or number of connected buses, which help the users easily choose any route best suitable for them.

Swift Patients Admission


Built an admission system that registers, admits and treats patients based on the triage level from 1 to 5 by means of min heap. Each patient is treated and billed separately in a dedicated thread before exit. After all patients are treated, a list of discharged patients will be generated, along with the remaining coverage amount.

Lightning Spellchecker


A spellchecking tool that checks for grammatical and spelling errors against the dictionary as well as providing 5 suggestions closest to the input. List of suggestions is yielded by taking top 5 words with the lowest Levenshtein Distance, which is the difference in distance between 2 words. Dictionary is stored as a Hash Map, with each 26 buckets representing 26 English letters. These buckets are Linked Lists themselves that keep track of its tail, allowing for O(1) insertion and O(n) retrieval.

Autocompleter


Built based on special Trie data structure (Prefix Tree) that allows for extremely fast insertion and retrieval. This tool provides word completion given a prefix by returning a sorted list of meaningful words. If the prefix itself is a word, it will also be included in the returned list.

Socketeer


Provides text-based communication over CLI (sockets) between a server and multiple users in parallel. A thread is spawned for every connection from the client, and each conversation is treated and saved individually in a Linked List. When a client closes connection, the threaded will be 'terminated', but the server will still be up and running.

Maze Runner


Built a maze as an undirected graph, with multi checkpoints and random bonus points. Provide feature to explore paths using Breadth-First Search and Depth-First Search.

Monthly Savings Visualizer


Calculate the growth of monthly savings over a specific number of years, either zero-interest or with yearly interest rate. Data is visualized on a line chart, with encircled data points to mark the estimated amount of savings accummulated over time.

Recettes secrètes


An online store selling cooking recipes across cuisines. Users must have an active account to purchase the recipes put in their cart. The payment portal is built on top of Stripe Payment API for ease of use, and proof of purchase or reciept is sent to the user by email afterwards. Full application is dockerized and deployed on localhost exprimentally.

Docker-Hy


Set up a deployment pipeline from Github to host machine and to Jelastic Cloud platform. Configured Github workflows to automatically push new Docker Image to Docker Hub and deploy the application on Jelastic from the new Docker Image. Nginx is used as a cache mechanism to quickly respond to multiple requests at a time.

Streaming Musik Haus


Provides real-time music streaming services such as streaming, upload and deletion of songs, and voting based on number of likes and number of listeners. Users can add songs to and remove songs from their favorite playlist, upload new songs and delete unwanted songs under their account through JWT token authenication. A separate token is used for operations on songs data. A simple ML algorithm is used to provide suggestions based on user data.

Kryptonite


Provides real-time rankings of cryptocurrencies, global statistics and search capabilities. Users can view the increasing and decreasing patterns of each cryptocurrency over a course of time, including 24-hour, 7 days, 1 month and in a few years to make better trading decisions.

Decentralized Crowdfunding


A GoFundMe-like funding platform, but decentralized to maintain equality. Funding projects are hosted by creators, but donators have the right to control the distribution of funds for different phases, requiring approval from at least 50% of donators participating in the funding project. This platform is built on top of the Ethereum Blockchain.