Хувилбар 1.0 · 2026 оны 3-р сар

🌿 SmartCleanUB

Улаанбаатар Хотын Хог Хаягдлын Удирдлагын Систем

Хотын захиргаа, гүйцэтгэгч компани, жолооч, хяналтын ажилтан, иргэдийг нэг цифрийн платформд нэгтгэсэн иж бүрэн шийдэл.

Хэрэглэгчийн үүрэг7 үүрэг
API маршрут24+ endpoint
Хогийн цэг811 идэвхтэй
ПлатформWeb · Mobile · API
БайршуулалтcPanel · Docker · VPS
🏙️
Хэсэг 01

Системийн Товч Танилцуулга

SmartCleanUB нь Улаанбаатар хотын хог хаягдлын цуглуулалт, тээвэрлэлт, хяналт, тайлагналтын үйл явцыг цахимжуулах зорилгоор боловсруулагдсан нэгдсэн цифрийн платформ юм.
811
Идэвхтэй хогийн цэг
24+
API endpoint
7
Хэрэглэгчийн үүрэг
4
Платформ (Web·Mobile·API)
🏛️

Хотын захиргаа & дүүргийн удирдлага

Бодит цагийн мэдээлэл, статистик, тайлан авах боломж.

🚛

Гүйцэтгэгч компаниуд

Ачлалт, маршрут, жолоочийн удирдлагын хэрэгсэл.

📱

Иргэд

QR код уншуулах, дуудлага илгээх мобайл боломж.

🔍

Хяналтын ажилтнууд

Талбайн шалгалтыг гар утсаар бүртгэх систем.

🎯
Хэсэг 02

Зорилго ба Зорилтууд

Улаанбаатар хотын хог хаягдлын менежментийг цахим платформоор нэгтгэж, удирдлага, хяналт, тайлагналтыг автоматжуулан хотын орчны цэвэр байдлыг дээшлүүлэх.
ЗорилтТайлбар
🔍 Ил тод байдалХогийн цэгийн байршил, дүүрэлт, тээвэрлэлтийг бодит цагт харах
⚡ Хурдан хариуИргэдийн дуудлагыг хүлээн авч, компанид хуваарилах хугацааг багасгах
📊 ХяналтГүйцэтгэгч компаниудын үйл ажиллагааг KPI-ийн үндсэн дээр үнэлэх
📄 Цаасгүй болгохШалгалт, тайлан, гэрчилгээний баримтыг дижитал хэлбэрт шилжүүлэх
🤝 Иргэний оролцооQR код уншуулж, гар утасны аппаар хог асуудал мэдэгдэх боломж
📈 ТайлагналтУдирдлагад автоматаар статистик, тайлан гаргаж өгөх
🏗️
Хэсэг 03

Архитектур ба Технологийн Стэк

  ┌──────────────────────────────────────────────────────────────────┐
  │                         ХЭРЭГЛЭГЧИД                              │
  │                                                                    │
  │  ┌──────────────────┐  ┌─────────────────┐  ┌──────────────────┐ │
  │  │  Иргэн / QR      │  │  Жолооч         │  │  Хяналтын        │ │
  │  │  Мобайл апп      │  │  Мобайл апп     │  │  ажилтан         │ │
  │  └────────┬─────────┘  └───────┬─────────┘  └────────┬─────────┘ │
  └───────────┼────────────────────┼────────────────────┼────────────┘
              │             HTTPS / REST API              │
              └──────────────────┬────────────────────────┘
                                  │
              ┌───────────────────▼──────────────────────────┐
              │           АДМНИ ДАШБОАРД                       │
              │      React 18 · Vite 5 · Tailwind CSS          │
              │      https://admin.smartcleanub.mn             │
              └───────────────────┬──────────────────────────┘
                                  │  REST API (JWT)
              ┌───────────────────▼──────────────────────────┐
              │          BACKEND API SERVER                     │
              │       Node.js 24 · Express.js · PORT 3005       │
              │                                                  │
              │  JWT Auth · RBAC · Rate Limit · Helmet · CORS   │
              │  Sequelize ORM · Joi Validation · Multer         │
              │  QRCode Generator · AI Assistant Service         │
              └───────────────────┬──────────────────────────┘
                                  │  MySQL (Sequelize ORM)
              ┌───────────────────▼──────────────────────────┐
              │        MySQL 8.0 Мэдээллийн Сан               │
              │          utf8mb4 · InnoDB · FK                  │
              │                                                  │
              │  users · companies · vehicles · waste_points    │
              │  requests · trips · inspections · schedules     │
              │  news · notifications · activity_logs           │
              └──────────────────────────────────────────────┘

