Kanban Board - Phân chia công việc (Hackathon 1.5h)
⏱️ Chỉ có 1.5 giờ — Mỗi người làm 3 task, tổng 9 task. Không WebSocket, không message queue, không CI/CD, không testing riêng. Chỉ REST API đơn giản, polling để cập nhật trạng thái.
Dự án được chia thành 3 module độc lập, mỗi người phụ trách 1 module. Các module giao tiếp qua API contract đã thống nhất trước.
Tổng quan phân chia
👤 Person A — Frontend (Chat UI)
🔨 To Do
React component: ô nhập tin nhắn + danh sách messages. Hiển thị bubble user (phải) và AI (trái). Dùng state đơn giản, không cần phức tạp.
⏱️ ~40 phút
POST /api/chat gửi message, nhận response từ AI. Hiển thị loading spinner khi chờ. Xử lý error cơ bản (try-catch, hiển thị thông báo lỗi).
⏱️ ~25 phút
Khi AI tự động resolve, hiển thị một giao diện giống như Git Diff để bộ phận CSKH review (Giả lập PR). Hiển thị giá trị DB DB trước và sau khi thay đổi, kèm nút Approve / Reject.
⏱️ ~25 phút
🚀 In Progress
Chưa có task nào đang thực hiện
✅ Done
Chưa có task nào hoàn thành
👤 Person B — AI Agent & Knowledge Base
🔨 To Do
Tạo file knowledge_base.json chứa 5-10 case mẫu. Mỗi case gồm: keywords, problem, solution, db_changes. Không cần vector DB — dùng keyword matching đơn giản.
⏱️ ~20 phút
Hàm analyze_message(message): gọi LLM API (OpenAI/Claude) với prompt chứa context từ KB. Prompt yêu cầu LLM trả về JSON: {intent, matched_case, solution, confidence, db_changes}.
⏱️ ~40 phút
Hàm search_kb(message): tìm case tương tự bằng keyword matching. Truyền kết quả vào prompt LLM để AI đề xuất giải pháp chính xác hơn. Trả về structured response cho Backend.
⏱️ ~30 phút
🚀 In Progress
Chưa có task nào đang thực hiện
✅ Done
Chưa có task nào hoàn thành
👤 Person C — Backend & Giả lập PR
🔨 To Do
Setup Express.js hoặc FastAPI. Một endpoint POST /api/chat xử lý nhận message và endpoint phụ để quản lý trạng thái Diff: POST /api/resolve-pr. CORS enabled.
⏱️ ~25 phút
Khi AI trả về confidence > 0.8 + có db_changes: thay vì dùng GitHub API, backend record mock PR vào file JSON và trả before_value, after_value ngược lại cho Frontend để Frontend render giao diện Review.
⏱️ ~40 phút
Khi AI trả về confidence ≤ 0.8 hoặc không match KB: trả response "đã chuyển đội CSKH". Ghi log case mới vào file JSON (thay cho DB) để demo luồng fallback.
⏱️ ~25 phút
🚀 In Progress
Chưa có task nào đang thực hiện
✅ Done
Chưa có task nào hoàn thành
API Contract (Tối giản)
Chỉ cần 2 endpoint cho Frontend ↔ Backend, và 1 function call cho Backend → AI:
| Interface | From → To | Kiểu | Mô tả |
|---|---|---|---|
POST /api/chat | Frontend → Backend | REST | Gửi message, nhận AI response + diff để review |
POST /api/resolve-pr | Frontend → Backend | REST | Approve hoặc Reject giả lập PR |
analyze_message() | Backend → AI Agent | Function call | Gọi trực tiếp (cùng server hoặc import module) |
search_kb() | AI Agent → KB | Function call | Đọc file JSON, keyword matching |