Music Manager

The above project is a command-line music management application in C. It lets users organise songs into albums, create playlists and simulate playback options like play, skip, and removing songs. It also saves albums and command logs across sessions using linked lists and modular code. I built it to pratice C concepts like pointers, dynamic memory, and structuring larger programs.

If I could do it differently now, I'd improve the way I'm taking input, since I haven't done it in the most optimal way, and it also inconviences the user if they forget what songs they have in their library. For technology tradeoffs, I chose C and linked lists to learn more about data structures, but this made development more complex and time-consuming compared to using a higher-level language or built-in data structures.

C Data Structures CLI
View on GitHub →

Twixt Game

The above project is a command-line implementation of the board game Twixt in C. It allows 2 players to take turns placing pegs on the board, automatically altering between Red and Black, and checks for a winning path using custom data structures I've made and path detection logic. The game runs entirely in terminal, displaying the board with simple character symbols. I built this project to pratice implementing game logic in C.

If I re-did this project, I would probably make it colour coded and used better symbols for easier visual understanding of where links are forming on the board. For technology tradeoffs, C gave me better control over how the game works and made the path-checking logic more efficient, but it also made the code harder to write and manage since I had to create the data structures myself instead of using built-in features like in higher-level languages.

C Data Structures CLI
View on GitHub →

Google Homepage Clone

This project is basically a clone of the Google homepage that I built from scratch using HTML, CSS, and a bit of JavaScript. I tried to match the layout as closely as possible using Flexbox. The main goal was to understand how a simple looking UI is actually structured. I also added some JS for the search bar so it does not allow empty input, checks the number of characters typed, and displays that info.

While building it, I realised how much small spacing and alignment details actually matter to make things look clean. If I were to improve it, I would probably add a real working search feature and make it fully responsive. I kept it all in plain HTML, CSS, and JS to really get a solid grip on the basics, even though it made things a bit more manual.

HTML/CSS
View on GitHub →