Discover the best of Uganda. Tell us what you like, and we'll plan the perfect trip for you. From gorilla trekking to relaxing by the lake, find your ideal destination.
# AI-powered Tourism Recommendation System for Uganda
## Project Overview
An intelligent web application that provides personalized Ugandan tourism destination recommendations using Google Gemini AI. Users input their travel preferences in natural language and receive up to 6 relevant destination suggestions with detailed information.
**Team:** Group Eight - Computer Science Department
**Technology:** Google Gemini API (Free Tier), React.js, Node.js/Express
---
## Features
- π€ AI-powered natural language query processing
- πΊοΈ 25 curated Uganda tourism destinations
- π― Personalized recommendations based on:
- Budget (Low/Medium/High)
- Activity preferences (Wildlife, Adventure, Cultural, etc.)
- Trip duration
- Regional preferences
- π
Modern, responsive UI with Tailwind CSS
- β‘ Fast React + Vite frontend
- π Secure API key management
---
## Tech Stack
### Frontend
- **Framework:** React 18 with Vite
- **Styling:** Tailwind CSS
- **HTTP Client:** Fetch API
### Backend
- **Runtime:** Node.js
- **Framework:** Express.js
- **AI Integration:** Google Generative AI SDK
- **Data Storage:** Static JSON file
---
## Project Structure
```
uganda-tourism-mvp/
βββ backend/
β βββ server.js # Express server & AI integration
β βββ destinations.json # Tourism destinations data
β βββ package.json # Backend dependencies
β βββ .env # Environment variables
βββ frontend/
β βββ src/
β β βββ components/
β β β βββ SearchForm.jsx
β β β βββ RecommendationCard.jsx
β β βββ App.jsx
β β βββ main.jsx
β β βββ index.css
β βββ package.json
β βββ index.html
β βββ vite.config.js
β βββ tailwind.config.js
β βββ postcss.config.js
βββ plan.txt # Detailed project specification
βββ README.md
```
---
## Setup Instructions
### Prerequisites
- Node.js (v16 or higher)
- npm or yarn
- Google Gemini API key (Get it here)
### 1. Clone/Navigate to Project Directory
```bash
cd "d:\BCS 2 SEM 2\ β¦