Projects.


Web App Hosted on a Raspberry Pi

Well, if you are seeing this, then you are looking at the project itself! This project idea came about to me as I wanted to create a portfolio website, but I thought that rather than using an online website designer, I create one myself and secure it.

The primary purpose of the project was to learn more about web server vulnerabilities as well as preventative measures against it.

When first deciding to create a web application, you must decide what web application stack to use which I chose the LAMP stack. It is one of the most generic stacks, but also one of the most reliable, with great versatility, with many of its interchangeable components.

Setting up a web sever was as simple as downloading LAMP and turning on Apache. However, one of the first hiccups I came across was through a situation called double natting when trying to port forward my web server. It was rather an uncommon issue to occur, but also a welcomed one as it taught me much more about networking than I had anticipated.

A funny situation that I encountered was through attempting to obtain a SSL certificate for my website. I had bought the domain name for andrewzhang.me as it was available, but what I had not realized was that the domain name was taken before (funny enough also being one for a portfolio website). This previous owner had not renewed the domain name, but the SSL certificate was still tied to this domain name causing an issue with acquiring one for myself. Not only had I spent hours trying to figure how why I couldn’t obtain a SSL certificate, I also realized how truly basic my name was.

This project provided valuable hands-on experience such as through vulnerability testing using ZAP and resolving security issues. I also learned how to set up SSL/TLS certificates for web servers and implement firewalls to enhance system protection. It was through this project that I gained a deep understanding of networking and web security.

Top Down Shooter on Mbed Game
ECE2035 Final Project

As apart of the Programming for Hardware/Software System course, this was a project that I had to program a top down shooter game on a Mbed micro-controller (LPC1768). This entire game was programming in C++ with a personal doubly-linked list implementation.

Demonstration of the features in the Mbed game.