Netnyahoo
Real Chromium for the Mac, free and open source: Arc's sidebar and Dia's polish, with no account. Immune to ads, trackers and prosecution.
Dashboard - OPS - PQPOC
Translation pending
OtherHTML · PythonGitHub @toiyeuvietnam2452001OnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
The maker's introduction consists of the line above. Read the repository README for more details. Repository README ↗
Loading the full README.
Read the full README ↗Dashboard báo cáo phòng OPS, có hai mặt hiển thị, cùng chạy từ một file Excel trên SharePoint:
┌──> Các sheet dashboard trong chính file Excel (tính lại ngay khi sửa số, xem bằng tài khoản công ty)
Excel trên SharePoint ────┤
└──(nút "Day so lieu len dashboard")──> data.json trên GitHub ──┬──(Vercel tự deploy)──> https://ops-pqpoc.vercel.app
└──(GitHub Actions)──> history/<ngày báo cáo>.json
Trên trang Notion OPS Dashboard Data chỉ có một báo cáo, "Báo cáo OPS – cập nhật liên tục" (bảng Báo cáo [reports]). Mở báo cáo là thấy đủ 22 hạng mục; mỗi team sửa thẳng số của mình bất cứ lúc nào, mỗi hạng mục chỉ có một dòng. 22 bảng gốc nằm trong trang con Database; dashboard đọc mọi dòng của các bảng này, nên thêm dòng ở trang báo cáo hay ở Database đều được.
Notion (22 bảng) ──> api/data trên Vercel (đệm 60 giây) ──> ops-pqpoc.vercel.app (tự làm mới mỗi phút)
GitHub Actions mỗi giờ ──> data.json (dự phòng) + history/<ngày hôm nay>.json (bản lưu mỗi ngày)
Cài một lần
OPS Dashboard, workspace của anh, loại Internal → Save. Ở tab Capabilities tích Read content (dashboard chỉ đọc). Copy Internal Integration Secret (ntn_…).OPS Dashboard.NOTION_TOKEN = secret ở bước 1 (Production) → Save. Vào Deployments, bấm ⋯ → Redeploy bản mới nhất.https://ops-pqpoc.vercel.app/api/data: thấy JSON là xong. Dòng cuối dashboard ghi "Live from Notion".Quy tắc khi sửa trên Notion: sửa số trên dòng sẵn có, không nhân bản dòng; không đổi tên bảng/cột; % gõ 0–100; tháng dạng YYYY-MM; chưa có số thì để trống, không gõ 0. ID các bảng nằm trong tools/notion-sources.json.
Bảng dành cho lãnh đạo (hiện ở đầu tab Overview):
Trạng thái tổng thể [readiness]: 8 mảng Xanh/Vàng/Đỏ. Dashboard tự tính màu theo ngưỡng; chỉ chọn status_override khi muốn ghi đè, và ghi lý do vào comment.
Mốc tiến độ [milestones]: các mốc MC, RFSU, First Gas… Tích is_target ở mốc dùng để đếm ngược trên đầu trang.
Bảng chi tiết (thêm ngày 30/10/2026 từ báo cáo PowerPoint 21/10):
Ma trận đào tạo HSE [hse_matrix]: mỗi dòng một khoá, mỗi cột một vị trí; ô ghi M / C / S / B (M1–M6 như ma trận gốc), để trống nếu vị trí không cần khoá đó.
Module CBTA [cbta_modules]: từng module, số tài liệu, status (Completed / Review & Approval / Developing, trống = chưa bắt đầu) và người biên soạn. Dashboard báo khi danh mục lệch với bảng tổng CBTA [cbta].
ORR kế hoạch theo team [orr_team_plan]: % kế hoạch lũy kế từng team theo tháng đến 06/2027; actual_pct điền cho tháng đã báo cáo.
Giấy phép [permits] có thêm ref_no, description, responsible, compliance.
Báo cáo [reports]: report_title, doc_no, revision, prepared_by, reviewed_by, approved_by, classification (in ở chân trang và bản PDF).
Nút Print / PDF in toàn bộ dashboard ra A4 ngang.
Song ngữ: nút EN | VI góc trên bên phải đổi ngôn ngữ; trình duyệt nhớ lựa chọn. Gửi link thẳng bản tiếng Việt: https://ops-pqpoc.vercel.app/?lang=vi. Bản dịch nằm trong tools/i18n-vi.json (ui = chữ trên giao diện, data = các nhãn số liệu như trạng thái, bước PR, tên mảng). Số liệu gõ tự do trên Notion hiển thị đúng như đã nhập.
Mời trưởng nhóm: trang OPS Dashboard Data → Chia sẻ → nhập email → Có thể chỉnh sửa. Mời ở dạng khách (guest): gói miễn phí cho tối đa 10 khách.
report_date thành ngày báo cáo mới (dạng 2026-11-28).Sửa số sau khi đã đẩy: giữ nguyên report_date, sửa số, bấm lại nút: bản của ngày đó được ghi đè.
data.json thay đổi, GitHub Actions (.github/workflows/archive.yml) lưu một bản sao vào history/<report_date>.json và cập nhật history/index.json.https://ops-pqpoc.vercel.app/?date=2026-10-21 (thêm #orr, #procedures… để mở thẳng tab).| File | Vai trò |
|---|---|
index.html | Trang dashboard web. Mỗi lần mở trang đọc data.json (hoặc history/<ngày>.json khi có ?date=); nếu không đọc được thì hiện số liệu dự phòng nhúng sẵn và báo đỏ ở cuối trang. |
data.json | Số liệu mới nhất. Script trong Excel ghi đè file này, không sửa tay. |
history/ | Bản lưu theo ngày báo cáo, do GitHub Actions tạo. Không sửa tay. |
automation/OPS_Dashboard_Data.xlsx | File Excel nguồn. 6 sheet dashboard ở đầu (Overview, Manpower & Training, ORR, Procedures, Contracts & Permits, Commissioning), sheet "Huong dan", rồi 18 bảng số liệu. Đưa lên SharePoint, phòng OPS nhập số tại các bảng số liệu. |
automation/day-so-lieu-len-dashboard.ts | Office Script: bấm là đẩy số liệu từ Excel lên GitHub, trang Vercel tự cập nhật (không cần Power Automate). |
automation/xuat-du-lieu-dashboard.ts | Office Script đọc các bảng Excel và xuất JSON cho dashboard web. Chỉ đọc Excel Table, nên bỏ qua các sheet dashboard. |
api/data.js | Hàm Vercel đọc mọi dòng của 22 bảng trên Notion, trả về cùng dạng data.json. Cần biến môi trường NOTION_TOKEN. |
lib/notion.js | Phần dùng chung: gọi Notion API, thứ tự dòng của từng bảng. |
.github/workflows/sync-notion.yml | Mỗi giờ chép số liệu từ api/data vào data.json và history/<ngày hôm nay>.json. |
tools/ | Mã dựng lại index.html và file Excel; tools/archive.py tạo bản lưu lịch sử (xem cuối trang). |
1 CSP Preparation … 6 Contract Signing); tên bước trong bảng "PR dang xu ly" phải trùng.Script automation/day-so-lieu-len-dashboard.ts đọc các bảng số liệu và ghi thẳng data.json lên GitHub; Vercel cập nhật trang sau 1–2 phút.
day-so-lieu-len-dashboard.ts.DAN_TOKEN_VAO_DAY ở dòng const GITHUB_TOKEN = … bằng token (giữ dấu ngoặc kép). Đặt tên script Day so lieu len dashboard → Save script.api.github.com → Allow. Output báo "Đã đẩy số liệu lên GitHub…" là xong.Mỗi lần nhập số xong, bấm nút này. Script chứa token: không chia sẻ script cho người khác; ai cần đẩy số thì tự tạo script với token của mình, hoặc nhờ người giữ token bấm.
Muốn tự động theo lịch thay vì bấm tay: làm các bước Power Automate bên dưới (cần Premium).
automation/OPS_Dashboard_Data.xlsx lên thư viện tài liệu của site OPS, ví dụ Documents/Dashboard/OPS_Dashboard_Data.xlsx.automation/xuat-du-lieu-dashboard.ts.power-automate-ops-dashboard. Expiration: chọn 1 năm và ghi lịch nhắc gia hạn.Dashboard-OPS.github_pat_…. Chuỗi này chỉ hiện một lần; không gửi qua chat, email.Cần action HTTP (Premium). Nếu tài khoản không có Premium, xem mục "Không có Premium" ở cuối.
Vào https://make.powerautomate.com, chọn Create → Scheduled cloud flow, đặt tên OPS dashboard – day so lieu.
4.1. Recurrence (lịch chạy)
1, Frequency Hour. Mở Show advanced options: Time zone (UTC+07:00) Bangkok, Hanoi, Jakarta; At these hours chọn 7–19 nếu chỉ cần trong giờ hành chính.4.2. Excel Online (Business) → Run script, đổi tên action thành Doc Excel
Documents. File: OPS_Dashboard_Data.xlsx. Script: Xuat du lieu dashboard.4.3. HTTP, đổi tên thành Lay sha (lấy mã phiên bản hiện tại của data.json)
GEThttps://api.github.com/repos/toiyeuvietnam2452001/Dashboard-OPS/contents/data.json?ref=main| Key | Value |
|---|---|
Authorization | Bearer github_pat_… (token ở bước 3) |
Accept | application/vnd.github+json |
User-Agent | ops-dashboard-flow |
4.4. HTTP, đổi tên thành Day len GitHub
PUThttps://api.github.com/repos/toiyeuvietnam2452001/Dashboard-OPS/contents/data.json{
"message": "Cập nhật số liệu dashboard @{convertFromUtc(utcNow(), 'SE Asia Standard Time', 'dd/MM/yyyy HH:mm')}",
"content": "@{base64(outputs('Doc_Excel')?['body/result'])}",
"sha": "@{body('Lay_sha')?['sha']}",
"branch": "main"
}
Tên trong biểu thức dùng dấu gạch dưới thay khoảng trắng: Doc_Excel, Lay_sha. Nếu đặt tên action khác thì sửa lại cho khớp.4.5. Save → Test → Manually → Run flow. Thành công khi:
200.| Hiện tượng | Nguyên nhân / cách sửa |
|---|---|
Lay sha báo 401 | Token sai hoặc hết hạn. Tạo token mới (bước 3), thay ở cả hai action HTTP. |
Lay sha báo 404 | Sai tên repo trong URI, hoặc token chưa chọn repo Dashboard-OPS. |
Day len GitHub báo 409/422 | Sai sha. Kiểm tra biểu thức body('Lay_sha')?['sha'] khớp tên action. |
Doc Excel lỗi | Script chưa lưu, hoặc file đang bị khoá. Mở file trên web và chạy script thử. |
| Dashboard báo đỏ "Không đọc được data.json" | data.json bị hỏng (thường do sửa tay). Chạy lại luồng để ghi đè. |
| Một phần dashboard trống | Đổi tên bảng/cột trong Excel. Đối chiếu sheet "Huong dan" và đặt lại đúng tên. |
Action HTTP là Premium. Nếu tài khoản Microsoft 365 không có, hỏi IT xin license Power Automate Premium cho một tài khoản chạy luồng, hoặc cho luồng chạy dưới tài khoản đã có Premium. Các bước khác giữ nguyên.
tools/)Cần Python 3 và openpyxl. tools/data/*.json là số liệu gốc của báo cáo 21/10/2026.
python3 tools/build.py tools tools/data . # index.html + data.json
python3 tools/excel.py tools/data /tmp/base.xlsx # 18 bảng số liệu + Huong dan
python3 tools/excel_dash.py /tmp/base.xlsx automation/OPS_Dashboard_Data.xlsx # thêm 6 sheet dashboard