
I was jealous of USC’s study rooms, so I built my own instead.
Published 3/28/2025
react
javascript
personal
career
nextjs
Honestly maybe I will eventually make a video out of this…. anyways
I recently have been doom scrolling on instagram reels and I ended up running into a post I genuinely was interested in about one of the colleges I have recently applied too, that being USC.
However, then something hit me: I would just want to make my own, so why not make my own right now?
I first setted out to figure out the hardware, tech stack, and way I am going to go about this. Generally, I found sticking with my MESA Connect Project would be the best, even connecting it to it would be the best so I just added some new web pages inside of it. Plus, it would mean anyone could use the kiosk mode without it requiring any installs!

Well, there would be a few things I would want to get done or setup to make it truly something people would want to use. The first use case: tracking of event attendance.
Inside of MESA, we have always had a huge issue with attendance tracking, mostly due to getting a proper and great system all setup.

Truth be told, this was my first prototype of the idea, and I managed to actually get it off the ground. The QR Code would make it easy for those already with MESA Connect to sign in, and also make it easier for everybody else using a keyboard and mouse.

to be clear, the ui exprience was far from perfect, but using this field I had built a smaller scale, easy to use prototype for the Kiosk Concept.
So, why would digitalizing it become better? Well, one simple reason. Physically, if you were to write it down, you would need to collect the paper, organize it, and retype it. This could get confusing and eat the time of the heads of MESA. Instead, typing makes it easier for the MESA Heads as well as tutors: all you need to do is press a button, and it parses it into a .csv document:
attachments: [
{
filename: "event-results.csv",
content: Buffer.from(data).toString("base64"),
contentType: "text/csv"
}]
Now, how does this reach the staff? The easiest and path of least resistance is quite simple: Resend. Resend is a tool that was created to be used alongside React Email to send emails using React. This is perfect for my use case since emails are still very popular and would be a lot easier to get across, so using this email I am able to send a properly parsed .CSV file using JavaScript objects:
export type EventResults = {
event: EventType;
attendees: EventUserRecord[];
}
export type EventUserRecord = {
event_id: string;
id: string;
data: {
student_id?: string;
name: string;
temporary?: boolean;
email?: string;
major?: string;
college?: string;
};
joined: Date;
};
^ using these types parsed up, it becomes far easier to just organize, on top of saving a ton of time.
Although it sounds small, these can add up to spending a lot of hours organizing in the long run, and optimizing is the best way to use this idea and platform, and give it the proper time of day to excel in the workplace.
Now, what is in it for everybody else to use it?
The second reason I wanted to build one is simple and clear: I am selfish and want to have a semi-gimmicky study room.

Using this interface on the software side, you could access your rooms (more on that in a second), events going on, or Zoom and possibly spotify integration.
Now, unfortunately Zoom has been tricky to get working off the ground, although it is 100% possible to get working in a web environment thanks to the Zoom API, it might take a little it more brute forcing in order to get it off the ground to work.
Now, the first screenshot I sent up above is actually the Room System.
This interface is designed to be simple and come with several tools students might want to use in the study room to just be, well, a little bit cooler.

A prime example is using this alongside a projector and allowing people to submit files online thru the MESAMobile phone app (we have some updates!!) or sending simple messages, or even a built in pomodoro timer. These small tweaks are just designed to be simple and straight forward, not just out of me being lazy, but also by design. These rooms are still to study, not to mess around with a screen. If we overcomplicate it, it might completely ruin the whole idea to begin with.


Designing it in a far simple way is key to make the study experience, well, more engaging and immersive, and continues to blend with my goal of using MESAConnect as a way to improve the studying in the school and in real life, using the digital world and technology to improve, rather then replace.
As of the hardware to power the decidated kiosk, I have landed on using a Raspberry Pi 5, since it has 2 mini-HDMI ports alongside a 15” touch screen IPS display. The prototype should be finished soon.
MESA Connect Beta Version 5
yes, believe it or not I actually have been continuing to update the application. I added a few smaller new web pages and tweaks outside of the obvious huge new kiosk system.

Decidated Class Pages with information including your grades you got connected to your grades you inputted (yes I had to take calc 2 twice shut up)
This also includes a small like area with recommended professor’s RateMyProfessor scores, and a small little summary. You can click each individual one to few their full page on ratemyprofessor.com.
Most of the other parts of Beta Version 5 were bug fixes and the kiosk system.
MESA Mobile has some updates too, actually.
I can now say MESA Mobile will be in your hands very, very soon.
Class information as well as general campus information is being worked on, allowing a simple way to see MESA anywhere. It is going to be noticably simpler then the Desktop Exprience, by intention, in order to be much more too the point and simple for mobile users.