Travel Experience Recommender is a full-stack application that provides personalized travel recommendations based on user preferences. It utilizes a Retrieval-Augmented Generation (RAG) system powered by Google's Gemini API to generate tailored travel suggestions.
- RESTful API for submitting travel preferences and receiving recommendations
- React-based frontend for easy user interaction
- Retrieval-Augmented Generation (RAG) system for context-aware recommendations
- Integration with Google's Gemini API for natural language processing
- Responsive design using Material-UI
- FastAPI
- Google Generative AI (Gemini API)
- Uvicorn
- LangChain
- React
- Axios
- Material-UI
- Python 3.8+
- Node.js 18+
-
Clone the repository:
git clone --recursive https://github.com/peter0512lee/travel-recommender.git cd travel-experience-recommender
-
Create and activate a virtual environment using conda (recommended):
conda create -n travel-recommender python=3.11 conda activate travel-recommender
-
Install the required packages:
cd travel-recommender-backend pip install -r requirements.txt
-
Create the
.env
file intravel-recommender-backend
folder and set up your environment variables in a.env
file:GOOGLE_API_KEY=your_google_api_key_here
-
Navigate to the frontend directory:
cd frontend
-
Install the required packages:
npm install --force
-
In a new terminal, navigate to the frontend directory:
cd travel-recommender-backend
-
run:
fastapi dev .\app\main.py
The server will start on
http://localhost:8000
.
-
In a new terminal, navigate to the frontend directory:
cd travel-recommender-frontend
-
Start the React development server:
npm start
The frontend will be available at
http://localhost:3000
.
-
POST /recommendations
: Submit travel preferences and receive a recommendation.Example request body:
{ "destination": "Tokyo", "budget": "medium", "duration": "5 days", "interests": ["food", "culture", "technology"] }
Contributions are welcome! Please feel free to submit a Pull Request.
This project is licensed under the MIT License.