FoodieFind is a React-based web application that helps users discover local restaurants. It leverages the Google Maps API and Gemini API to offer location-based restaurant search and personalized recommendations.
- 🔍 Restaurant discovery
- 🗺️ Interactive map with pins
- 💬 Food recommendation chat
- 🥗 Restaurant visit planner
Follow these steps to run the FoodieFind project on your local machine:
Make sure you have Node.js (v14 or higher) and npm installed.
To verify installation, run:
node -v
npm -vTo install Node.js:
- Visit https://nodejs.org/en
- Download and install the LTS version of Node.js (includes npm)
Use SSH to clone the GitHub repository:
git clone git@github.com:CMPT-276-SPRING-2025/final-project-12-woods.gitAlternatively, you can use HTTPS:
git clone https://github.com/CMPT-276-SPRING-2025/final-project-12-woods.gitcd final-project-12-woods/foodiefindInstall all required packages:
npm installCreate a file named .env in the root of the foodiefind directory and add the following lines:
VITE_GOOGLE_MAPS_API_KEY=YOUR_GOOGLE_MAPS_API_KEY
VITE_GEMINI_API_KEY=YOUR_GEMINI_API_KEYGoogle Maps API Key:
- Go to Google Cloud Console
- Create a new project (or select an existing one)
- Enable the following APIs:
- Maps JavaScript API
- Places API
- Go to APIs & Services > Credentials
- Click Create API key
- Copy the key and paste it in your
.envfile asVITE_GOOGLE_MAPS_API_KEY
Gemini API Key:
- Visit https://aistudio.google.com/app/apikey
- Sign in and generate a key
- Copy the key and paste it in your
.envfile asVITE_GEMINI_API_KEY
🔐 Never commit your
.envfile to version control (it's included in.gitignoreby default)
npm run devAfter the server starts, you should see output similar to:
VITE vX.X.X ready in XXX ms
➜ Local: http://localhost:5173/
Visit the displayed URL in your browser to access the app.
⚠️ The port number may vary if 5173 is already in use.
- Live Website: FoodieFind
- Demo Video: Demo Video
- Final Report: Report
This project is licensed under the MIT license and is intended strictly for educational and training purposes.
http://localhost:5173/