What's for Dinner

React
Vercel
Next.js
Prisma
RESTful
TypeScript

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.