School Projects
Recipe Buddy, Spring 2023
During my CS350 class, I worked in a group of 5 to create a "Recipe Buddy" to help in the kitchen.
In my team, we used a Firebase Database and Node.JS as a backend to interact with user accounts and recipes. I worked on both the teams personal website (where all our information was stores), and on integrating the front-end and making sure it flows currectly with our backend.
Here, I gained invaluable skills in working with a team on a group project and web development. I also learned about databases, the basics of web frameworks, and the process of hosting websites on remote servers.
This project can be found here.
Chat Protocol, Fall 2022/Spring 2024
There are two parts to this project, coming from two different courses.
Firstly, I implemented "Clack" (or "Clarkson Slack") in CS242. Here, we used Java to create a fully-functional chat protocol. We utilized a client-server model where a client connects to a server and is able to communicate to other connected users. This was also a group project, and I worked with a team member to implement all the code required for the project.
Next, I implemented a "v2" of this project in CS456. In this course, I implemented a similar chat protocol using Python. The reason for this was to implement a cryptographic schema using RSA and AES to ensure the protocol is properly encrypted. The protocol was similar to a TCP/HTTPS protocol using SSL.
This project can be found here.
2048 AI, Spring 2022/Fall 2023
Beginning as a side project, I created an implementation of 2048 in Processing (a Java framework for visualization). The processing implementation can be found here, though it is rather old at this point.
For a final project in CS451, I worked in a group to create an AI that plays 2048. For this, I converted my previous implementation from Java to C++. I then worked with creating an AI to play and "win" (or achieve) 2048.
I mainly worked implementing both the game logic and the core AI function that "solves" the game. I used techniques such as heuristic functions, A* search algorithms, and min-max trees.
This project can be found here.
The Dragon, Spring 2023
The main project in CS445, a compiler! Based off of a Pascal-like language, we implemented this using Lex (Flex) and Yacc (Bison).
Many different algorithms and data structures were implemented here in C. Binary Trees, Hashtables, Linked Lists were among the objects created. Additionally, many bug checks are implemented, specifically for semantic checking in parsing.
To an extent I also implemented Code Generation, albeit for a simple calculator parser also written in C. I did learn a lot about the heap, ASM, and how data is stored during this class, however.
The full project (including both the Dragon and a simple Calculator) can be found here.
Computer Graphics, Fall 2023
In CS452, I used WebGL to create an interactive scene of a bus stop. I learned a lot about rendering, creating graphics, textures, etc. I created all of the textures found in the project, and implemented an OBJ to JS parser that allowed the objects to be read by WebGL.
This project can be found here. I plan to host this project very soon as well!
Personal Projects
Personal Website
This webpage right here! Being hosted on an Oracle Cloud Server, I am currently learning more about Nginx, HTTPS, and webpages. I am also refining my skill using HTML, CSS, and simple JS on webpages.
Recipe Buddy 2: Sydney's Stewpendous Selections
At the request of my partner, I plan to reimplement Recipe Buddy! See more under the Future tab.
Personal Blog
Under construction! Will be updated to host my progress on working on Recipe Buddy 2 and other software projects I plan to work on.
Linux Distribution
Managing my Linux distro has taught me a lot more about computers and how they work. I learned a lot of Lua, Haskell, etc. I wrote many scripts on my machine as well. For example, I wrote a script that changes the volume and send a notification via dunst to alert the user of the changed volume. Additionally, I wrote a daemon in C that alerts me whenever my battery gets below 20%.
More information can be found here.