I am a computer science student at UWaterloo
If you're seeing this you have my resume
This portfolio expands on my projects
(This entire site is hand coded!)
If you don't have my resume
I never liked picking colours, change them if you wish
Background
Text
Move Me!
What was the project?
The project was to make a glue gun holder for the loose glue guns in class, we would partner up and contrusct a
glue gun.
The most important part of the project was using the design process.
My design
On the left is the projects poster, it includes pictures of the final product and the process to get
there
Skills
This project was to learn and practice the design process. These are some of the skills shown within the
project:
CAD
This project was first designed and built on a CAD software known as inventor (2019).
Heres some pictures of the design in the software it self:
So what did I take away from the project?
What was the project?
The project was to partner up, pick a target audience, find a location and design a house. Includes making floor
plans, CAD models and a real world (scaled) model.
Here are some pictures of the floor plans, CAD models and the real world model:
Skills
Skills shown in the project:
The CAD software known as Revit was used to build, model and design our house before making the real world model
I wanted to create a E-Commerce webpage for a fake company that makes desks. The goal was to store orders, pricing, and employee credentials in a SQL database. Users (Including you) can access and make order on the home page.
Then, using numbers stored in the database, employees can access their respective UI. 3 access levels are present, employee, supervisor, and manager. When people make orders using the home page, they use fixed pricing, pricing in the database, which can be changed by only the manager.
Employees can make sales calls and offer discounts, this they have a different order submission form, in which they can adjust the pricing. Employees can also view but not edit all orders. Superviors have everything the Employees have but also have the ability to edit and delete orders.
Managers once again have everything Superviors have but also can adjust fixed pricing (as mentioned above) and change the login keys for different access levels.
Here is the link to take a look at the site yourself, but you can only make more orders. Below is a video of all the other access levels, currently the employees password is available to you. Contact Me if you would like a live demo of the other sections.
(I have not yet taken a security course and so the passowrd system is very simple).
This is what the Employees View is (The current password is 8)
This is what the Superviors View is
This is what the Managers View is
Skills both used and gained from these sites
What was this project?
This project was an independent study unit for computer engineering. Try to build anything with anything in your
budget. I chose to make a weather station with an ESP8266. The ESP8266 is a wifi module that works with
Arduinos.
The Story
The story of the ESP8266 Weather Station begins with a distance sensor. Initially, the distance sensor was to
detect the height of the water and keep track of the water level in an area over some time. Although this seemed
doable when the sensor was taken home, sound travelling through water at a different speed wasn't realized until
it was too late, and due to covid, the sensor couldn't be swapped out. Resulting in the first project change, to
make a temperature sensor that you can place outside and check the weather outdoors from a device indoors.
Time Log
Date | Activity | Time Spent |
---|---|---|
Nov, 20th | Research | 2 Hour(s) |
Nov 25th | Creating Proposal | 3 Hour(s) |
Dec, 10th | Opening and install raspberry pi | 3 Hour(s) |
Dec, 12th | Still troubleshooting raspberry pi | 4 Hour(s) |
Dec, 14th | Attempting to get information from distance sensor on raspberry pi | 3 Hour(s) |
Dec, 15th | Looking into methods of displaying the sensor data on a separate device | 5 Hour(s) |
Dec, 16th | Using Apache to create web server and display data | 1 Hour |
Dec, 17th | Opening and flashing ESP8266 with code to read sensor data | 5 Hour(s) |
Dec, 18th | Attempting to use MQTT to connect esp8266 to Raspberry pi | 3 Hour(s) |
Dec, 19th | Attempting to use MQTT to connect esp8266 to Raspberry pi | 3 Hour(s) |
Dec, 20th | Attempting to use MQTT to connect esp8266 to Raspberry pi | 3 Hour(s) |
Jan, 5th | Trying to display both raspberry pi data and esp8266 data on the same web server | 4 Hour(s) |
Jan, 6th | Trying to display both raspberry pi data and esp8266 data on the same web server | 4 Hour(s) |
Jan, 7th | Trying to display both raspberry pi data and esp8266 data on the same web server | 4 Hour(s) |
Jan, 9th | Attempting to establish web server on esp8266 as an alternative | 3 Hour(s) |
Jan, 11th | Creating code to display and store a week's worth of sensor data on esp | 3 Hour(s) |
Jan, 12th | Creating code to display and store a week's worth of sensor data on esp | 3 Hour(s) |
Jan, 18th | Serving up the entire week's data on web server | 4 Hour(s) |
Jan, 19th | Serving up the entire week's data on web server | 4 Hour(s) |
Jan, 20th | Using Google charts api to display the sensor data in a chart | 2 Hour(s) |
Jan, 21th | Using Google charts api to display the sensor data in a chart | 3 Hour(s) |
Jan, 22th | Using Google charts api to display the sensor data in a chart | 3 Hour(s) |
Jan, 23th | Clean up and site design | 5 Hour(s) |
Jan, 25th | Clean up and site design | 4 Hour(s) |
Jan, 26th | Clean up and site design | 1 Hour(s) |
Jan, 27th | Clean up and site design | 2 Hour(s) |
Jan, 28th | Clean up and site design | 3 Hour(s) |
Jan, 30th | Clean up and site design | 2 Hour(s) |
Feb, 1st | Final Testing!! | 5 Hour(s) |
Feb, 2nd | Final repairs and fixes | 3 Hour(s) |
Feb, 3rd | Report | 5 Hour(s) |
After the project change there was a lot of issue yet to come. (skip to Dec
15th)
The first was hosting the website that should be reachable by all devices in the same network. This went
on for a really long time (skip to Jan
9th)
The solution was simple. Rather then having the raspberry pi collect the data, transfer is to the esp, and
then finally show the data off the esp site, I could just connet the esp to the sensor, collect the data
from there and host the data immediatly, skipping need for any raspberry pi! The next and final major
issue was using google charts to display the stored data well (skip to Jan,
20th)
This problem was not too big. It only gave me an issue and took so long because I was new to it. Learning
new things is always fun, so I was at least motivated to go through with it.
What was this project?
This project was a personal project that I started on my own. A long time hobby of mine is playing games so I
thought it was about time I make one of my own. Since this is a personal project I did not document the making
of the game. However, after finishing the first version of the game and loving the product I decided to add it
to this portfolio.
So whats happening?
The video above shows the combat section of the game. It starts on the players turn. The player selected two
orbs to swap. Any connection of 3 or more is broken and 2 points are added to the respective element per orb
broken. After the points are added the orbs attacks, if they hit shields then the shields take damage, else the
enemy player will take damage.
After the player turn the computer gets a turn. This is an algorithm that looks at the board and finds possible
swaps that allow for good attacks. The computer does the same action as the player and the game proceeds.
What did I learn?
Quick Summary
(C++)(XWindow)
This project is a monolithic C++ game. Based entirely on object oriented programming. The game involves two players, who own decks. They draw from decks into their hands, then play cards to the board. Cards can do a
variety of things, primarily, Minions attack and can kill the other player. The basis of the code structure is to ensure a robust and future proof structre, such that adding new features and cards are easy. This project was done is a group of three, where I spearheaded the
entire Card system (respectively, my teammates did UI and GUI). Below is the UML and a video showcasing the game (including start up).
Quick Summary
As you can guess, this game is a recreation of google's dino game. Although this is a lot simpler, the goal was the get the same feel during times where the wifi still works. One of the cool things I learned in this project is the idea of
deleting objects or resuing them. Instacnes of scenes, backgrounds, enemies, and obstacles were all moved rather than destroyed and made again when needed. This created a cool effect for the scene view and offered performance boosts in the game.
I also
used animations in Unity for the first time which showed me the werid mechanics of animation.
(Also the dino get faster the higher your score)
This is a Game example
This is the Scene View, collisions were turned off for this