house rent prediction app
# RentIQ Rwanda 🇷🇼
AI-Powered House Rent Price Prediction for Rwanda with focus on Nyamasheke District.
## 🌟 Features
- **Accurate Predictions**: XGBoost model trained on Rwanda housing data
- **Explainable AI**: SHAP values show what influences each prediction
- **Rwanda-Specific**: Districts, sectors, materials calibrated for Rwanda
- **Dual Currency**: Results in both RWF and USD
- **Prediction History**: Track all predictions with export capability
- **Beautiful UI**: Brutalist design with Rwanda flag colors
## 🏗️ Tech Stack
### Backend
- Python 3.11
- FastAPI (REST API)
- XGBoost (ML Model)
- SHAP (Explainability)
- SQLAlchemy (Database)
- Scikit-learn (Preprocessing)
### Frontend
- React 18
- Vite (Build Tool)
- TailwindCSS (Styling)
- React Router (Navigation)
- Axios (HTTP Client)
## đź“‹ Prerequisites
- Python 3.11+
- Node.js 18+ and npm
- Git
## 🚀 Quick Start
### 1. Clone the Repository
```bash
git clone
cd rentiq-rwanda
```
### 2. Backend Setup
```bash
cd backend
# Create virtual environment
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
# Install dependencies
pip install -r requirements.txt
# Train the ML model
python -m app.ml.train
# Start the API server
uvicorn app.main:app --reload --host 0.0.0.0 --port 8000
```
The API will be available at `
localhost`
API Documentation: `
localhost`
### 3. Frontend Setup
```bash
cd frontend
# Install dependencies
npm install
# Start development server
npm run dev
```
The app will be available at `
localhost`
## 📊 Model Training
The model training pipeline:
1. **Generates synthetic Rwanda housing data** (or uses existing data)
2. **Trains 3 models**: Linear Regression, Random Forest, XGBoost
3. **Compares performance** using cross-validation
4. **Saves the best model** with metadata
To retrain the model:
```bash
cd backend
python -m app.ml.train
```
To evaluate the model:
```bash
python -m app.ml.evaluate
```
## …