尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证制作者的介绍仅有上面的一句话。 更多详情请阅读仓库 README。 仓库 README ↗
正在加载完整 README。
查看完整 README ↗VietNomNom giúp bạn trả lời câu hỏi muôn thuở "hôm nay ăn gì, ăn ở đâu". Bạn chỉ cần gõ như đang nói chuyện, ví dụ "bún bò quận 3 dưới 50k" hay "nhóm 5 người, tối nay, lẩu 150k/người", và web sẽ gợi ý quán dựa trên đánh giá thật của thực khách, không phải quảng cáo.
🌐 Dùng thử: https://project-smart-food-recommendation-f.vercel.app
Hơn 5.500 quán ở Hà Nội, TP.HCM, Đà Nẵng và nhiều tỉnh khác, với hơn 26.000 review đã được AI đọc và tóm tắt.
Không cần chọn từng bộ lọc. Web tự hiểu món, khu vực, mức giá, buổi trong ngày và số người trong câu bạn gõ, kể cả khi gõ không dấu ("bun bo q3"). Có vị trí của bạn thì quán gần được ưu tiên trước.
Trợ lý trò chuyện nổi ở mọi trang, nhớ ngữ cảnh: hỏi tiếp "rẻ hơn đi" hay "còn quán nào khác" là trợ lý sửa lại kết quả cũ. Trợ lý hiểu "tối nay" là phải còn mở cửa lúc tối, "nhóm 5 người" thì nhắc gọi đặt bàn trước. Khi chỉ còn ít quán, trợ lý nói rõ đã lọc theo điều kiện nào. Khi chưa có dữ liệu, trợ lý nói thẳng là chưa có thay vì bịa.
Mỗi quán có phần tóm tắt món ăn, giá, phục vụ, không gian, vệ sinh, chỗ để xe: khía cạnh nào được khen, bị chê hay ý kiến còn chia đôi, kèm câu trích nguyên văn từ review. Bạn biết quán này "ngon nhưng chỗ để xe chật" chỉ trong vài giây.
Ngay trong trang quán, hỏi "giá ở đây thế nào?" hay "có chỗ đậu ô tô không?" và nhận câu trả lời dựa trên review thật. Có sẵn câu hỏi gợi ý để bấm, không cần nghĩ cách hỏi.
Điểm được hiệu chỉnh theo số lượt đánh giá, nên quán chỉ có vài review 10 điểm không vượt được quán đã giữ chất lượng qua hàng trăm lượt. Mọi nơi trên web (thẻ quán, trang chi tiết, trợ lý AI) hiện cùng một con số, và điểm gốc bên Foody vẫn được ghi rõ để đối chiếu.
Chụp hoặc tải ảnh món ăn lên, AI nhận ra món (phở, bún, bánh mì, gỏi cuốn, bột chiên) rồi gợi ý quán bán món đó. Ảnh chưa rõ thì AI gợi ý các món gần giống để bạn bấm chọn.
Trang chủ gợi ý quán đang mở cửa, hợp với bữa hiện tại (sáng, trưa, chiều, tối, khuya) và gần bạn. Còn phân vân thì bấm 🎲 "Hôm nay ăn gì?" để web bốc ngẫu nhiên một quán phù hợp. Mỗi quán hiện trạng thái thời gian thực: đang mở, sắp đóng cửa, hay mấy giờ mở lại.
Website (Next.js, Vercel) → API (NestJS, Render) → AI service (FastAPI, Hugging Face) → MongoDB Atlas
Toàn bộ AI (hiểu câu hỏi, xếp hạng, đọc review, nhận diện ảnh) dùng model mã nguồn mở chạy trong AI service. Chi tiết kỹ thuật nằm ở các repo:
Dữ liệu quán và review được thu thập từ Foody.vn cho mục đích học tập. Mỗi trang quán đều có link về nguồn gốc.
Công nghệ: Next.js 16 (App Router), React 19, TypeScript strict, Tailwind v4 cho phần chat, Leaflet + leaflet-routing-machine (OpenStreetMap / OSRM), axios.
cp .env.example .env.local # NEXT_PUBLIC_API_URL = địa chỉ Backend, NEXT_PUBLIC_SITE_URL = địa chỉ web
npm install
npm run dev # http://localhost:3000
npm run build && npx tsc --noEmit && npm run lint
Một vài quy ước trong code:
app/lib/api.ts là nơi duy nhất gọi Backend. Client tự refresh token khi gặp 401, và thay mọi điểm bằng điểm đã
hiệu chỉnh (điểm gốc giữ ở rawScores).app/lib/i18n.ts, đọc qua useTranslation().Math.random(), Date.now() hay localStorage trong lần render đầu,
nếu không sẽ gặp lỗi hydration #418.images.remotePatterns lẫn imageHosts của Content-Security-Policy trong
next.config.ts.Triển khai: xem DEPLOY.md.