202 lines
3.8 KiB
Markdown
202 lines
3.8 KiB
Markdown
# 🚀 Dubai DLD Analytics API - Setup Guide
|
|
|
|
## Database Setup Required
|
|
|
|
Your MySQL database is not currently running. Here's how to set it up:
|
|
|
|
### Option 1: Install MySQL (Recommended)
|
|
|
|
#### Ubuntu/Debian:
|
|
```bash
|
|
sudo apt update
|
|
sudo apt install mysql-server
|
|
sudo systemctl start mysql
|
|
sudo systemctl enable mysql
|
|
sudo mysql_secure_installation
|
|
```
|
|
|
|
#### CentOS/RHEL:
|
|
```bash
|
|
sudo yum install mysql-server
|
|
sudo systemctl start mysqld
|
|
sudo systemctl enable mysqld
|
|
sudo mysql_secure_installation
|
|
```
|
|
|
|
#### macOS (with Homebrew):
|
|
```bash
|
|
brew install mysql
|
|
brew services start mysql
|
|
mysql_secure_installation
|
|
```
|
|
|
|
### Option 2: Use Docker (Quick Setup)
|
|
|
|
```bash
|
|
# Start MySQL with Docker
|
|
docker run --name dubai-mysql \
|
|
-e MYSQL_ROOT_PASSWORD=Admin@123 \
|
|
-e MYSQL_DATABASE=dubai_dld \
|
|
-p 3306:3306 \
|
|
-d mysql:8.0
|
|
|
|
# Wait for MySQL to start (30 seconds)
|
|
sleep 30
|
|
|
|
# Import the schema
|
|
docker exec -i dubai-mysql mysql -uroot -pAdmin@123 dubai_dld < 2.sql
|
|
```
|
|
|
|
### Option 3: Use XAMPP/WAMP/MAMP
|
|
|
|
1. Download and install XAMPP/WAMP/MAMP
|
|
2. Start MySQL service
|
|
3. Set root password to `Admin@123`
|
|
4. Create database `dubai_dld`
|
|
5. Import `2.sql` file
|
|
|
|
## After MySQL is Running
|
|
|
|
### 1. Configure Database Connection
|
|
```bash
|
|
./configure_db.sh
|
|
```
|
|
|
|
### 2. Install Node.js Dependencies
|
|
```bash
|
|
npm install
|
|
```
|
|
|
|
### 3. Start the API Server
|
|
```bash
|
|
npm run dev
|
|
```
|
|
|
|
### 4. Test the API
|
|
```bash
|
|
./test_api.sh
|
|
```
|
|
|
|
## Database Credentials
|
|
|
|
- **Host**: localhost
|
|
- **Port**: 3306
|
|
- **Username**: root
|
|
- **Password**: Admin@123
|
|
- **Database**: dubai_dld
|
|
|
|
## Verification Steps
|
|
|
|
### 1. Test MySQL Connection
|
|
```bash
|
|
mysql -h localhost -u root -pAdmin@123 -e "SELECT 1;"
|
|
```
|
|
|
|
### 2. Check Database Exists
|
|
```bash
|
|
mysql -h localhost -u root -pAdmin@123 -e "SHOW DATABASES LIKE 'dubai_dld';"
|
|
```
|
|
|
|
### 3. Check Tables
|
|
```bash
|
|
mysql -h localhost -u root -pAdmin@123 dubai_dld -e "SHOW TABLES;"
|
|
```
|
|
|
|
## Expected Tables
|
|
|
|
The database should contain these tables:
|
|
- `transactions` (218,518 records)
|
|
- `rents` (4,041 records)
|
|
- `projects` (355 records)
|
|
- `buildings` (16,322 records)
|
|
- `lands` (186,796 records)
|
|
- `valuations` (3,560 records)
|
|
- `brokers` (37,332 records)
|
|
- `developers` (from schema)
|
|
|
|
## Troubleshooting
|
|
|
|
### MySQL Connection Issues
|
|
1. **Service not running**: Start MySQL service
|
|
2. **Wrong password**: Reset MySQL root password
|
|
3. **Port conflict**: Check if port 3306 is available
|
|
4. **Firewall**: Allow MySQL connections
|
|
|
|
### Common Commands
|
|
```bash
|
|
# Start MySQL
|
|
sudo systemctl start mysql
|
|
|
|
# Stop MySQL
|
|
sudo systemctl stop mysql
|
|
|
|
# Restart MySQL
|
|
sudo systemctl restart mysql
|
|
|
|
# Check MySQL status
|
|
sudo systemctl status mysql
|
|
|
|
# Connect to MySQL
|
|
mysql -u root -p
|
|
|
|
# Reset root password
|
|
sudo mysql -e "ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'Admin@123';"
|
|
```
|
|
|
|
## Once Database is Ready
|
|
|
|
### Quick Test
|
|
```bash
|
|
# 1. Configure database
|
|
./configure_db.sh
|
|
|
|
# 2. Install dependencies
|
|
npm install
|
|
|
|
# 3. Start server
|
|
npm run dev
|
|
|
|
# 4. Test API (in another terminal)
|
|
curl http://localhost:3000/health
|
|
```
|
|
|
|
### Full Test Suite
|
|
```bash
|
|
./test_api.sh
|
|
```
|
|
|
|
## Features Ready to Test
|
|
|
|
✅ **Context-Aware Queries**
|
|
- Q1: "Give me the last 6 months rental price trend for Business Bay"
|
|
- Q2: "Summarise by week" (refinement)
|
|
- Q3: "Apartments only" (filter)
|
|
|
|
✅ **All 10 Specific Queries**
|
|
- Project summaries
|
|
- Fast moving projects
|
|
- Off-plan uptick areas
|
|
- Commercial/Residential leasing
|
|
- BHK apartment prices
|
|
|
|
✅ **Chart.js Integration**
|
|
- Line charts for trends
|
|
- Bar charts for comparisons
|
|
- Pie charts for distributions
|
|
- Summary cards
|
|
|
|
## Next Steps
|
|
|
|
1. **Set up MySQL** using one of the options above
|
|
2. **Run the configuration script**: `./configure_db.sh`
|
|
3. **Start the API**: `npm run dev`
|
|
4. **Test everything**: `./test_api.sh`
|
|
5. **Open the dashboard**: `public/index.html`
|
|
|
|
---
|
|
|
|
**Status**: ⏳ Waiting for MySQL setup
|
|
**API**: ✅ Ready to run
|
|
**Database**: ⏳ Needs MySQL installation/startup
|
|
|