🔧 Технологийн стэк

⚙️ Backend

Runtime & Framework
Node.js 24.x Express.js 4.18
Database
Sequelize 6.35 MySQL2 3.16
Security
JWT 9.0 bcryptjs 2.4 Helmet 7.1 Joi 17.11
Utilities
Multer 1.4 QRCode 1.5 Axios 1.13 Morgan 1.10

🖥️ Frontend Admin

UI Framework
React 18.2 Vite 5.0 Tailwind CSS 3.3
State & Data
Zustand 4.4 React Query 3.39 React Router v6
Visualization
Recharts 2.10 Leaflet 1.9 Lottie-react 2.4
UI Components
Heroicons 2.1 Headless UI 1.7 date-fns 2.30

📱 Mobile App

Framework
React Native Expo
Language
TypeScript
Device APIs
Expo Camera Expo Location Expo ImagePicker
Platform
iOS Android
📐
Хэсэг 04

Платформ Бүрийн Дэлгэрэнгүй Тайлбар

🖥️ Адмни Дашбоард — 20 хуудас

ХуудасURL замТайлбар
Нэвтрэх/loginУтасны дугаар + нууц үгээр нэвтрэх
Дашбоард/dashboardЕрөнхий статистик, топ мэдээлэл
Хогийн цэгүүд/waste-pointsБүртгэл, хайх, газрын зурагт харах
Дуудлагууд/requestsИргэдийн хүсэлт удирдах
Рейс/Ачилт/tripsАчилтын бүртгэл, маршрут
Шалгалт/inspectionsХяналтын тайлан, хэмжилт
Мэдэгдэл/newsМэдээ, мэдэгдэл үүсгэх
Компаниуд/companiesГүйцэтгэгч байгууллагын бүртгэл, KPI
Ажилчид/employeesКомпанийн ажилтны бүртгэл
Тээврийн хэрэгсэл/vehiclesАвтомашины бүртгэл
Хуваарь/schedulesЦуглуулалтын цагийн хуваарь
Дүүргийн бүртгэл/districtsДүүрэг, хорооны бүртгэл
Хяналтын самбар/field-monitoringТалбайн бодит цагийн хяналт
Иргэдийн тайлан/citizen-reportsИргэдийн мэдэгдсэн асуудлууд
Шийдвэрлэлтүүд/resolutionsШийдвэрлэгдсэн зөрчил
Хэрэглэгчид/usersБүртгэл, эрхийн удирдлага
Газрын зураг/mapБодит цагийн интерактив зураг
Тайлан/reportsДэлгэрэнгүй тайлан гаргах
Тохиргоо/settingsСистемийн тохиргоо
Профайл/profileХэрэглэгчийн профайл

⚙️ Backend API — 25 маршрут

POST/GET
/api/auth
Нэвтрэх, бүртгэх, нууц үг
CRUD
/api/users
Хэрэглэгч удирдлага
CRUD
/api/companies
Компани бүртгэл
CRUD
/api/vehicles
Тээврийн хэрэгсэл
CRUD
/api/waste-points
Хогийн цэгүүд, QR код
CRUD
/api/requests
Иргэдийн дуудлага
CRUD
/api/trips
Рейс, ачилт
CRUD
/api/inspections
Хяналтын тайлан
GET
/api/dashboard
Дашбоардын статистик
GET
/api/report
Тайлан гаргах
CRUD
/api/news
Мэдээ, мэдэгдэл
CRUD
/api/notifications
Push мэдэгдлүүд
GET
/api/driver
Жолоочийн API
GET
/api/mobile
Мобайл аппын API
GET
/api/gps
GPS tracking
CRUD
/api/permissions
Эрхийн удирдлага
CRUD
/api/schedules
Цагийн хуваарь
GET
/api/activity-logs
Үйл ажиллагааны лог
POST
/api/assistant
AI туслах чатбот
GET
/api/public
Нийтийн өгөгдөл (auth шаардагдахгүй)

