Giai đoạn: 07/07 – 13/07/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: 13/07/2026
Phạm vi: 5 dự án
Tổng quan tuần
Đây là tuần "gom mọi mảng dữ liệu về một dashboard — và dựng nguồn dữ liệu cho từng mảng". Dashboard được nâng từ chỗ chỉ xem địa điểm (Places) thành một trung tâm đa sản phẩm: thêm mảng Chiko · Doanh nghiệp B2B và mở rộng mảng Thương mại điện tử (Ecom), bên cạnh mảng Sự kiện (CheckEvent). Đứng sau mỗi tab mới là một crawler riêng mới toanh để bơm dữ liệu: chiko_data (doanh nghiệp từ masothue) và ecom_data (sản phẩm & đánh giá từ Amazon). Song song, CheckEvent có crawler sự kiện Facebook thật, và chicgo chuyển prompt từ file vào DB.
~70
commit trong tuần
5
dự án hoạt động
2 crawler
mới: Amazon + masothue B2B
1.471
địa điểm HCM đã crawl
Khối lượng commit theo dự án:
~28
ecom_data Crawler Amazon
~26
chicdata_dashboard Đa sản phẩm / Nav
8
chiko_data Crawler B2B
5
checkevent_data FB events / Hạ tầng
3
chicgo_data Prompt vào DB
1. chicdata_dashboard — Trung tâm dữ liệu đa sản phẩm — trọng tâm tuần
Dashboard được mở rộng để một chỗ theo dõi được nhiều mảng dữ liệu thay vì chỉ Places: doanh nghiệp B2B, sự kiện, và thương mại điện tử. Điều hướng (sidebar) được tổ chức lại theo nhóm để chị tìm đúng mảng nhanh hơn.
Vì sao quan trọng: thay vì mỗi mảng một công cụ rời rạc, giờ toàn bộ dữ liệu chic gom về một dashboard với cách xem, lọc và xuất báo cáo đồng nhất. Chị mở một chỗ là thấy được cả địa điểm, doanh nghiệp, sự kiện và sản phẩm.
1.1 Chiko · Doanh nghiệp B2B mảng mới
Mảng danh sách & chi tiết doanh nghiệp — dựng theo đúng khuôn luồng của Places (danh sách → chi tiết), nên cách dùng quen thuộc ngay.
Hiển thị nhóm từ khoá khớp — bảng danh sách chỉ rõ mỗi doanh nghiệp khớp với nhóm từ khoá nào, dễ hiểu vì sao nó lọt vào danh sách.
Làm nổi số điện thoại — số điện thoại có nút gọi/sao chép nhanh; dời link nguồn ra khỏi góc cho gọn.
Dự phòng địa chỉ thuế — khi thiếu địa chỉ chính, tự lấy tax_address để không bị trống.
Tab Phân tích (Analytics) & Xuất Excel — thêm tab thống kê cho doanh nghiệp và nút xuất danh sách ra .xlsx; đổi tên tab Chiko → Organizations cho rõ nghĩa.
1.2 Sự kiện (CheckEvent) — bộ lọc & sắp xếp lại
Lọc theo Tỉnh/Thành & khoảng ngày — thêm bộ lọc tỉnh và khoảng thời gian vào truy vấn sự kiện, xem đúng khu vực và mốc thời gian cần.
Lọc nhanh theo danh mục + nút "Sắp diễn ra" — thêm các "pill" chọn danh mục, nút bật riêng sự kiện sắp tới, và phóng to bảng sự kiện cho dễ đọc.
Đổi "Bài viết" → "Học bổng" (Scholarship) — đổi tên mục cho đúng nội dung; gỡ trang "Hàng chờ duyệt" đứng lẻ.
Sửa nguồn dữ liệu học bổng — trỏ Scholarship về bảng public.scholarships thay cho bảng ybox đã ngừng dùng.
1.3 Thương mại điện tử (Ecom)
Trang theo dõi tiến độ — thêm trang tiến độ Ecom kèm các API tương ứng để nắm được đang xử lý tới đâu.
Chi tiết sản phẩm phong phú hơn — xem nhanh các biến thể (variant quick-view) và tóm tắt bằng AI ngay trong màn chi tiết.
Gọn kết nối dữ liệu — cập nhật & đơn giản hoá cấu hình DB của Ecom.
1.4 Điều hướng, phân quyền & triển khai
Sidebar theo nhóm, thu gọn được — gộp menu thành các nhóm có thể mở/đóng; dựng nav chi tiết cho Chicnchill & CheckEvent giống Chicgo; dồn "Bài viết" vào nhóm CheckEvent, bỏ Chicwriter đứng lẻ.
Phân quyền chặt hơn — giới hạn một số mảng & API chỉ dành cho super-admin.
Xử lý danh mục an toàn hơn — thêm bắt lỗi & tự thử lại cho taxonomy danh mục; sửa lệch khoá seed hotel/homestay và lỗi tranh chấp khi tải dữ liệu (SSR fetch race).
Vận hành Fly.io — chỉnh cấu hình scale từ giao diện và sửa các lỗi builder khi deploy (Dockerfile / Nixpacks).
2. ecom_data — Crawler Amazon (sản phẩm & đánh giá) — dự án mới
Dự án mới toàn bộ tuần này, dựng từ con số 0 để làm nguồn dữ liệu cho tab Ecom trên dashboard: tự tìm sản phẩm trên Amazon, đọc trang chi tiết, và gom đánh giá của khách.
Vì sao quan trọng: đây là nhà máy dữ liệu thương mại điện tử — tự khám phá sản phẩm theo từ khoá, lấy giá/thông số, và đào sâu đánh giá khách hàng (mục tiêu 50+ review/sản phẩm) làm nguyên liệu cho phân tích & tóm tắt AI ở dashboard.
2.1 Ba khâu: khám phá → chi tiết → đánh giá
Khám phá theo từ khoá (SERP) — quét trang kết quả Amazon để tìm sản phẩm, trích tên/giá/đánh giá; định tuyến tìm kiếm qua trình duyệt để ổn định hơn.
Đọc trang chi tiết — bóc tách thông số sản phẩm, và lấy phần "Customers say" (tóm tắt + khía cạnh) cùng thư viện ảnh trong review.
Đào sâu đánh giá — phân trang sâu để lấy nhiều review (mục tiêu 50+), lấy cả review nhúng trong trang sản phẩm theo cách chống chặn học từ chicnchill_data.
2.2 Chống chặn & vận hành bền
Vượt tường chặn — làm mới header Amazon, phát hiện captcha & tường đăng nhập, trình duyệt "tàng hình" (stealth), công cụ lấy cookie thủ công khi cần.
Hàng đợi công việc bền — hàng đợi từ khoá kiểu SKIP LOCKED (nhiều tiến trình chạy song song không giẫm nhau), lưu tiến độ vào bảng crawl_runs/crawl_events thay cho file phẳng, tự thử lại từ khoá trả về 0 kết quả.
Điều phối tự động — một worker chạy trọn 3 khâu (khám phá → làm giàu → bù đánh giá), có seed CLI nạp từ khoá từ file JSON và cấu hình chạy nền pm2.
3. chiko_data — Crawler doanh nghiệp B2B (masothue) — dự án mới
Cũng là dự án mới tuần này, làm nguồn dữ liệu cho tab Chiko · Doanh nghiệp trên dashboard: thu thập thông tin doanh nghiệp từ masothue theo từ khoá.
Schema & crawler masothue — thiết kế DB cho doanh nghiệp (có spec đi kèm) và crawler 2 pha: pha 1 tìm kiếm, pha 2 lấy chi tiết.
Chỉ giữ doanh nghiệp đang hoạt động — tự loại các đơn vị đã ngừng hoạt động khi thu thập, để danh sách sạch.
Đánh dấu đã liên hệ — thêm cột is_contacted để đội BD theo dõi doanh nghiệp nào đã tiếp cận; đánh chỉ mục tra ngược từ khoá ↔ doanh nghiệp cho nhanh.
Vượt chặn Cloudflare — thêm tuỳ chọn engine Camoufox để qua chặn theo IP.
Mảng sự kiện có thêm nguồn dữ liệu thật từ Facebook và được đưa lên chạy nền định kỳ trên hạ tầng riêng.
4.1 Crawler sự kiện Facebook mới
Dựng luồng lấy sự kiện Facebook — dò đúng API sự kiện của Facebook (từ curl mẫu), rồi lặp & bóc tách kết quả (có tài liệu setup docs/facebook_events); crawler dùng Playwright để lấy sự kiện thật.
Sản lượng bước đầu — thu về ~2.200 sự kiện thô qua các vòng crawl, trong đó ~740 sự kiện đã được làm giàu (bổ sung chi tiết).
Bù dữ liệu còn thiếu — script backfill tự cập nhật những sự kiện còn thiếu địa chỉ & toạ độ, để dữ liệu đủ dùng cho lọc theo khu vực.
4.2 Hạ tầng chạy nền & kết nối DB
Trỏ crawler về DB CheckEvent riêng (Neon) — tách dữ liệu sự kiện sang cơ sở dữ liệu riêng, đồng thời crawl thêm nguồn ticketgo và bật cron cho ybox.
Cron học bổng riêng cho ybox — thêm cấu hình Railway cho một dịch vụ cron học bổng chạy độc lập.
Thêm nguồn linh hoạt qua biến môi trường — biến CRON_ADD_SOURCES cho phép bổ sung nguồn crawl mà không phải sửa lệnh khởi động.
5. chicgo_data — Prompt vào DB & hiện trạng kho địa điểm
Trước đây các "prompt" (câu lệnh hướng dẫn AI phân loại danh mục, lấy giá…) nằm rải rác trong file mã nguồn — muốn sửa là phải deploy lại. Tuần này chuyển chúng vào DB.
Bảng prompt trong DB — thêm bảng và hàm để lấy mẫu prompt trực tiếp từ cơ sở dữ liệu, thay vì đọc từ file cứng.
Dọn file prompt cũ — gỡ các file prompt & script seed danh mục không còn dùng (gồm cả prompt lấy giá qua Perplexity đã bỏ ở tuần trước), giữ repo gọn.
Sắp xếp lại cấu trúc mã — refactor cho dễ đọc, dễ bảo trì.
Kết quả: sửa prompt là sửa dữ liệu, không cần deploy lại code — chỉnh nhanh, ít rủi ro hơn.
5.1 Hiện trạng kho địa điểm — TP. Hồ Chí Minh
Kiểm tra trực tiếp trên DB địa điểm (số liệu tại thời điểm 13/07/2026):
1.471
địa điểm gắn tỉnh Hồ Chí Minh
120
trong đó đã làm giàu (enriched)
27.851
tổng địa điểm cả kho (chưa lưu trữ)
~11.800
Hà Nội (khu vực chủ lực)
HCM hiện 1.471 địa điểm đã crawl (≈5,3% tổng kho), nhưng mới 120 được làm giàu — dư địa lớn để chạy tiếp place_flow làm giàu theo keyword HCM đã có sẵn trong DB. Kho vẫn nghiêng mạnh về Hà Nội (~11.800), nên HCM là khu vực nên đẩy sản lượng crawl kế tiếp.
Tổng kết & định hướng
Điểm nhấn tuần: một dashboard cho tất cả các mảng — kèm nguồn dữ liệu riêng cho từng mảng. Dashboard thêm mảng doanh nghiệp B2B (Chiko) và mở rộng thương mại điện tử (Ecom) bên cạnh sự kiện (CheckEvent); đứng sau là hai crawler mới toanh — ecom_data (Amazon) và chiko_data (masothue B2B). CheckEvent có crawler sự kiện Facebook thật (~2.200 sự kiện thô), và chicgo đưa prompt vào DB. Kho địa điểm HCM hiện 1.471, mới làm giàu 120.
Theo dõi tiếp: (1) đẩy làm giàu HCM — mới 120/1.471 địa điểm enriched, chạy tiếp place_flow theo keyword HCM có sẵn để tăng vùng phủ; (2) chạy diện rộng 2 crawler mới (Amazon, masothue) và theo dõi tỉ lệ vượt chặn (captcha/Cloudflare) cùng chất lượng dữ liệu; (3) crawl sự kiện Facebook liên tục & theo dõi tỉ lệ sự kiện đủ địa chỉ/toạ độ sau backfill; (4) hoàn thiện phân quyền super-admin và các bộ lọc mới trên dashboard theo phản hồi thực tế của chị.