dld_backend/QUICK_START.md
2025-10-30 12:13:02 +05:30

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 🎯

  1. Customize Queries: Add your own query templates in sqlGenerator.js
  2. Extend NLP: Improve parsing in nlpService.js
  3. Add More Charts: Enhance chart visualization in chartFormatter.js
  4. 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! 📊