📱 Мобайл Апп — 6 дэлгэц

🏠

HomeScreen

Нүүр хуудас — ойрын хогийн цэгүүд, мэдэгдлүүд

📷

ScanScreen

QR код сканнер — шууд дуудлага илгээх

⚠️

ReportScreen

Асуудал мэдэгдэх — зураг, GPS байршилтай

📋

DriverTasksScreen

Жолооч: өдрийн ажлын жагсаалт

🗺️

DriverTaskDetailScreen

Жолооч: тодорхой ажлын дэлгэрэнгүй

📍

FallbackLocationScreen

GPS хүрэхгүй үеийн гараар байршил оруулах

Хэсэг 05

Функциональ Боломжууд

🗑️ Хогийн Цэгийн Удирдлага

  • GPS координаттай бүртгэл
  • QR код автоматаар үүсгэх — цэг бүрт өөрийн QR
  • Дүүрэлтийн хувь (0–100%), байдлын мэдээлэл
  • Дүүрэг, хорооны ангилал ба фильтр
  • Компанид хуваарилах, газрын зурагт харах
  • Идэвхтэй/идэвхгүй статус удирдах

📞 Иргэдийн Дуудлага & Хүсэлт

  • Мобайл апп эсвэл QR код уншуулж дуудлага
  • Хүртэл 3 зураг, GPS байршил оруулах
  • Статус хяналт: хүлээгдэж → оноогдсон → дуусгасан
  • Компанид хуваарилах, дахин хуваарилах
  • Иргэний үнэлгээ (star rating)

🚛 Ачилт & Маршрут

  • Рейс бүртгэх — компани, жолооч, машин, маршрут
  • GPS маршрутын бүртгэл
  • Ачсан хогийн жин (тонноор)
  • Статус дагах: төлөвлөсөн → явцад → дуусгасан

🔍 Хяналт & Шалгалт

  • Мобайл аппаар талбайд шалгалт бүртгэх
  • Зөрчил илрүүлэх, зурагтайгаар тэмдэглэх
  • Хяналтын тайлан — хэмжилтийн утга, дүгнэлт
  • Шийдвэрлэгдсэн тохиолдлуудын бүртгэл

🏢 Компанийн Удирдлага

  • Компанийн бүртгэл — нэр, хаяг, лиценз
  • KPI үнэлгээ — хариу хугацаа, гүйцэтгэлийн хувь
  • Компанид хэрэглэгч, машин, цэг хуваарилах
  • Компанийн ажилтны бүртгэл

🗺️ GPS & Газрын Зураг

  • Leaflet интерактив газрын зураг
  • Хогийн цэгүүдийн байршил marker-ууд
  • Машинуудын бодит цагийн байршил
  • QR уншиж, тухайн цэгийг олох
  • Дүүргийн хилийг харуулах

📊 Дашбоард & Тайлан

  • Бодит цагийн статистик
  • Recharts-аар график, диаграм
  • Тайлан экспорт: CSV/JSON
  • Хугацааны шүүлтүүр: өнөөдөр, 7 хоног, сар

🔔 Мэдэгдэл & Мэдээ

  • Хэрэглэгчийн бүлгүүдэд чиглүүлэх мэдэгдэл
  • Уншсан/уншаагүй тэмдэглэл
  • Мэдээ нийтлэх — зураг, тайлбартай
  • Мэдээний ангилал
👥
Хэсэг 06

Хэрэглэгчийн Эрх & Үүрэг

Систем нь Role-Based Access Control (RBAC) загвараар ажиллаж байна — permissions хүснэгтэд хадгалагдах, runtime-д ачааллагддаг ухаалаг эрхийн систем.
👑

admin

Системийн Администратор — бүх мэдээлэлд хандах эрхтэй.

🏛️

general_supervisor

