ĐĂNG NHẬP
OMNIMER FOOD là một ứng dụng di động kết hợp giữa việc dạy nấu ăn và quản lý dinh dưỡng cá nhân hóa.
Vấn đề giải quyết: Khắc phục hạn chế của các ứng dụng hiện tại (thiếu tính cá nhân hóa, không cảnh báo dinh dưỡng cho người bệnh) và hỗ trợ người dùng thiếu kiến thức nấu ăn/dinh dưỡng.
Mục tiêu chính: Giúp người dùng (đặc biệt là sinh viên, người đi làm) tự nấu ăn ngon, an toàn và kiểm soát chế độ ăn uống khoa học dựa trên hồ sơ sức khỏe (tiểu đường, cao huyết áp, dị ứng...).
Công nghệ nổi bật: Ứng dụng tích hợp Trí tuệ nhân tạo (AI) với mô hình YOLO để nhận diện món ăn và kỹ thuật RAG để tư vấn dinh dưỡng.
A. Chức năng Chung (Bảo mật & Hệ thống)
Đăng ký/Đăng nhập: Quản lý tài khoản người dùng.
Xác thực bảo mật: Sử dụng cơ chế JWT và xác thực hai lớp (2FA) qua mã OTP (Email) để bảo vệ tài khoản.
B. Chức năng cho Người dùng (User)
Học nấu ăn:
Tìm kiếm món ăn theo tên, danh mục hoặc hình ảnh (sử dụng AI).
Xem hướng dẫn chi tiết từng bước (kèm video minh họa) và thành phần dinh dưỡng.
Quản lý bữa ăn:
Tự tạo thực đơn, chọn món và nhập số lượng thực phẩm đã tiêu thụ.
Xem lịch sử ăn uống theo thời gian.
Quản lý Sức khỏe & Dinh dưỡng:
Lập hồ sơ sức khỏe cá nhân (thể trạng, bệnh lý, dị ứng).
Cảnh báo thông minh: Tự động tính toán và thông báo nếu bữa ăn vượt ngưỡng an toàn dinh dưỡng cho phép.
Trợ lý AI: Tư vấn chế độ ăn uống và nhận diện món ăn từ hình ảnh tải lên.
C. Chức năng cho Quản trị viên (Admin)
Quản lý người dùng: Xem danh sách, thêm/sửa/khóa tài khoản, phân quyền.
Quản lý nội dung: Kiểm duyệt, thêm mới, chỉnh sửa công thức món ăn, nguyên liệu và danh mục.
Thống kê & Báo cáo (Dashboard): Theo dõi số lượng người dùng, món ăn, lượt truy cập và xử lý các báo cáo vi phạm.
Dự án được xây dựng theo kiến trúc clean architecture và ứng dụng nhiều công nghệ hay nên có thể mua về để học và tìm hiểu ngoài ra còn đạt được điểm cao trên 9
XEM THÊM ==> Hướng dẫn cài đặt chi tiết
Chào mừng đến với dự án OMNIMER FOOD. Tài liệu này hướng dẫn chi tiết các bước thiết lập môi trường phát triển (Development Environment) để đảm bảo hệ thống vận hành chính xác.
Trước khi khởi chạy dự án, cần đảm bảo các công cụ nền tảng dưới đây đã được cài đặt.
Yêu cầu cho: src/cheff_backend
src/cheff_backend
Cài đặt Python: Tải phiên bản mới nhất từ python.org.
Lưu ý: Khi cài đặt, bắt buộc tích vào ô "Add Python to PATH".
Tạo môi trường ảo (venv): Mở Terminal (CMD hoặc PowerShell) và chạy lệnh:
cd d:\Project\omnimerFood\src\cheff_backend python -m venv venv
Kích hoạt môi trường:
Windows (CMD): venv\Scripts\activate
venv\Scripts\activate
Windows (PowerShell): .\venv\Scripts\Activate.ps1
.\venv\Scripts\Activate.ps1
Dấu hiệu thành công: Xuất hiện chữ (venv) ở đầu dòng lệnh.
(venv)
2. Setup Ollama (Local AI) Chạy mô hình Llama 3 tại máy cục bộ. Tải xuống: Truy cập ollama.com và tải bản cài đặt cho Windows. Tải Model: Mở terminal và chạy lệnh: Bash ollama pull llama3.1:8b Kiểm tra: Truy cập trình duyệt tại địa chỉ http://localhost:11434. Nếu hiện thông báo "Ollama is running" là thành công. 3. Cấu hình MongoDB Atlas (Cơ sở dữ liệu) Đăng ký tài khoản và đăng nhập tại MongoDB Atlas. Tạo Cluster: Chọn gói M0 Free > Chọn Region (Singapore) > Nhấn Create. Tạo Database User: Vào mục Database Access > Add New Database User > Chọn quyền Read and write to any database. (Lưu lại Username và Password). Cấu hình IP: Vào mục Network Access > Add IP Address > Chọn Allow Access from Anywhere (0.0.0.0/0). Lấy chuỗi kết nối: Vào Database > Connect > Drivers > Copy chuỗi kết nối (dạng mongodb+srv://...). 4. Setup SMTP (Gmail) Dùng để gửi email xác thực OTP. Truy cập trang Bảo mật tài khoản Google. Bật tính năng Xác minh 2 bước (2-Step Verification). Tìm kiếm từ khóa "App passwords" (Mật khẩu ứng dụng) > Tạo mới với tên "OmnimerFood". Sao chép chuỗi ký tự được tạo ra (dùng cho biến SMTP_PASS). PHẦN 2: HƯỚNG DẪN CHẠY TỪNG MODULE 1. Node.js Backend (src/backend) Vai trò: Xử lý Logic chính, User, Dữ liệu món ăn. Di chuyển vào thư mục: Bash cd d:\Project\omnimerFood\src\backend Cấu hình biến môi trường (.env): Copy file .env.example và đổi tên thành .env. Điền các thông số: MONGO_URI: Chuỗi kết nối MongoDB (đã lấy ở Phần 1). SMTP_USER: Địa chỉ Gmail của bạn. SMTP_PASS: Mật khẩu ứng dụng (App Password) vừa tạo. JWT_SECRET: Tự đặt một chuỗi ký tự bí mật bất kỳ. Cài đặt và chạy: Bash npm install npm run dev 2. Cheff Backend (src/cheff_backend) Vai trò: Xử lý AI, RAG Chat, Gợi ý món ăn. Di chuyển vào thư mục: Bash cd d:\Project\omnimerFood\src\cheff_backend Cấu hình biến môi trường (.env): Copy file .env.example và đổi tên thành .env. Điền các thông số: MONGO_URI: Giống bên Node.js Backend. JWT_SECRET: Quan trọng - Phải giống hệt chuỗi JWT_SECRET bên Node.js Backend. OLLAMA_MODEL: llama3.1:8b Cài đặt và chạy: Bash # Kích hoạt venv (nếu chưa) venv\Scripts\activate # Cài đặt thư viện pip install -r requirements.txt # Chạy server uvicorn app.main:app --reload --port 8000 Link Swagger UI: http://localhost:8000/docs 3. Mobile App (src/mobile) Vai trò: Ứng dụng Flutter dành cho người dùng.
Chạy mô hình Llama 3 tại máy cục bộ.
Tải xuống: Truy cập ollama.com và tải bản cài đặt cho Windows.
Tải Model: Mở terminal và chạy lệnh:
ollama pull llama3.1:8b
Kiểm tra: Truy cập trình duyệt tại địa chỉ http://localhost:11434. Nếu hiện thông báo "Ollama is running" là thành công.
http://localhost:11434
Đăng ký tài khoản và đăng nhập tại MongoDB Atlas.
Tạo Cluster: Chọn gói M0 Free > Chọn Region (Singapore) > Nhấn Create.
Tạo Database User: Vào mục Database Access > Add New Database User > Chọn quyền Read and write to any database. (Lưu lại Username và Password).
Cấu hình IP: Vào mục Network Access > Add IP Address > Chọn Allow Access from Anywhere (0.0.0.0/0).
Lấy chuỗi kết nối: Vào Database > Connect > Drivers > Copy chuỗi kết nối (dạng mongodb+srv://...).
mongodb+srv://...
Dùng để gửi email xác thực OTP.
Truy cập trang Bảo mật tài khoản Google.
Bật tính năng Xác minh 2 bước (2-Step Verification).
Tìm kiếm từ khóa "App passwords" (Mật khẩu ứng dụng) > Tạo mới với tên "OmnimerFood".
Sao chép chuỗi ký tự được tạo ra (dùng cho biến SMTP_PASS).
SMTP_PASS
src/backend
Vai trò: Xử lý Logic chính, User, Dữ liệu món ăn.
Di chuyển vào thư mục:
cd d:\Project\omnimerFood\src\backend
Cấu hình biến môi trường (.env):
.env
Copy file .env.example và đổi tên thành .env.
.env.example
Điền các thông số:
MONGO_URI: Chuỗi kết nối MongoDB (đã lấy ở Phần 1).
MONGO_URI
SMTP_USER: Địa chỉ Gmail của bạn.
SMTP_USER
SMTP_PASS: Mật khẩu ứng dụng (App Password) vừa tạo.
JWT_SECRET: Tự đặt một chuỗi ký tự bí mật bất kỳ.
JWT_SECRET
Cài đặt và chạy:
npm install npm run dev
Vai trò: Xử lý AI, RAG Chat, Gợi ý món ăn.
cd d:\Project\omnimerFood\src\cheff_backend
MONGO_URI: Giống bên Node.js Backend.
JWT_SECRET: Quan trọng - Phải giống hệt chuỗi JWT_SECRET bên Node.js Backend.
OLLAMA_MODEL: llama3.1:8b
OLLAMA_MODEL
llama3.1:8b
# Kích hoạt venv (nếu chưa) venv\Scripts\activate # Cài đặt thư viện pip install -r requirements.txt # Chạy server uvicorn app.main:app --reload --port 8000
Link Swagger UI: http://localhost:8000/docs
http://localhost:8000/docs
src/mobile
Vai trò: Ứng dụng Flutter dành cho người dùng.