# 🌿 carbon_eiu2
**Interactive dashboard để giám sát tiêu thụ năng lượng & phát thải carbon tại các tòa nhà, kèm dự báo thông minh sử dụng ML.**
## ⚙️ Tính năng nổi bật
- **Lấy dữ liệu daily/hourly** từ hệ thống QEnergy (API endpoint `/all`).
- **Tính tổng actual usage & carbon emission**, hiển thị theo block và toàn bộ.
- **Dự báo phát thải carbon** (3 ngày tương lai + 7 ngày gần nhất) sử dụng XGBoost.
- **Cập nhật tự động**: chạy Python scripts định kỳ để regen JSON.
- **Backend**: ExpressJS + WebSocket + cron trong Node để làm mới dữ liệu.
- **Frontend**: React + TailwindCSS + Recharts để hiển thị live dashboard & forecast.
## 🚀 Cài đặt & Chạy
### 1. Clone repo
```bash
git clone https://github.com/DoNguyenAnhTuan/carbon_eiu2.git
cd carbon_eiu2npm installpip install pandas requests xgboost scikit-learnnpm run devQuá trình này sẽ:
-
Chạy Python scripts để lấy dữ liệu:
fetch_site_data.pyfetch_all_blocks_daily.pybar_data.py
-
Khởi động server tại
http://localhost:3000 -
Cung cấp API
/api/actual,/api/dashboard,/assets/data/... -
Bật WebSocket để đẩy dữ liệu live lên UI
| File | Mô tả |
|---|---|
site_all_daily.json |
Dữ liệu lịch sử daily consumption |
forecast_carbon.json |
Dự báo carbon (7 ngày gần nhất + 3 ngày tương lai) |
bar_data.json |
Dữ liệu hiển thị biểu đồ theo giờ |
actual_blocks.json |
Tổng actual / emission theo từng block |
-
Phát triển bởi: Do Nguyen Anh Tuan (Thạc sĩ CNTT)
-
Server chạy Node.js + Express + WebSocket + Cron
-
Python cho data pipeline + ML (XGBoost)
-
Frontend: ReactJS + TailwindCSS + Recharts
-
Công cụ nổi bật:
       
- Fine-tune XGBoost để cải thiện dự đoán
- Phát triển API mới hỗ trợ lọc theo ngày/tháng/năm
- Thêm màn hình dashboard chi tiết block, hỗ trợ lịch sử theo ngày
- Deploy lên hosting công khai (Vercel / Heroku / VPS)
- Viết tài liệu sử dụng và demo video
MIT License © 2025 – Do Nguyen Anh Tuan