Inspiration 💡
Think back to your first days at university. Do you remember feeling confused, even overwhelmed by the number of food options on and around campus? How many restaurants are there? Where can I find the most affordable coffee? Which restaurant is closest to my afternoon class? What are the must-try dishes from all restaurants on campus?
UniDine is the one-stop shop for all of these burning questions, allowing students to discover hidden food gems, make informed dining choices, and connect with fellow students over great food!
What it does 🧐
We wanted to provide a centralised platform where students can find out, from other students, about the best dining options on campus. UniDine collates all restaurants and cafes on and around campus, allowing students to write reviews about the quality, service, and price of the food options at a restaurant, like and comment on other reviews, and view popular meals at the restaurant as determined by fellow students. UniDine also allows students to view the average rating of a restaurant for their quality, service, and price, allowing them to make informed decisions based on their current and future dining needs while at university.
How we built it 💻
- Frontend: we used React to create and handle the UI of our web app, with CSS and Material UI being used to provide the style and components of the frontend pages.
- Backend: Express.js was used to handle the routes and endpoints for the backend server to interact with the stored data. Typescript was the primary language used to handle server-side logic
Challenges we ran into 🚧
- Full stack integration: Our team members were confident in writing logic for either the frontend or backend. Thus, we ran into problems trying to integrate the frontend and backend due to different name conventions for data and the overall lack of experience with full-stack development. However, this was a great experience for all of us, particularly in the importance of adequate planning.
- Collaborative coding: Whilst most of us had prior experience with git, the difference in the tools used to interact with git (SourceTree, terminal, etc) meant we had to ensure everyone had the latest version of the repo locally at all times and mitigate merge conflicts.
- External commitments: We all had varying levels of commitments outside of the hackathon, hence we had to ensure the workload was split effectively to ensure completion before the deadline.
Accomplishments that we're proud of 💪
Given that our team was comprised of hackathon newbies, we were proud of completing an MVP of our product and successfully integrating the frontend and backend for the first time. Taking into consideration the limited time we had, we are immensely proud of the final product and the team effort we put into this project.
What we learned 🧠
Apart from the aforementioned technical skills we were able to pick up and refine, we picked up some valuable soft skills that will be greatly beneficial for future projects. In particular, we learned the conventions and practices to code collaboratively, communicate and present our ideas in a relatable and understandable manner, and the leadership skills necessary to navigate and inspire a team to a common end goal.
What's next for UniDine 🚀
- Authentication service: The authentication service will be used to verify that the user is a university student, ensuring our product effectively serves the needs of our target audience. Due to time constraints, we were unable to develop a functional authentication service, hence this is the priority for future iterations.
- Popular meals tab: Having a tab on the homepage that shows the highest-rated meals within a time frame (week/month) would allow students to view the past and current popular meals as rated by students on campus. This would allow students to not only discover new food options but also stay up to date with limited-time promotions and offers.
- Expansion to other universities locally and globally.
Built With
- express.js
- materialui
- node.js
- react
- scss
- typescript
Log in or sign up for Devpost to join the conversation.