Earlier Projects
A few small-scale projects I did earlier in my programming journey.
EVE Online Hacking Game pythonpygameearly
In EVE Online, there is a hacking game, sort of like a "glorified minesweeper". I made a replicate of the game with Python (the only language I knew back then) and pygame. Due to the triangular tessellation, the game requires a lot of graph algorithms, which made it quite challenging for me. The game also involves some object-oriented design.
Bear Map javabackendDSAschool-projectearly
Project 2 of CS 61B (2018 Spring). This was an interesting and fun backend project in which we implemented some basic functionalities of a map application, including
- raster mapping (math & geometry)
- XML parsing and graph building (graph representation)
- route searching (dijkstra & A*)
- plain English navigation
- search autocomplete (trie)
I also understood how frontend and backend work together through this project.
Sticky Notes cppqtdesktop-applicationearly
I was quite interested in desktop application development before, so I spent some time learning the Qt (C++) framework. This is one of two applications I made with Qt. Both Mac and Windows 11 have a nice sticky notes application, so I made my own Linux version, which worked well on Xfce. It supports rich-text editting, color customization, and it comes with a central panel (similar to Windows 11). It also supports "stay-on-top", which is not supported on Mac and Windows 11.
LAN Messaging & File Sharing cppqtdesktop-applicationearly
This is the second application I made with Qt. It implements the client and server of a LAN IM (instant messaging) application. It also supports file sharing. The project involves some very basic network programming.
Responsive Personal Website html-css-jsearly
This was my first personal website, which I wrote completely from scratch with HTML, CSS, and JavaScript. I learnt many frontend techniques from writing this website, but I soon realized frontend isn't very interesting to me. Since its content is already outdated, I took it offline.