Eco-Track là nền tảng thu thập, chuẩn hóa, phân tích và dự đoán chất lượng không khí (AQI) theo thời gian thực cho TP.HCM. Dự án được xây dựng theo tiêu chuẩn dữ liệu mở đô thị thông minh (Open Urban Data), tương thích:
- NGSI-LD (ETSI ISG CIM)
- SOSA/SSN Ontology (W3C)
- FiWARE Smart Data Models
- Linked Open Data (LOD)
Eco-Track được xây dựng như một giải pháp hoàn chỉnh để tham dự cuộc thi Olympic Phần mềm Mã nguồn mở – OLP 2025, tập trung vào lĩnh vực dữ liệu đô thị mở về môi trường, đặc biệt là chất lượng không khí (AQI), theo đúng tiêu chuẩn NGSI-LD, SOSA/SSN và FiWARE Smart Data Models yêu cầu trong đề thi.
Xây dựng nền tảng dữ liệu mở về môi trường giúp:
- Cộng đồng theo dõi chất lượng không khí theo thời gian thực
- Nhà quản lý nắm bắt xu hướng ô nhiễm để ra quyết định
- Sinh viên – nhà nghiên cứu truy cập dữ liệu mở phục vụ học thuật
- Thúc đẩy văn hóa phát triển mã nguồn mở, chia sẻ dữ liệu mở
Trở thành nền tảng dữ liệu môi trường mở chuẩn hóa theo NGSI-LD đầu tiên tại Việt Nam, có khả năng:
- Mở rộng đến nhiều thành phố
- Tích hợp cảm biến IoT thực tế
- Tương thích FIWARE, Smart City Ecosystem
- Kết nối vào hệ thống đô thị thông minh quốc gia
- Ứng dụng quan sát – dự đoán – cảnh báo môi trường
- Minh bạch: dữ liệu mở – mã nguồn mở
- Cộng đồng: mọi người đều có quyền truy cập thông tin môi trường
- Bền vững: hướng đến một đô thị khỏe mạnh
- Chuẩn hóa: tuân thủ NGSI-LD / SOSA-SSN / LOD
- Học thuật: phục vụ sinh viên, giảng viên, nhà nghiên cứu
Đề bài của OLP 2025 yêu cầu:
- Ứng dụng thành phố thông minh dựa trên nền tảng dữ liệu mở đô thị
- Mô hình hóa dữ liệu theo SOSA/SSN – W3C
- API mở theo NGSI-LD – ETSI CIM
- Tương thích FiWARE Smart Data Models
- Dữ liệu từ nguồn OpenAQ, OpenWeatherMap, OSM, GTFS
- Hướng đến cộng đồng & quản lý đô thị
Eco-Track đáp ứng hoàn toàn yêu cầu đề thi – được thiết kế theo đúng tiêu chuẩn đô thị thông minh. Tập trung vào dữ liệu chất lượng không khí (AQI)
- Thu thập AQI theo giờ từ OpenAQ
- Chuẩn hóa dữ liệu theo schema đô thị
- Dashboard trực quan (map, heatmap, charts)
- Dự đoán AQI 24 giờ bằng LSTM
- API mở: REST + NGSI-LD
- Context JSON-LD theo SOSA/SSN & FIWARE
- Backend: Node.js + Express
- Database: MongoDB + Mongoose
- Frontend: Pug, Bootstrap 5, Leaflet.js, Chart.js
- Scheduler: node-cron
- ML Engine: Python (NumPy, Pandas, scikit-learn, PyTorch)
flowchart TB
%% --- STYLES ---
classDef api fill:#1976d2,stroke:#0d47a1,stroke-width:1px,color:#fff
classDef db fill:#4caf50,stroke:#1b5e20,stroke-width:1px,color:#fff
classDef py fill:#ef6c00,stroke:#e65100,stroke-width:1px,color:#fff
classDef front fill:#0097a7,stroke:#006064,stroke-width:1px,color:#fff
classDef ingest fill:#7e57c2,stroke:#4527a0,stroke-width:1px,color:#fff
classDef node fill:#8d6e63,stroke:#4e342e,stroke-width:1px,color:#fff
classDef service fill:#5c6bc0,stroke:#283593,stroke-width:1px,color:#fff
%% --- NODES ---
A["
🌍 **OpenAQ API v3**
Nguồn dữ liệu AQI & pollutant
"]:::ingest
B["
⚙️ **Data Ingestion Layer**
🕒 node-cron
📥 fetch-openaq-hours.js
📦 Đồng bộ & chuẩn hóa
"]:::ingest
C["
🍃 **Data Sync Service**
🔁 sync-openaq-to-districts.js
📊 Quy đổi AQI US
"]:::service
D["
🍃 **MongoDB**
🗄 Collections:
• hcmc_air_hours
• district*_readings
• hcmc_readings
"]:::db
E["
🟩 **Node.js + Express API**
🔗 Client API
🔗 Admin API
🔗 Prediction API
🔗 NGSI-LD API
"]:::node
F["
🧠 **Python ML Engine**
📦 PyTorch LSTM
📚 Pandas / NumPy
🔮 predict_from_json.py
"]:::py
G["
🗺 **Client UI**
🌐 Pug Templates
🗺 Leaflet.js
📊 Chart.js
🎨 Bootstrap 5
"]:::front
H["
🛠 **Admin Dashboard**
📌 Data Monitor
📌 Charts
📌 Validation Tools
"]:::front
%% --- CONNECTIONS ---
A --> B
B --> C
C --> D
D --> E
E --> F
E --> G
E --> H
%% --- LABELS ---
B -- chuẩn hoá --> C
D -- query --> E
E -- gọi Python --> F
F -- dự đoán --> E
G -- fetch API --> E
H -- admin API --> E
- Xem chất lượng không khí từng quận/phường
- Nắm thời điểm không khí ô nhiễm để tránh ra đường
- Theo dõi xu hướng để bảo vệ trẻ em, người già, người bệnh
- Truy cập dữ liệu mở chuẩn hóa
- Sử dụng API, dữ liệu lịch sử cho học thuật
- Tích hợp vào đồ án, nghiên cứu AI/ML
- Quan sát mức độ ô nhiễm theo khu vực
- Phân tích thời gian, dự đoán xu hướng
- Làm báo cáo, cảnh báo, ra quyết định
- Mọi người đều có thể đóng góp
- Tự cài đặt hệ thống theo chuẩn OLP
- Tạo sản phẩm dự thi Smart City / Open Data
- 🔗 https://ecotrack.asia
- 📚 https://ecotrack.asia/api/docs
- 🗺 https://ecotrack.asia/aqi
- 🛠 Repo: https://github.com/SIU-Sirocco-2025/Eco-Track
Dữ liệu được xuất bản theo giấy phép ODC-BY 1.0.
Xem chi tiết tại DATA_LICENSE.md.
Danh sách giấy phép của tất cả dependencies (npm, Python) được tổng hợp tại DEPENDENCIES_LICENSES.md.
- Tự động tạo từ package.json và yêu cầu Python bằng script kiểm kê.
- Mục tiêu: minh bạch bản quyền, tuân thủ phân phối theo GPL-3.0.
Phân phối theo GNU GPL v3.0. Xem LICENSE.
© 2025 Eco-Track – Cùng xây dựng bầu không khí trong lành cho TP. Hồ Chí Minh 🌿