Ерөнхий Хянагч — хот даяарх хяналт.

🏙️

district_supervisor

Дүүргийн Хянагч — харьяа дүүргийн хяналт.

🏢

company_manager

Компанийн Менежер — компанийн өгөгдөл.

🔍

inspector

Хяналтын Ажилтан — шалгалт хийх, бүртгэх.

🚛

driver

Жолооч — ачилтын бүртгэл.

Боломжadmingen_superdist_supercompany_mgrinspectordriver
Бүх мэдээлэл харах✅*✅*
Хэрэглэгч үүсгэх✅*
Компани удирдах✅*
Хогийн цэг удирдах✅*
Шалгалт хийх
Ачилт бүртгэх
Дуудлага хүлээн авах✅*
Тайлан харах✅*✅*

* — зөвхөн харьяа дүүрэг/компанийн өгөгдөлд хандана

🛡️
Хэсэг 07

Аюулгүй Байдал

Систем нь OWASP Top 10 болон орчин үеийн аюулгүй байдлын стандартуудыг дагаж мөрдөнө.
🔑

JWT Token Auth

1 цагийн хугацаатай токен, bcrypt cost factor 10, нэвтрэх оролдлого хязгаарлалттай.

🪖

Helmet.js HTTP Headers

X-Frame-Options, HSTS, XSS-Protection, noSniff, Content-Security-Policy.

🚦

Rate Limiting

IP тутамд 100 хүсэлт / 15 минут. DDoS болон brute-force хамгаалалт.

🌐

CORS Хяналт

Зөвшөөрөгдсөн origin-уудын бүртгэл. Гуравдагч тал хандалтыг хаах.

Joi Input Validation

Бүх API endpoint-д хатуу схем шалгалт. SQL Injection хамгаалалт — Sequelize parameterized query.

🔒

RBAC Middleware

authMiddleware + checkPermission — компани/дүүргийн хязгааралтай хандалт.

📁

File Upload Security

MIME type шалгалт, дээд хэмжээ 10MB, зөвшөөрөгдсөн формат бүртгэл.

📝

Activity Logs

activity_logs хүснэгт — хэн, хэзээ, ямар үйлдэл хийснийг бүртгэнэ. Morgan HTTP лог.

🤖
Хэсэг 08

AI Туслах Систем

SmartCleanUB-д Монгол хэл дэмжсэн хиймэл оюуны туслах (AI Assistant) нэгтгэгдсэн бөгөөд вэб дашбоардын баруун доод буланд ажиллана.

🎯 Таниж чадах Entity-үүд

хогийн цэгwaste-pointтоо, байдал, дүүрэлт
дуудлагаrequestхүлээгдэж, гүйцэтгэсэн
ачилтtripөнөөдрийн, нийт
машинvehicleидэвхтэй/идэвхгүй
компаниcompanyнийт, идэвхтэй
ерөнхий тоймoverviewбүх үзүүлэлт нэг дор

💬 Харилцааны Жишээ

Хэрэглэгч
Хогийн цэг хэд байна?
AI Туслах
Манай системд нийт 811 хогийн цэг байна. Идэвхтэй: 811 🗑️
Хэрэглэгч
Сайн байна уу
AI Туслах
Сайн уу! Надад туслалцаа хэрэгтэй бол чөлөөтэй асууна уу. 😊

✨ AI Widget-ийн Онцлогууд

💬

Яриа таних

Мэндлэл, баярлалаа, тусламж, баяртай гэх харилцааны хэв маягийг танина.

🔗

Follow-up шийдэл

Өмнөх яриаг үндэслэн богино асуултыг тайлбарлана ("ямар төлөвтэй вэ?" → бүтэн асуулт).

💡

Санал болгосон асуулт

Хариу бүрийн дараа үргэлжлэх асуултуудыг санал болгоно.

Quick Questions

Түгээмэл 5 асуултыг товчоор анхны ачааллахад харуулна.

⏱️

Яриа хадгалах

Сүүлийн 6 мессежийг context болгон backend руу илгээнэ.

🛡️

Schema Tolerant

