Giai đoạn: 22/06 – 29/06/2026 · Tổng hợp từ lịch sử Git và transcript phiên làm việc Claude của từng dự án
Người thực hiện: jc-hello
Ngày lập: 29/06/2026
Phạm vi: 2 dự án chính
Tổng quan tuần
Đây là tuần sản phẩm & vận hành BD — trọng tâm là xây dựng hệ thống BD (Business Development) hoàn chỉnh trên dashboard — phân quyền, khoá đồng thời, tự chấm điểm, thống kê cá nhân. Song song là đại tu pipeline làm giàu dữ liệu Perplexity cho chicgo và migration địa chỉ TrackAsia.
~70
commit trong tuần
2
dự án hoạt động
BD Lock
hệ thống khoá đồng thời cho verify
Auto-Score
tự chấm điểm BD khi sửa trường
Khối lượng commit theo dự án:
~50
chicdata_dashboard BD / Places
20
chicgo_data Enrich / Địa chỉ
1. Hệ thống BD (Business Development) — chicdata_dashboard — trọng tâm tuần
Tuần này hoàn thiện toàn bộ luồng vận hành cho đội BD: từ phân quyền tài khoản, tránh đụng độ khi nhiều người cùng duyệt, đến chấm điểm tự động và trang thống kê cá nhân.
1.1 Hệ thống khoá đồng thời (BD Verify Lock) Quan trọng nhất
Vấn đề giải quyết — khi nhiều BD cùng mở một địa điểm để duyệt, có thể xung đột, ghi đè nhau. Hệ thống khoá ngăn chặn hoàn toàn.
Migration mới — bảng place_verify_locks theo dõi ai đang giữ khoá, khi nào hết hạn.
3 API endpoint — POST /verify-lock (chiếm khoá / gia hạn), GET /verify-lock (kiểm tra trạng thái), DELETE /verify-lock (trả khoá — idempotent).
UI proactive — form hiển thị read-only ngay khi người khác đang giữ khoá; tự gia hạn nền mỗi 30 giây khi đang làm việc.
Giao dịch database — lệnh verify bọc trong transaction với FOR UPDATE guard, xoá khoá khi hoàn tất.
Auto-refresh — panel chi tiết tự reload dữ liệu địa điểm mỗi 5 giây trong khi mở khoá.
1.2 Trang thống kê cá nhân BD (My Stats)
Số liệu tổng hợp — tổng đã duyệt / pass / reject trong ngày + tuần + tháng.
Biểu đồ theo giờ — histogram hiển thị năng suất trong ngày làm việc.
Donut pies — tỉ lệ pass/reject theo danh mục địa điểm.
Heatmap — phân bổ hoạt động theo ngày trong tuần / giờ trong ngày.
Danh sách phường & địa điểm — xem địa điểm nào đã duyệt theo từng phường.
Layout responsive — 2 cột trên desktop, 1 cột trên mobile.
1.3 Quản lý tài khoản BD (Superadmin)
Trang mới cho superadmin — tạo / xoá tài khoản BD, xuất danh sách ra file .xlsx.
Role bd mới — thêm vào hệ thống phân quyền, middleware xác thực nhận diện BD.
Sửa lỗi session — đồng bộ session user trong middleware admin/staff để tránh 403 oan khi client state cũ.
1.4 Tự động chấm điểm BD (Auto-Scoring)
Rescore server-side — khi BD sửa trường ảnh hưởng điểm (giá, hình ảnh, giờ mở cửa…), backend tự tính lại điểm tổng ngay.
Rescore theo số ảnh — thêm ảnh / xoá ảnh → điểm BD cập nhật tự động.
Kéo thả ảnh theo thứ tự (Apple jiggle style) — drag-and-drop sắp xếp lại ảnh địa điểm, kích hoạt rescore.
1.5 Cải tiến trang Places khác
Upload ảnh lên Cloudflare R2 — BD tải ảnh trực tiếp từ trình duyệt, lưu vào R2, URL cập nhật ngay vào DB.
vibe_category + suggested_vibes — trường mới cho nhóm nhân khẩu & phong cách; dán JSON vào ô prompt là tự điền.
LinksEditor tự nhận domain — dán link mạng xã hội / đặt bàn, platform label tự nhận diện từ domain.
Maintenance mode — bật/tắt chế độ bảo trì chặn mọi ghi từ API (không ảnh hưởng read).
Sub-categories — đổi tên từ "Sub-segments" + bỏ place_type sau khi schema đã dọn.
Hành chính sau 2025 — cập nhật logic quận/huyện theo thay đổi đơn vị hành chính mới.
UI nhỏ — tiêu đề nhóm nổi bật hơn; hiển thị min/max/avg trong view giá; ẩn editor không cần trong màn hình verify.
2. chicgo_data — Làm giàu dữ liệu & Migration địa chỉ
2.1 Đại tu pipeline Perplexity
Pool cookie Perplexity — thay gọi API trực tiếp một cookie, chuyển sang pool nhiều cookie luân phiên để tránh rate-limit.
JSON repair & re-prompt — khi Perplexity trả về JSON lỗi, tự sửa + gửi lại prompt sửa lỗi trước khi fail.
Kiểm tra usability trước khi đánh dấu enrich — chỉ stamp enriched_at khi response thực sự dùng được; tránh bỏ sót địa điểm cần enrich lại.
Theo dõi tiến độ enrich — script mới enrich_tracking báo số địa điểm đã enrich / còn lại theo từng batch.
Persist vibe_category + suggested_vibes — step-2 của enrichment lưu thêm hai trường mới này vào DB.
2.2 Migration địa chỉ TrackAsia
Công cụ mới — script migration gọi TrackAsia API để chuẩn hoá địa chỉ theo format mới (new_address), hỗ trợ resume từ DB-direct (không cần checkpoint file).
Proxy pool — xoay proxy tránh bị chặn; per-query timeout và delay lịch sự giữa các request.
2.3 Dọn schema & vận hành
Tách category — homestay_hotel tách thành 2 danh mục riêng: homestay và hotel.
Bỏ place_type — xoá hoàn toàn field và references sau khi dashboard đã loại bỏ.
Sources cho giá — thêm trường sources vào priceItem; script cập nhật OTA giữ lại source link.
Xoá Google Maps image URL hết hạn — script quét R2-backed places, strip URL ảnh Google Maps đã expire.
Worker dịch review độc lập — tách worker dịch đánh giá thành file riêng với ít dependency, dễ chạy standalone.
Tổng kết & định hướng
Điểm nhấn tuần: hệ thống BD vận hành đầy đủ — từ khoá đồng thời, tự chấm điểm, upload ảnh đến thống kê cá nhân; đội BD giờ có đủ công cụ để vận hành độc lập. Chicgo tiến thêm với Perplexity refactor và migration địa chỉ TrackAsia.
Theo dõi tiếp: (1) giám sát vận hành BD thực tế — khoá / mở khoá có hoạt động ổn định không; (2) hoàn thiện pipeline enrich Perplexity — theo dõi tỉ lệ thành công sau khi refactor; (3) cutover các app sang DB Railway mới (vẫn còn pending từ tuần trước).