Một ứng dụng web ghi chú nhật ký kết hợp Trí tuệ Nhân tạo (AI). Hệ thống tự động phân tích nội dung người dùng nhập vào để trích xuất cảm xúc chính, tìm ra nguyên nhân cốt lõi làm xao động tâm trí, và đưa ra các lời khuyên thực hành chánh niệm (mindfulness) phù hợp.
Dự án được thiết kế với kiến trúc Microservices, đóng gói hoàn toàn bằng Docker để đảm bảo khả năng triển khai "1-click" trên mọi môi trường.
- Giao diện tối giản (Vanilla JS/CSS): Tập trung vào trải nghiệm viết nhật ký không phân tâm.
- Tích hợp n8n Workflow: Quản lý luồng xử lý AI (Prompt Engineering) tách biệt hoàn toàn khỏi code Backend.
- AI Analysis (Gemini 2.5): Phân tích ngôn ngữ tự nhiên, trả về dữ liệu chuẩn JSON (Structured Output).
- Tự động lưu trữ (SQLite): Lưu giữ lịch sử nhật ký và kết quả quán chiếu từ AI.
- Containerization (Docker): Toàn bộ Frontend, Backend và hệ thống n8n được đóng gói và giao tiếp qua mạng nội bộ bảo mật.
Dự án gồm 3 dịch vụ (services) chạy song song:
- Frontend (Nginx): Phục vụ giao diện người dùng tại cổng
8080. - Backend (FastAPI): Xử lý API, lưu trữ vào SQLite và giao tiếp với n8n tại cổng
8000. - AI Engine (n8n): Orchestrator xử lý Prompt và gọi sang Google Gemini API tại cổng
5678.
- Đã cài đặt Docker và Docker Compose.
- Có sẵn 1 API Key của Google Gemini (Lấy miễn phí tại Google AI Studio).
Clone repository này về máy và chạy lệnh khởi tạo vũ trụ Docker:
git clone https://github.com/huynhtiennhat0403/ai-journal-tracker
cd ai-journal-tracker
docker compose up --build -dLần đầu tiên chạy hệ thống, bạn cần nạp luồng cấu hình AI vào n8n:
-
Truy cập vào http://localhost:5678 và tạo một tài khoản quản trị nội bộ.
-
Tại màn hình chính, chọn Import from File.
-
Chọn file n8n_setup/diary-demo.json có sẵn trong mã nguồn.
-
Mở node HTTP Request trong luồng vừa nạp, thay thế đoạn NHAP_API_KEY_CUA_BAN_VAO_DAY bằng Gemini API Key của bạn.
-
Nhấn vào button "Publish" góc trên bên phải của luồng.
- Giao diện Web: http://localhost:8080
- Tài liệu API (Swagger UI): http://localhost:8000/docs