An AI-driven platform that connects tourists with local hosts in Tunisia, enabling personalized recommendations via embeddings and vector search and real-time interaction.
# XploreTN β AI-Driven Tourism Platform
XploreTN is an AI-driven tourism platform that connects tourists with local hosts in Tunisia, enabling personalized activity recommendations and real-time interaction. The system leverages **embeddings** and **vector search** to match users with relevant activities and housing based on preferences and behavior.
---
## π Features
- **π§ AI Recommendations**: Smart matching for activities and housing using semantic vector search.
- **πΊοΈ Explore & Discover**: Interactive maps with Google Maps integration and Mapillary support.
- **π
Booking System**: Seamless reservation flow for tourist experiences and accommodations.
- **π¬ Real-time Messaging**: Instant communication platform for users and hosts.
- **π Host & Curator Dashboards**: Specialized tools for managing listings, experiences, and platform content.
- **π Notification Center**: Real-time updates on bookings, messages, and system alerts.
---
## π οΈ Tech Stack
### Frontend
- **Framework**: React.js with Vite
- **Styling**: Tailwind CSS
- **APIs**: Google Maps API, Mapillary
### Backend (Core)
- **Runtime**: Node.js
- **Framework**: Express.js
- **ORM**: Prisma
- **Database**: PostgreSQL with `pgvector`
### AI Service
- **Framework**: FastAPI (Python)
- **NLP**: Sentence-Transformers (`intfloat/e5-base-v2`)
- **Search**: Vector Similarity Search (Cosine)
---
## π Project Structure
```text
XploreTN/
βββ ai-service/ # FastAPI service for text embeddings & vector search
βββ backend/ # Node.js API server for business logic & data
βββ frontend/ # React application (Vite-based)
βββ docker-compose.yml # Container orchestration
βββ README.md # Project documentation
```
---
## π Getting Started
### 1. Prerequisites
| Tool | Min Version | Essential for |
|---|---|---|
| **Node.js** | 22+ | Backend & Frontend development |
| **Python** | 3.11+ | AI service & Model processing |
| **PostgreSQL** | 16 | Data storage (requires `pgvecto β¦