February 2022
"Wanna play some game tonight?" my friend said. "How about Poker?" I replied, "Sounds good, let's use your poker web app!". One day, I decided to code the Poker game, and I did. Now my friends and I can play together over the network.
- Support in-game chat
- Support bots that can also chat and use "advance" Poker strategies (check-raise/bluff)
- Dark mode + 3 additional themes (Christmas, Halloween, Tet)
- Include how-to-play tutorial, UI aid for hand ranking probablity based on current cards
- Sound effects when player wins like applause, when fold, bet and check, etc
- When a player is out of cash, they need to "work" by clicking on a red button
- Support CLI for client side that don't use GUI
Effort: > 2 Months
How much I like this:(5.0)
Screenshot during the game, 1 player and 8 bots, current turn belongs to the player and player is selecting the bet size
November - December 2024
This is my personal portfolio website to show case my skills and projects that I did. Most probably, you're scrolling on it right now.
- The 1st Profile page with my skills and experience like a CV
- The 2nd Projects page with all my projects with representative pictures
- The 3rd Others page just to symmectrically complete the navigation bar
Effort: ~1 Month
How much I like this:(4.0)
The Portfolio Website on home page showing my skills and experience
November 2024
This is a chat bot that knows about you, the links, commands, file paths you use, just like a developer's assistant. I made it using OpenAI API, it takes notes as you chat and later you can ask it back.
- Multiple users with shared database
- It writes notes about links, commands, tickets, knowledge, things that humans don't have to remember
- It can create, delete, rename notes, etc, as you chat in real time
- It can do whatever ChatGPT can do plus the note taking feature
Effort: ~1 Month
How much I like this:(4.0)
Questions about retrospective link, internal command posed to the AI Note Taker and its response
January 2019
Have you ever played a computer maze game where you can't see the whole map? This is it, you can only see the paths from where you're standing. Get the key and escape the maze, but be careful, there will be ghosts.
- Random maze generation that is different everytime
- Players can only see part of the maze from where they are standing
- Two types of ghosts, normal and crazy-fast ghost
- Sound effects when players die (screaming, crying) and others
- Players can trap ghosts, revive other dead players
- Support map viewer standing place to x-ray the entire map walls
- Support object viewer standing place to x-ray ghosts and exit key
- Support portals that players and ghosts can teleport to different location
Effort: ~2 weeks
How much I like this:(4.0)
Screenshot of 4 players, after killing all ghosts, trying to escape the maze
Uni Course Arrangement App
April - July 2021
Back when I study in university, it was a real challenge to find a way to fit all the courses I need for the coming semester. So I made this, Scheduler, a Java GUI application that helps students find a good combination of classes to register.
- Classes can be created with day and time, categorized by subjects
- A list of possible timetables is shown after clicking "Arrange" and any of them can be saved
- A "Required" check box will force/unforce a subject to be included when arranging
- An SQL tab to perform SQL queries from SQLite database for debug/troubleshoot purpose
Effort: ~ 1 Month
How much I like this:(4.0)
Screenshot of the Scheduler, above shows the main GUI for managing subjects, classes, time tables, and below shows the generated timetables
January - July 2022
This is my university thesis, it is an event-driven architecture applying the "Mediator" design pattern aims to manage student learning progress (in stages) in universities, including multiple microservices and website for management
- User interface for managing student progresses
- User interface for managing microservices
- A design for error handling mechanism
Effort: > 2 months
How much I like this:(3.5)
A diagram that shows how all the Student System microservices working together with Kafka queues
April - July 2021
This is a Python program to compile and execute a raw JavaScript file, using Abstract Syntax Tree (ATS)
- Extracts tokens or "keywords" from the provided JavaScript file
- Builds an abstract syntax tree from the list of tokens
- Keeps a symbol table in memory to store the variables
- Provides a detail log of tokens, AST, symbol table and step-by-step code execution process
Effort: > 2 Months
How much I like this:(3.5)
Demo example of a JavaScript factorial function being parsed, with detail log of tokens, syntax tree, and execution
Railway Management System
October - December 2021
This is the project from my university, I collaborated with my 2 other friends, it is used to manage the railway system, including the schedule and ticket booking. I did the front-end, map, trains, stations, schedules generation, implement route finding algorithm. My friends did the back-end, database, music, and admin page.
- A page for users to search for the trains’ schedules, stations with a live map
- A page for users to find train routes between two stations, and book them
- A database to store the train schedule and passenger information
- An admin page for passenger management or related database management
Effort: ~3 Months
How much I like this:(3.5)
Screenshot of Railway Management System GUI where user are searching for the train schedule with the live map on the right
November 2024
This is the command runner, I call it "Slave" as it will generate and run the commands to do the task that I request it to do. This is my first project that uses generative AI.
- Generate and run commands on Linux machine
- Ask users for clarification before generating and executing command
- Can read command output and suggest alternative solution if the command failed
Effort: < 1 day
How much I like this:(3.0)
Screenshot of "Slave", generating and executing command to clean docker volume on multiple remote hosts
Rubik's Cube OLL Probability
July 2022
I can solve a Rubiks cube less than 20 seconds, but one thing I still wonder is that, "How often will the case with checker board pattern appear?". So I made this program to calculate how likely we see OLL cases when solving a Rubik's cube using the CFOP method.
- Simulate all 57 OLL cases by random turnings
- Output image and probability of each case, group by orientations
Effort: < 1 day
How much I like this:(2.5)
The collection of OLL cases with their corresponding likelihood in percentage (%)
I did more than this, but haven't had time to add them all. I can tell you if you want to know more.