What's for Dinner
What's for Dinner was designed to help me develop my familiarity with working with REST APIs, especially Google Maps' Nearby Search and Place Search APIs. The project allows users to search for nearby places by Zip code, view detailed place information, and invite collaborators to join a session. PostgreSQL was used as the database, with Prisma serving as the ORM to simplify database interactions and ensure type safety.
Source Code & Demo
Key Features
- Nearby place searching via Zip code
- Session management to invite collaborators
- Place details supported by Google Maps API
Code Highlights & Design Choices
Since I am now working with an API that has costs/call, I made sure to cache the results and limit the searches to Zip Code rather than allowing users to search by their home address. This allows for more overlap, and fewer calls overall.
Screenshots & Demos
Showcasing search by Geocoding API & Place Details API
Showcasing solo use-case: selecting items and randomly choosing
Showcasing multi-user use-case: AND-ing together choices
Outcomes & Impact
I started the project as both a personal tool to help my partner and I decide what to have for dinner, and as a learning experience. I was able to practice deploying and structuring a Next.js project, and learned how to manage a RESTful API with caching and setting quotas on Google's Cloud Console. Overall, a resounding success.
What I Learned
I learned how to manage an app that utilizes Google's Places and Geocoding APIs with caching, structured calls. Gained experience with Vercel's deployment system with CI built-in, and working within their app router framework in Next.js. Also, gained more experience planning out PostgreSQL table schema with Prisma.