Home

Hey,
I'm Priyanshu Ghosh

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!

The Glue Gun Holder

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:


  • Use of the design process
  • Equal work distrbution
  • Construction skills
  • Use of inventor and CAD software
  • Displaying the design process

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?

  • How to use joints to allow movement in CAD
  • How to distrubute works to individual strengths
  • How to use the design process
  • Why the design process is effective
  • How to effectivly display work processes

Architecture

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:

Paper Floor Plan


CAD Floor Plan


Skills
Skills shown in the project:

  • Teamwork
  • Precision in plans and blueprints
  • Making Floor Plans
  • Using CAD software to make homes
  • Constructing and making models
  • Effective usage of time


CAD

The CAD software known as Revit was used to build, model and design our house before making the real world model



So what did I take away from the project?
  • Introduced to Revit
  • Building an accurate model
  • The in and outs of designing a house
  • The Eco Leed System
CAD Model Renders


Real World Model


The Desk Company

The objective

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).



Desk Assignment

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



Other Sites

The sites
Cheat Sheet
Calculus Study Guide


Skills

Skills both used and gained from these sites

The ESP8266 Weather Station

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.


Conclusion
Here is what I learned from this project:
  • Raspberry Pi
  • MQTT
  • ESP8266
  • ESP8266 Web Hosting
  • Distance Sensors
  • Ardunio code (C++)
  • Google Charts API
  • Web Design
  • Apache

Schematic



Pictorial



Final Model



The Match 3 Game

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.

Player 2 Script



Orbs Matcher Script





What did I learn?


Sorcery (The recreation of hearthstone)

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).



You can play the game thru text only or via the graphical interface, this recording, showcases both.





Dino Game

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