Мэдээллийн сангийн баганын нэр өөрчлөгдсөн ч unахгүй, safeCount/safeFindAll ашиглана.

🏆
Хэсэг 09

Системийн Давуу Талууд

🔗 Нэгдсэн Платформ

Хотын захиргаа, компани, жолооч, иргэн гэх 7 ялгаатай хэрэглэгчийн бүлгийн 4 платформ нэг системд нэгдсэн — давхардсан мэдээлэл байхгүй.

🧠 Ухаалаг RBAC

Хэрэглэгч нэвтрэх мөчид л зөвхөн өөрт зөвшөөрөгдсөн цэс харагдана. Дүүргийн хянагч зөвхөн харьяа өгөгдөлдөө хандана.

📱 QR Нэгтгэл

Хогийн цэг бүрт QR код — иргэн утсаараа уншуулаад бүртгүүлэхгүйгээр шууд мэдэгдэл илгээх боломжтой.

⚡ Мэдэгдлийн Хурд

Иргэд дуудлага шууд оруулдаг тул утсаар мэдэгдэх, хаягаар очих шаардлагагүй. Хариу хугацаа эрс богиносдог.

📊 Автомат KPI

Компанийн хариу хугацаа, гүйцэтгэлийн хувь системд автоматаар бүртгэгдэж, үнэлгээ гардаг — гар тооцоолол шаардлагагүй.

🌍 Өргөтгөх Чадвар

Microservice-д бэлэн бие даасан route файлуудтай. Улаанбаатараас гадна бусад хотод нэвтрүүлэхэд хялбар дүүргийн бүтэц.

⚙️
Хэсэг 10

Техникийн Үзүүлэлтүүд

Backend runtime
Node.js 24.x LTS
API protocol
REST (JSON)
Auth механизм
JWT Bearer token · 1h TTL · bcrypt-10
Мэдээллийн сан
MySQL 8.0+ · InnoDB · utf8mb4 · FK
ORM
Sequelize 6.35 · parameterized queries
Файл байршуулалт
Multipart/form-data · Multer · /uploads
Зургийн формат
JPEG, PNG, WebP · дээд хэмжээ 10MB
QR код
qrcode@1.5 · SVG/PNG гаралт
Rate limit
100 хүсэлт / 15 минут / IP
HTTP шахалт
gzip (compression middleware)
Port
3005 (backend) · 5173 (frontend dev)
HTTPS
Let's Encrypt / cPanel AutoSSL
🚀
Хэсэг 11

Байршуулалт ба Дэд Бүтэц

🏠 cPanel Хостинг
backend/
Node.js App Manager
frontend-admin/
public_html/admin/
frontend-public/
public_html/
uploads/
public_html/uploads/
MySQL
cPanel MySQL Manager
🐳 Docker Compose
db:
MySQL 8.0 container
backend:
Node.js + Express
nginx:
Static файл + reverse proxy
redis:
Cache (хожим нэмэгдэх)
☁️ VPS / Cloud
PM2
Process manager (auto-restart)
Nginx
Reverse proxy + SSL
MySQL
Тусдаа эсвэл RDS
Let's Encrypt
AutoSSL сертификат
Домэйн бүтэц:
  https://smartcleanub.mn          — Нийтийн вэб
  https://admin.smartcleanub.mn    — Адмни дашбоард
  https://api.smartcleanub.mn      — Backend API

🖥️ Хурдан Эхлүүлэх

bash — SmartCleanUB Quick Start
# 1. Backend суулгах
cd backend
npm install
cp .env.example .env   # .env тохируулах
npm start               # → PORT 3005

# 2. Frontend Admin суулгах
cd ../frontend-admin
npm install
npm run dev             # → PORT 5173

# 3. Мобайл апп
cd ../mobile-app
npm install
npx expo start

# Анхны нэвтрэх:
#   Утас:     99999999
#   Нууц үг:  admin123
#   Дашбоард: http://localhost:5173
#   API:      http://localhost:3005
🗄️
Хэсэг 12

Өгөгдлийн Бүтэц

👤

users

Хэрэглэгчид — 7 үүрэгтэй, phone-based login

🏢

companies

