I've always had a passion for design and creativity, and apps and websites are what have allowed me to express that creativity in so many ways.
I've been making websites for long, long time now. First using drag-and-drop tools like Weebly, Wix, RapidWeaver, and WordPress, and now developing with pure HTML/CSS/JS, I know the ins and outs of website making, I'd say, pretty well. Adding rounded corners and applying equal padding are very satisfying to me, and web design incorporates just that.
Apps have become a new thing for me starting in 11th grade. I had always wanted to learn to make an app, but I just didn't know coding and didn't really know where to start. But as SwiftUI came around, I knew it would be a great time for me to learn. Spending hours following HackingWithSwift and CodeWithChris tutorials, I was able to create my first real, full-functioning SwiftUI app — Wash Your Hands Streaks. Then, onto my first cloud-based one for my school: SHS. Now, I have a number of apps published on the App Store!
As I am passionate about designing and developing apps and websites, I am looking for opportunities in these fields.
Below are many of the apps/websites that I've made:
For the final project of INFO 1300, an introductory web design and development class, we had to design and develop a static website for a client. My group and I choose the Cornell Computer Reuse Association, a club that I am a part of that repurposes and donates computers to those in need.
Over the course of a few weeks, we interviewed members of our audience to discover their goals, created sketches of the site, and coded it in HTML/CSS/JS. It was a fun group project.
During the winter break, I decided to redesign and re-code our website, this time using a CSS/JS framework called Bootstrap. This made the site look and function a little nicer.
Overall, this was a really fun project! It was the first site I fully designed with HTML/CSS/JS.
You can check out the site here: https://cornellcomputerreuse.org
As part of my project in Engineers for a Sustainable World, I am designing and developing a web dashboard to display fume hoods that are left open on campus.
First, some background - fume hoods, found in most laboratories, are one of the most energy-wasting devices on campus (not because they consume lots of energy, but rather because they continuously vent heated/air-conditioned air out of the building). While fume hoods are necessary to be opened during experiments, many people forget to close them after they are done, contributing to wasted energy.
The objective of the fume hood dashboard is to inform lab managers, lab members, and the general public of fume hoods have been left open for an extended period of time, especially in unoccupied lab spaces. To do this, I am querying the AutomatedLogic API (AutomatedLogic is Cornell's building controls system) to gather fume hood sash position, airflow, and room occupancy data from 1,600+ fume hoods across campus.
By querying trend history of these data, we have done some calculations into how much energy was wasted from fume hoods over the past year, and how much could have been saved had the sash been closed during unoccupied periods, and the results are significant.
I am beginning to develop the dynamic dashboard using Dash (essentially you write code in Python for querying/processing the data and you can display it in nice Plotly graphs, along with standard HTML elements). I have never developed a dashboard quite like this and it certainly is challenging!
One thing you may be thinking is, "well, Reid, you could build an amazing dashboard, but if no one will use it, then you did not solve the problem!" And you are completely correct. To supplement the dashboard, we are planning to run inter-lab competitions with a prize given to the labs which use the least energy. We are also planning to develop signage to place next to fume hoods and send automated emails to labs which are using the most energy.
Since this project is still in its early stages, I do not have many publication-ready images to place on this website yet, but I should have them by mid-2023. In the meantime, if you are interested in learning more details, please reach out to me!
As part of my project in Cornell University Sustainable Design, I designed and am currently developing an app to control and optimize Cornell's HVAC systems based on room occupancy. Essentially, the app connects to an occupant's Google or Outlook calendar and will control the room's heating or cooling system according to whether they are in their room or not. We envision this being used mainly for single-occupancy rooms, such as professors' offices.
You are probably wondering a few things, such as how the app can control the HVAC systems and what happens if the occupant does not follow their calendar.
I'll address the first point. Interestingly, much of Cornell's HVAC systems are already controlled by "smart" connected systems from AutomatedLogic. We are simply tapping into AutomatedLogic's API to control these equipment through an app. It's actually really cool if you ask me.
For the second point, the goal of this project is to eliminate as much hardware as possible, which is why we don't consider motion sensors. To account for edge cases, the app has a manual override feature in case occupants don't leave or arrive earlier than expected. However, we understand that this isn't enough, so there is a team working to develop a ML model to predict and respond to these edge cases. It will continuously learn from user behavior as well. We also designed a few questions for users to answer before use, such as whether they typically attend online meetings in or out of their office.
Overall, this has been a cool project to be a part of, and I am excited to continue work throughout the upcoming semester. For now, you can view some Figma designs I created.
This is an app I am working on with some friends at Cornell aimed at improving communications between coaches, students, and parents in tennis clubs. One of my friends in the group is passionate about that and initiated the idea. Our first iteration was a social media of sorts.
This was my first experience working on an app as part of a team, rather than individually. I could focus on the design and frontend while my teammates focused on the backend, which was nice. This was also the first time I was shipping an app to potential customers, so I ensured that my work was top-notch. I learned a lot about fetching and loading data properly and efficiently, which was very useful. We worked really well as a team, and we ended up making a very good product!
However, as entrepreneurs, we were a bit naive. We didn't do much market research or user interviews, so upon releasing the app, we didn't get much traction. So, we decided to go back to the drawing board and instead design an app specific to tennis clubs' needs rather than a catch-all social network. After showing our designs to some clubs, we received generally positive feedback, and were ready to develop!
Well…not quite. We are now, in January 2023, realizing that our product is a bit too niche and will require too much customization for each club. So now, we are thinking of other entrepreneurial ideas. I'll keep you posted!
You can check out MyAce on the App Store here.
This was a web project I made with two other students in the Trends in Web Dev class at Cornell University. CUDormReviews aims to be the central place for Cornell students to review dorms around campus and retrieve information about them as well.
This was a fun project for me, especially since this was my first real web project — real as in using React with Firebase, which enable endless customization.
You can check it out at https://cudormreviews.herokuapp.com
This was a fun app I made for Quarantine Tutors, an organization which coordinated free virtual tutoring services during the COVID-19 pandemic.
I was tasked to make an app to facilitate student-tutor communications. This was a challenging app to make, as I didn't have much experience with backend. I decided to use Firebase for a login/backend/database, and while it was initially very hard to set up, it worked well! The most challenging aspect was integrating it with SwiftUI, as at the time Firebase's docs were exclusive to UIKit.
The hardest part was actually releasing the app to the App Store. It was rejected for containing the word "Quarantine," which apparently was not allowed to be used in an app during the pandemic. So, I had to remove all traces of the word and call it QTutors.
My girlfriend at the time and I had a lot of fun adding tutor data into the app and testing it with each other. We also hid a small Easter Egg in the app. If you can find it, send me an email!
Overall, it was a successful app. While it didn't receive as much traffic as I would have liked, it was a great learning experience for me, and is still an app I revisit on my home screen time to time!
You can check out the app here.
Since entering high school, I had always wanted to re-make my school's app. It honestly wasn't very useful at all and I wanted to make it much better.
So after teaching myself how to make an app for Wash Your Hands Streaks (scroll down), I decided to bring my skills to a much more complicated app.
I wanted to make this app cloud-based, so it could provide information to students in real-time. To do that, I used Apple's CloudKit, which is very fast and easy to use.
I spent about two weeks straight, 10 hours per day making this app, and it was incredibly fun to do. Like, really, really, REALLY fun. I loved working through all of the issues I had along the way, and I had learned to make my code shorter and more re-usable (compared to Wash Streaks).
The app can provide users with the following:
1. LIVE updates to the school calendar, morning announcements, upcoming events, and important info.
2. Notifications on what type of school day it is
3. Easy way to view and contact all faculty and staff
4. Important schedules and websites
5. …and much more!
Designated users can also update information within the app, and publish it to every single student's iPad. That's pretty cool if you ask me.
Currently, I am trying very hard to actually get this published. The building principal and owner of the old app has approved my new app. I am trying to get in touch with the administrator who runs the Great Neck Public School's App Store Connect account in order to upload the app to the App Store.
In the meantime, you can see screenshots of the new app here on this webpage.
I am very proud to be part of SavetheFrontline, an organization made up of Cornell undergraduates/alumni that donates face masks to underserved residents in communities around Long Island and New York City.
I spent a week or so working to redesign the entire site from top to bottom. I taught myself WordPress and built up the site, one page at a time. It was quite fun, especially since this was my first web project for something very important. The GoFundMe campaign ended up being a success, and many people commented that the website looked nice, which made me really happy.
Since that time in May, I have been constantly updating the pages of the site and adding some other ones along the way as well. In order to speed up the process of updating the donation numbers on the front page, I created a PHP script that parsed a Google Sheets file and put that data into the site. That way, all that I needed to update was the Google Sheets file.
I look forward to updating the website for the foreseeable future, and you can check it out here: https://www.savethefrontline.org/
I had always wanted to learn how to make an app. No, not like half-make an app. Like, really make an app. And what better time would it have been for me to teach myself than when I was locked inside my house with, quite frankly, not much else to do (school had just closed down due to COVID-19).
I needed to start small. So. everyday from March 15th, 2020, I worked on Swift and SwiftUI courses from an amazing site called HackingWithSwift. If I had done the 100 days of lessons, I would have had the knowledge to build an extraordinary first app. But I wanted to do something now, I didn't want to have to wait till June.
Then It just hit me — why not, for a small app, create one to remind users to wash their hands during COVID-19? After all, at the time, people thought it only spread by not washing hands, so I thought it would be a genius app!
So I looked through the App Store for any apps like that…and nothing. Great! (While developing the app a few others came out, though).
I started conceptualizing the idea in my head and decided to make it into a streak system — the more people washed their hands, the more they were rewarded. I had known just enough SwiftUI at that point that I was confident I could make the app, and so I set to work.
I soon found that it wasn't easy. Designing the UI was pretty simple, but actually getting everything to work properly was very hard. I had to work with dates a lot, and account for every possible thing the user would do — whether it was open the app during their streak, close it while they were getting one, wait a few days after washing hands, not have internet connection to download the current total streaks, and so on. My code resulted in a ton of if statements and copied and pasted code (I was not aware of the idea of writing once and using everywhere yet!).
But in the end, after a week or so of 10-hour days working on it, it was complete. I went to submit it to the App Store, crossed my fingers, aaanndddd…rejected!
I really had no idea why it would get rejected. Was it not "unique" enough? Did it not work on their device? Did they not like the idea??? But when I opened the Resolution Center, I was really quite surprised at what the issue was. Apparently they did not allow any references to "COVID-19" in the app since they only wanted COVID-19-related apps to be published by official organizations, not some high schooler on Long Island. So all I had to do was delete any references to "COVID-19" in the app by marketing it slightly differently, and…accepted!
The app has about 120 hundred downloads as of August 20, 2020. Not very many, but enough that I am satisfied. It was a very fun app to build, and I am looking forward to building many more later in life.
It's way too hard to explain here, but basically my robotics team (and all of FRC for that matter) does something called Scouting, which is essentially keeping track of other teams at competitions so that if we had to pick them for our alliance, we would know their stats/strategies/weaknesses etc.
Most teams just use pen and paper. But we wanted to get creative and make a mobile app to do the trick.
So I set to work on a UI, and this is what I came up with. It's a much more visual version of anything that's already out there.
Currently, right now (8/20), Kevin Wang and the App Team are doing a phenomenal job actually coding the app, and we expect it to be released for this coming season.
What's more fun than an iOS Sticker Pack???
Well, probably lots of things. But at the time (and still now), I thought that creating one of those little iOS Sticker Pack things that you use every once in a while would be pretty cool.
So I set out to do it for my robotics team. It was actually super easy to do — it was literally just drag-and-drop the images to a folder and Xcode did the rest.
But with all easy things, there were sneaky things too. After importing all of the images, I soon realized that they needed to be transparent so that when a user places it on a text bubble it doesn't look ugly. So into Photoshop I went.
Then, just as I thought I was done, I realized that the larger you made the image, the smaller it appeared when dragged onto a text bubble by the user (weird, huh?). So into Preview to resize all the images I went.
Finally, it was done! I archived the file, uploaded it to App Store connect, waited a few days, aaaaanddd…rejected.
They said that the logo I used for the app was too similar to my other app I had already published, which was a scouting app for iOS. So into Photoshop again I went, this time to produce a cool sticker-like effect which ultimately allowed the app to get approved!
This wasn't too much of an exciting project, but people on the team definitely do like it and definitely do use it. I still update it time to time with new stickers as well.
After getting my Synology server (see here), I had come up with the idea of redesigning the website for my robotics team. Not necessarily redesigning it as in changing how it looked, but more changing how it functioned and moving it from Wix to a Mac exclusive called RapidWeaver.
I spent about 10 hours each day during the entire April break of my freshman year in high school doing this, building each page from scratch on RapidWeaver. The intention was to make the site more consistent and responsive, so it would look good on not just a desktop computer but also a phone.
Now that I set up my server, I figured that I would figure out how to host the site on the server — so I did just that. After another week of configuring that by playing around with DNS and SSL and a bunch of other annoying things, I finally got it working. I would say the hardest part was dealing with the DNS and the way it caches on your computer. There were many changes that I made, and I soon found myself using 5 different web browsers to make sure things with the DNS worked. The SSL was also tricky, as my Synology server did not want to use any SSL certificate I gave it at first.
Now gnsrobotics.com was hosted on my server! Not only did I find that to be super cool at the time but also realized that it saved our team about $70/mo on website costs. But self-hosting a website (properly) is much harder than you think.
To this day, I still manage the website and host it on my Synology. While it is quite time consuming at times, I really do enjoy managing the site. In the last picture here, you can see how I edit the site.
The one thing about this that is not ideal is that the website only works when my power is on — which is a huge majority of the time, but nevertheless it will go out every once in a while and make the website inaccessible. Yet, I think the virtually unlimited storage I get (and also the ability to just drag and drop a file via Finder to have it accessible with a web link) greatly outweighs that drawback.
When I first got the site up and running, it was only running on a 75mbps upload/download speed. It was fine for the site itself, but made downloading videos hosted on it quite slow. So a couple months later, we upgraded our Internet speed to Verizon's 1gbps upload/download speed (for actually $200 cheaper/mo compared to the old speed (don't even get me started about why. I may do a blog post about that in the future)) and that improved things dramatically.
Overall, the whole website redesign experience was an exhausting one but a fun one nonetheless. I've taught a couple other people how to manage the website when I'm done with high school, and I can't wait to see how they take the site to the next level.
Here is our old site: https://gnsrobotics.wixsite.com/2638
And here is the new, current site: https://www.gnsrobotics.com