Báo cáo công việc tuần

Chic Data — Tổng kết tuần

Giai đoạn: 01/06 – 08/06/2026 · Tổng hợp từ lịch sử Git, transcript Claude và thay đổi cơ sở dữ liệu
Người thực hiện: jc-hello
Ngày lập: 08/06/2026
Phạm vi: 5 dự án

Tổng quan tuần

Tuần này tập trung vào tái cấu trúc cơ sở dữ liệu (chuẩn hoá schema) cho hệ thống dữ liệu địa điểm — đây là phần việc lớn nhất và quan trọng nhất — song song với việc nâng cấp crawler đa nền tảng, hoàn thiện CRM lead/AI comment, và đưa vào vận hành pipeline đẩy sự kiện sang CheckEvent.

~78
commit trong tuần
5
dự án hoạt động
2
đợt chuẩn hoá DB lớn
2
nền tảng crawler mới (Threads, Etsy)

Khối lượng commit theo dự án:

27
chicgo_data DB
24
chic_crm CRM
17
chicdata_dashboard Báo cáo
9
checkevent_data Sự kiện
1
chicnchill_data

1. Cơ sở dữ liệu cải tiến gì? — trọng tâm của tuần

Trong tuần đã thực hiện hai đợt chuẩn hoá schema lớn trên kho dữ liệu địa điểm (chicgo_data + chicdata_dashboard dùng chung 1 Postgres production). Triết lý xuyên suốt: mỗi loại dữ liệu chỉ có duy nhất một nơi lưu và một hàm chuẩn hoá (single source of truth), giảm trùng lặp và loại bỏ logic xử lý rẽ nhánh.

Nguyên tắc an toàn được áp dụng: mọi migration đều theo kiểu cộng thêm trước (additive) → backfill → mới drop cột cũ; có backup pg_dump trước mỗi lần cutover; và mọi ghi/xuất dữ liệu đều bị validator (JSON Schema + kiểm tra ràng buộc) chặn nếu sai. Đảm bảo không mất dữ liệu.

1.1 Chuẩn hoá schema địa điểm 03/06

Gom các trường rời rạc, đặt tên gây hiểu lầm về một cột chuẩn duy nhất:

Khái niệmTrước đâySau khi cải tiếnLợi ích
Giờ mở cửa 2 cột text: opens_at + opening_hours 1 cột JSONB opens_at = {raw, is_24h, schedule Mon–Sun} Lịch đã parse sẵn; gộp thông minh, không mất lịch chi tiết khi recrawl
Danh mục phụ 3 nguồn rải rác: fsq_category_ids, sub_segments, google_categories 1 cột sub_categories (gộp & khử trùng) — đã chuyển 9.165 dòng Tên cũ gây hiểu lầm; nay thống nhất, không mất dữ liệu khi recrawl
Website & liên kết 2 trường: website + bd_links 1 mảng JSONB links [{url, label, added_by}] Một danh sách duy nhất, khử trùng theo URL, giữ nguồn gốc (crawler/BD/user)
Khu vực hành chính text thô admin_division chuẩn hoá administrative_area theo quốc gia Lọc/nhóm theo địa giới chính xác hơn
Trường thô cột raw (payload tuỳ ý) đã bỏ hẳn Các trường có cấu trúc đã đủ; giảm rác lưu trữ
Đánh giá (reviews) tách theo nguồn (v1/v2, community) 1 mảng reviews[] duy nhất Đơn giản hoá, một nguồn sự thật cho review

1.2 Schema giá hợp nhất (Unified Price Schema) 07–08/06

Đợt cải tiến lớn nhất: trước đây giá nằm rải ở 4 nơi khác nhau (bảng quan hệ prices, price_range của Google, hotel_prices của OTA, price_sources của ShopeeFood) với mỗi nơi một định dạng. Nay gom tất cả về một cột JSONB places.prices theo một cấu trúc cây PriceItem đệ quy duy nhất.

Tài liệu thiết kế & kế hoạch đi kèm: docs/.../2026-06-07-unified-price-schema-design.md và plan tương ứng. Backup: backups/pre_unified_price_20260608-092936.dump.

2. Báo cáo cho chị (Dashboard) — chicdata_dashboard

Đây là công cụ báo cáo trực quan để chị theo dõi dữ liệu & hiệu suất. Tuần này dashboard được nâng cấp đáng kể về cả số liệu lẫn UI/UX:

Báo cáo dạng file để chị xem & đối chiếu

3. Chic CRM — lead intelligence & AI comment

Nền tảng tự crawl Facebook Groups + Threads.com, chấm điểm lead bằng AI và quản lý pipeline bán hàng. Tuần này:

4. CheckEvent Data — pipeline đẩy sự kiện

ETL crawl sự kiện từ các sàn vé (TicketGo, Ticketbox) và đẩy sang API CheckEvent. Tuần này đưa vào vận hành tự động:

5. ChicnChill Data — crawler quà tặng/decor

Tổng kết & định hướng

Điểm nhấn tuần: nền tảng dữ liệu đã được chuẩn hoá triệt để (giá, giờ mở cửa, danh mục, liên kết về một mối duy nhất, có validator chặn lỗi). Đây là nền móng để báo cáo & dashboard cho chị chạy chính xác và dễ mở rộng về sau.

Theo dõi tiếp: sau khi cutover schema giá, cần tiếp tục giám sát dashboard & các export đọc đúng cây places.prices (vì DB và dashboard dùng chung Postgres production, mọi thay đổi schema phải đổi code + redeploy đồng bộ).