Skip to content

SoliyevNurbek/SmartPlanAI

Repository files navigation

SmartPlan AI — Parametrik Uy Rejasi Generatori

Xosh kelibsiz SmartPlan AI loyihasiga! Bu Flask asosida yozilgan veb-aplikatsiya bo'lib, u parametrik uy rejalarini 2D va 3D formatda avtomatik tartibda generatsiya qiladi.

🏠 Loyihaning Xususiyatlari

  • 2D va 3D rejalar: Uy rejasini sakkizta va o'jda ko'rinishda ko'rish
  • Parametrik generatsiya: Xona soni, umumiy maydon va qavatlar soni bo'yicha avtomatik rejani yaratish
  • Veb-interfeys: Foydalanuvchi-do'st interfeys Bootstrap va modernli HTML/CSS/JS asosida
  • REST API: application/json asosida API endpoints
  • Validation: Kiritilgan parametrlarning to'g'rililigini tekshirish
  • Tayyorlash: PNG formatda rejalarni saqlash va yuklab olish imkoniyati

📁 Loyija Strukturi

SmartPlanAI/
├── app.py                    # Flask aplikatsiyasi yaratish
├── config.py                 # Konfiguratsiya fayllari
├── run.py                    # Asosiy ishga tushirish fayli
├── requirements.txt          # Python kutubxonalari ro'yxati
│
├── core/                      # Yadro modulesi
│   ├── __init__.py
│   ├── house_plan.py         # HousePlan klasi (Uy rejasini o'z ichiga oladi)
│   └── utils.py              # Vositalar va yordamchi funksiyalar
│
├── routes/                    # Flask routelari
│   ├── __init__.py
│   └── main.py              # Asosiy API routes
│
├── templates/                # HTML shablon fayllari
│   ├── base.html            # Asosiy sahifasi
│   └── index.html           # Asosiy veb-interfeys
│
├── static/                   # Statik fayllar
│   ├── css/
│   │   └── style.css        # Stillar va tasavvur
│   ├── js/
│   │   └── script.js        # JavaScript funksiyalar
│   └── uploads/             # Generatsiya qilingan PNG fayllar
│
└── README.md                # Loyija haqida ma'lumot (bu fayl)

🚀 O'rnatish va Ishga Tushirish

Talablar

  • Python 3.8 yoki undan yuqori
  • pip paket menejeri

O'rnatish qadamlari

  1. Loyijani klonlash yoki yuklab olish:
cd SmartPlanAI
  1. Virtual muhit yaratish (ixtiyoriy, lekin tavsiya etiladi):
# Windows
python -m venv venv
venv\Scripts\activate

# macOS/Linux
python3 -m venv venv
source venv/bin/activate
  1. Kerakli kutubxonalarni o'rnatish:
pip install -r requirements.txt
  1. Aplikatsiyani ishga tushirish:
python run.py

run.py defaults to production mode so you won't see the debug PIN or the "development server" warning in the console. Set FLASK_ENV=development if you need live reload or debugging features.

  1. Brauzerda kirish:
http://localhost:5000

📊 Ishlatish

  1. Parametrlarni kiriting:

    • Xona soni: 1–10 oralig'ida (slayder yoki raqam)
    • Umumiy maydon: 50–500 m² oralig'ida
    • Qavatlar soni: 1 yoki 2 qavat tanlang
  2. "Rejani Generatsiya Qiling" tugmasini bosing

  3. Natijalarni ko'ring:

    • 2D va 3D rejalar avtomatik chiziladi
    • Xonalar ro'yxati va xulosa ma'lumotlar ko'rsatiladi

🔌 API Endpoints

POST /api/generate-plan

Uy rejasini generatsiya qiladi.

Request:

  • Content-Type may be application/json or standard form data (application/x-www-form-urlencoded).

JSON example:

{
  "num_rooms": 4,
  "total_area": 240.0,
  "num_floors": 1,
  "budget": 100000
}

(Form fields should use the same keys: num_rooms, total_area, num_floors, budget.)

Response contains both plan_2d and plan_3d URLs; the web client loads them as PNG images for preview.

Response:

{
  "success": true,
  "plan_2d": "/static/uploads/plan_2d_*.png",
  "plan_3d": "/static/uploads/plan_3d_*.png",
  "summary": {
    "num_rooms": 4,
    "total_area": 240.0,
    "num_floors": 1,
    "house_width": 24.5,
    "house_height": 18.4,
    "wall_height": 3.0,
    "budget_usd": 100000
  },
  "rooms": [
    {
      "name": "Mehmonxona",
      "area": 45.2,
      "width": 8.5,
      "height": 5.3
    },
    ...
  ],
  "timestamp": "20260304_120530"
}

POST /api/validate-params

Parametrlarni validatsiya qiladi.

Request:

{
  "num_rooms": 4,
  "total_area": 240.0,
  "num_floors": 1
}

Response:

{
  "valid": true
}

⚙️ Konfiguratsiya

config.py faylidagi konfiguratsiyalarni o'zgartirish mumkin:

class DevelopmentConfig(Config):
    DEBUG = True
    UPLOAD_FOLDER = 'static/uploads'

📝 Asosiy kod: HousePlan Klasi

core/house_plan.py faylidagi HousePlan klasi quyidagi metodlarni o'z ichiga oladi:

  • __init__(num_rooms, total_area, num_floors) - Konstruktor
  • summary() - Uy parametrlarining xulosa ma'lumoti
  • plot_2d(save_path) - 2D rejani chizamiz
  • plot_3d(save_path) - 3D rejani chizamiz

🎨 Texnologiyalar

  • Backend: Flask (Python)
  • Frontend: HTML5, Bootstrap 5, JavaScript
  • Vizualizatsiya: Matplotlib, NumPy
  • Statik Fayllar: CSS, JavaScript

📦 Dependencies

Barcha dependencies requirements.txt faylidagi ko'rsatilgan:

Flask==3.0.0
numpy==1.24.3
matplotlib==3.8.4
Werkzeug==3.0.1
python-dotenv==1.0.0

🐛 Muammolarni Hal Qilish

Matplotlib xatosi:

Agar matplotlib bilan muammo bo'lsa, brauzer cache'ni tozalang yoki:

pip install --upgrade matplotlib

Port 5000 band:

Boshqa port ishlatish uchun:

python run.py --port 8000

📄 Litsenziya

Bu loyiha bepul va ochiq texnologiyalar asosida ishlab chiqilgan.

👨‍💻 Muallif

SmartPlan AI Development Team


Ishlab chiqarish davomiyligi: Mart 2026
Versiya: 1.0.0

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors