4.0 KiB
4.0 KiB
Quick Start Guide - Dubai DLD Analytics API
Prerequisites ✅
- Node.js 16+ installed
- MySQL 8.0+ installed and running
- Dubai DLD database with provided schema
Installation (3 Steps) 🚀
Step 1: Install Dependencies
npm install
Step 2: Configure Database
Create a .env file in the project root:
DB_HOST=localhost
DB_PORT=3306
DB_NAME=dubai_dld
DB_USER=root
DB_PASSWORD=your_password
Import the database schema:
mysql -u root -p < 2.sql
Step 3: Start the Server
npm run dev
The server will start on http://localhost:3000
Testing the API 🧪
Health Check
curl http://localhost:3000/health
Sample Query - Rental Trend
curl -X POST http://localhost:3000/api/query \
-H "Content-Type: application/json" \
-d '{"query": "Give me the last 6 months rental price trend for Business Bay"}'
Predefined Queries
# Top areas
curl http://localhost:3000/api/queries/top-areas
# Project summary
curl http://localhost:3000/api/queries/project-summary
# Commercial leasing
curl http://localhost:3000/api/queries/commercial-leasing
Frontend Demo 🎨
Open public/index.html in your browser to see the interactive dashboard with Chart.js visualizations.
Available Endpoints 📡
| Endpoint | Method | Description |
|---|---|---|
/api/query |
POST | Custom natural language queries |
/api/queries/rental-trend/:area |
GET | Rental trends for area |
/api/queries/top-areas |
GET | Top areas by transactions |
/api/queries/project-summary |
GET | Project summaries |
/api/queries/commercial-leasing |
GET | Commercial leasing analysis |
/api/queries/residential-leasing |
GET | Residential leasing analysis |
/health |
GET | Health check |
/api/database/info |
GET | Database statistics |
Common Queries 💡
Rental Analysis
- "Give me the last 6 months rental price trend for Business Bay"
- "Show me rental prices for apartments in Downtown"
- "What's the average rental price in Dubai Marina?"
Project Analysis
- "Brief about the Project"
- "List of fast moving projects in last 6 months"
- "Which areas have off-plan projects?"
Area Performance
- "Which area is having more rental transactions?"
- "Top 5 areas for Commercial leasing and why?"
- "Avg price of 3BHK apartment by area in last 6 months"
Troubleshooting 🔧
Database Connection Error
# Check if MySQL is running
mysql -u root -p -e "SELECT 1"
# Verify database exists
mysql -u root -p -e "SHOW DATABASES LIKE 'dubai_dld'"
Port Already in Use
# Change PORT in .env file
PORT=3001
Module Not Found
# Reinstall dependencies
rm -rf node_modules package-lock.json
npm install
Project Structure 📁
dubai-dld-analytics/
├── src/
│ ├── app.js # Main application
│ ├── models/
│ │ └── database.js # MySQL connection
│ ├── services/
│ │ ├── nlpService.js # NLP parsing
│ │ ├── sqlGenerator.js # SQL generation
│ │ └── chartFormatter.js # Chart.js formatting
│ ├── routes/
│ │ └── api.js # API routes
│ └── middleware/
│ └── validation.js # Request validation
├── public/
│ └── index.html # Demo dashboard
├── tests/
│ └── api.test.js # API tests
├── package.json
├── 2.sql # Database schema
└── README.md
Next Steps 🎯
- Customize Queries: Add your own query templates in
sqlGenerator.js - Extend NLP: Improve parsing in
nlpService.js - Add More Charts: Enhance chart visualization in
chartFormatter.js - Deploy: Deploy to production (Vercel, Heroku, AWS, etc.)
Need Help? 💬
Check the full documentation in README.md or review the code examples in the services directory.
Happy analyzing! 📊