Гүйцэтгэгч компаниуд — нэр, лиценз, гэрээ

🚛

vehicles

Тээврийн хэрэгслүүд — улсын дугаар, GPS

🗑️

waste_points

Хогийн цэгүүд — GPS, QR, дүүрэлт, байдал

📞

requests

Иргэдийн дуудлага — статус, зураг, байршил

🚌

trips

Ачилтын рейс — маршрут, жин, жолооч

🔍

inspections

Хяналтын тайлан — хэмжилт, зураг, дүгнэлт

📰

news

Мэдээ, мэдэгдэл — зураг, ангилал

📅

schedules

Цуглуулалтын хуваарь — долоо хоногийн

🔔

notifications

Мэдэгдлүүд — уншсан/уншаагүй

📋

activity_logs

Үйл ажиллагааны лог

🔐

permissions

RBAC эрхийн удирдлага

  users ─────────────── companies (companyId)
                     └─ districts (districtId)

  vehicles ─────────── companies (companyId)

  waste_points ─────── companies (assignedCompanyId)
                     └─ districts (districtId)

  requests ─────────── waste_points (wastePointId)
                      └─ companies (companyId)
                      └─ users (reportedBy)

  trips ──────────────── vehicles (vehicleId)
                       └─ companies (companyId)
                       └─ users (driverId)

  inspections ─────────── waste_points (wastePointId)
                        └─ companies (assignedCompanyId)
🔌
Хэсэг 13

API Ерөнхий Бүтэц

🔑 Нэвтрэх

POST /api/auth/login
Content-Type: application/json

{
  "phone": "99999999",
  "password": "admin123"
}

→ 200 OK
{
  "token": "eyJhbG...",
  "user": {
    "id": "...",
    "role": "admin"
  }
}

📦 Стандарт Хариу

// Жагсаалт
{
  "data": [...],
  "total": 811,
  "page": 1,
  "limit": 20
}

// Алдаа
{
  "error": "Алдааны тайлбар",
  "details": [...]
}

🤖 AI Туслах API

POST /api/assistant/query
Authorization: Bearer <JWT token>

{
  "query":    "Хогийн цэг хэд байна?",
  "scope":    "auto",
  "history":  [{ "role": "user", "summary": "..." }]
}

→ 200 OK
{
  "answer": { "summary": "Манай системд нийт **811** хогийн цэг байна." },
  "suggestedQuestions": ["Дүүрсэн цэг хэд вэ?", ...],
  "metadata": { "intentDetected": true, "executionMs": 42 }
}
🔭
Хэсэг 14

Ирээдүйн Хөгжлийн Чиглэл

Өндөр

📡 GPS Бодит Цагийн Tracking

Машины байршлыг Navixy / Google Maps API-тай нэгтгэж, дашбоардад харуулах.

Өндөр

🔔 Push Notification

Firebase FCM ашиглан мобайл мэдэгдэл — дуудлага хүлээн авах, төлөв өөрчлөгдөх.

Дунд

📱 Иргэний Мобайл Апп

Expo/React Native — App Store болон Google Play-д нийтлэх иргэний апп.

Дунд

📄 Тайлан PDF Export

Тайлануудыг PDF хэлбэрээр татаж авах боломж — нийтлэг загвартай.

Дунд

📶 Офлайн Ажиллагаа

Интернэтгүй үед мобайлд хадгалж, холболт сэргэх үед sync хийх.

Дунд

📩 SMS Alert

Хугацаа хэтэрсэн дуудлагад утасны дугаарт SMS мэдэгдэл илгээх.

Техникийн

⚡ Redis Cache

Дашбоардын статистик, тайлан API-уудыг Redis-д кэш хийж хугацааг богиносгох.

Урт хугацааны

🤖 AI Сайжруулалт

LLM (GPT / Llama) ашиглан ухаалаг хариу — бичгийн тайлан, дүн шинжилгээ.

Урт хугацааны

📊 ML Загвар

Хог дүүрэлтийг урьдчилан таамаглах машин сургалтын загвар.

Урт хугацааны

🔗 Bi-directional API

НЗДТГ болон гуравдагч тал системтэй нэгтгэх интеграц.