Tunisia Social Platform with AI place recommendations and social features
# Tunisia Place Recommender and Social Platform
An advanced recommendation system that suggests places to visit in Tunisia based on multiple factors and real-time data, combined with a comprehensive social networking platform for travelers.
## Features
### Smart Recommendations Based On:
- User preferences (alone/family/friends/date)
- Real-time weather conditions (using OpenWeatherMap API)
- Time of day and opening hours
- User's current location and maximum travel distance
- Budget preferences
- User interests and tags
- Place ratings and reviews
- Indoor/outdoor preferences
### Place Types Include:
- Museums
- Restaurants
- Cafes
- Beaches
- Historical sites
- Parks and gardens
- Shopping centers
- Entertainment venues
- Cultural centers
- Viewpoints and natural attractions
### Advanced Scoring System:
- Weather compatibility
- Budget matching
- Interest alignment
- Distance calculation
- Time availability
- Rating consideration
- Company compatibility
### Social Networking
- User profiles with customizable information
- Forum for sharing travel experiences and tips
- Real-time messaging system
- Friend connections and interactions
- Post creation with image support
- Like, comment, and share functionality
## Installation
1. Clone the repository
2. Install required packages:
```bash
pip install -r requirements.txt
```
3. Configure environment variables:
- Copy `.env.example` to `.env`
- Add your OpenWeatherMap API key
- Adjust other settings as needed
## Usage
### As a Python Library:
```python
from tunisia_recommender import TunisiaPlaceRecommender, UserPreferences
# Create user preferences
preferences = UserPreferences(
company="family",
budget=2,
interests=["history", "culture", "food"],
current_location={"lat": 36.8065, "lon": 10.1815},
time_of_day="day",
weather_sensitive=True,
max_distance=20.0
)
# Get recommendations
recommender = TunisiaPlaceRecommender()
recommendations = recommender.recommend_places(preferences)
```
### As an API:
```bash …