Smart Water Demand Prediction System for Ethiopia, focusing on utilizing AI to address the water crisis through innovative solutions.
# Water Demand Prediction and Management System
A comprehensive web application for predicting water demand, managing water resources, and providing intelligent recommendations for water conservation.
## 🌟 Features
### Core Features
- **Water Demand Prediction**: Predict daily water demand using machine learning
- **Real-time Monitoring**: Live sensor data integration
- **Storage Recommendations**: Personalized water storage planning
- **Data Visualization**: Interactive charts and analytics
- **User Management**: Secure authentication and authorization
- **Multi-language Support**: English and Amharic interface
- **Responsive Design**: Works on desktop and mobile devices
### Advanced Features
- Risk assessment and alerts
- Water conservation tips
- API endpoints for integration
- Admin dashboard for system management
- Data export functionality
- Automated reporting
- Historical data analysis
- Export functionality for reports
- Admin dashboard for system management
## 🚀 Quick Start
### Prerequisites
- Python 3.9+
- PostgreSQL 12+
- Redis 6+
- Node.js 16+ (for frontend assets)
### Installation
1. **Clone the repository**
```bash
git clone
github.com
cd water-demand-api
```
2. **Create and activate a virtual environment**
```bash
# On Windows
python -m venv venv
.\venv\Scripts\activate
# On macOS/Linux
python3 -m venv venv
source venv/bin/activate
```
3. **Install dependencies**
```bash
pip install -r requirements.txt
```
4. **Set up environment variables**
```bash
cp .env.example .env
# Edit .env with your configuration
```
5. **Initialize the database**
```bash
flask db upgrade
```
6. **Run the development server**
```bash
flask run
```
## 🐳 Docker Setup
1. **Build and start the containers**
```bash
docker-compose up -d --build
```
2. **Initialize the database**
```bash
docker-compose exec web flask db upgrade
```
3. **Create an admin user**
```bash
docker-compose exec web flask users create-admin
``` …