Gunn Alumni - Progress Check Summer 2023
A quick progress check on our Gunn Alumni website, and some potential issues to look out for in the future.
Hey, I just wanted to make a quick post on my Gunn Alumni project. Our team has been working hard on it for the last couple of months in our CS Capstone class, and I wanted to write a quick update on how things are going right now. It's not going to be that in-depth, but I just want to document something before I move on to my new projects for the summer (Gunn Elimination, Zelda Guardian Sword).
The Website
I will show some pictures of the non-functioning pages first, and save the explaining part for the actual working pages.
Home Page
Actually, that's all I want to show. Let's get to the functional pages.
Classmates
The Classmates page is one of the most important pages and will be the one (we think) people will use most often. You can see the analytics here.
The page is shown below. I tried keeping the design really simple and intuitive so that there's no clutter and will scale nicely. Verified users have a checkmark and will appear higher up on the list since they have profiles attached to them that you can click.
To build this page, I made a Postgres view to select a preview of 8 students, where verified users come first. I then fetch this and pass it to getServerSideProps in Nextjs, so that we can render them on the client. Pretty simple stuff here.
Profile
A very bare-bones profile page where you can view a person's profile image and bio. If you are on your own page, you can edit it.
Verify
Entering your email on the verify page will send a unique link to your PAUSD email. I wasn't sure what the best way to verify securely was, but here is what I did:
- Search the people database for entry that matches the email given (we have a record of all seniors and their PAUSD emails)
- Note the index and encrypt it on the server with a secret token
- Generate a unique URL for the request by placing the encrypted index, the user profile ID, and IV (initialization vector) as query variables.
- Send the link via Mailjet
I'll put the code down here cuz why not.
Login and Sign Up
These are not very interesting, but it works. We are using Supabase auth, and it makes our lives a lot easier.
Summer Pilot Issues
So a couple of days ago, we sent out emails to all 2023 seniors to sign up for our website and got a decent amount of signups. The problem, however, is that the Mailjet rate limited us at only 3 emails! Only 3 people were able to get verified through our system, and we had tons of questions come to us over email. The quick solution was to manually verify students in the database, and it took me a while to do that. I was on a call with some of the other leaders and we decided to remove the need to email verification for now; simply knowing your email is probably good enough (no one is trying to hack or impersonate anyone so it's fine).
As of now, we have 33 verified users, none of which have a bio or a profile picture. Yikes! That means we successfully delivered a product no one cares about. If we followed the Lean Startup's Build-Measure-Plan feedback loop method (more on that in a later Dylan's Book Notes post), we could have pivoted our product to become more interesting for users. But for now, we will just cry ourselves to sleep as our sweet baby is left abandoned by the graduating class of 2023. Thanks for reading!