Inspiration

We've all been there before, you're tired after class and you just want a nice bite to eat at the Student Union. Maybe some Moe's or a nice hot chocolate from Tim Horton's. It all sounds nice until you arrive and see a 40 person line, and each person is ordering what seems like a feast. You wait in line, and by the time you get your food, it's time for class again. What a waste. That's where DeliverU comes in.

What it does

DeliverU is a platform that allows you to pay someone to stand in line for you and purchase your delicious meal items on your behalf, and have it delivered straight to the room you're in! Whether you're in the zone at midnight in Lockwood or just not feeling the walk all the way to the Commons, DeliverU provides a simple, doordash-like interface to get the food you love without the wait you hate. Simply place your order and another student just like you will claim your order, purchase your meal, deliver it to you, and go on their merry way. You get food, they get paid.

How we built it

We built the frontend using Next.JS, React, and TypeScript. We used the ShadCN UI library for a seamless and responsive UI. We utilized Next.JS API routes for the backend. We also utilized Socket.IO to provide real time updates so you always have the latest and up-to-date status on your order.

Challenges we ran into

There were some Next.JS specific issues that we ran into that required a lot of thinking and rubber ducking. Despite TypeScript being a relatively type-safe language, the communication between the frontend, backend, and websocket server have no guarantee on whether the payloads are typesafe, which was a struggle for us.

Accomplishments that we're proud of

Our biggest accomplishment we're proud is managing to set up the socket.io server to divy out realtime updates. It provides a seamless constantly-updating interface that provides a great user experience.

What we learned

Frontend is hard. So is backend. Along with websockets. And databases. Everything is hard.

Built With

Share this project:

Updates