Tất cả dự án
Full-stack · Nền tảng công thức

Food Recipes

Không gian bếp cá nhân để khám phá công thức, lên kế hoạch bữa ăn, quản lý mua sắm và nguyên liệu.

Bảng điều khiển bếp
Bảng điều khiển bếp
Trọng tâmCông thức, kế hoạch & quy trình bếp
Loại dự ánDự án cá nhân · 09/2023 - Hiện tại
Công nghệ
ReactNestJSPostgreSQLTypeScriptPrismaRedux ToolkitTanStack QueryTailwind CSSDockerPlaywright
Vai trò của tôiLập trình viên full-stack · Dự án cá nhân
Phạm vi phụ tráchState ứng dụng React và luồng công thức; API NestJS có version, xác thực và lưu trữ dữ liệu.
Bài toánLưu công thức chỉ là một phần của chuẩn bị bữa ăn. Kế hoạch, nguyên liệu, tồn kho và tiến độ nấu cần liên kết với nhau; ghi chú riêng và dữ liệu gia đình cần được phân quyền phù hợp.
Kết quảHoàn thiện các luồng công thức, kế hoạch bữa ăn, mua sắm, kho bếp và hộ gia đình; frontend và API được triển khai riêng.
Đóng góp cá nhân

Phần việc tôi phụ trách

Phát triển full-stack · Dự án cá nhân

  1. 01

    Quy trình bếp

    Xây dựng ba luồng liên kết gồm kế hoạch bữa ăn, danh sách mua sắm và quản lý kho bếp bằng React và TanStack Query.

  2. 02

    API & xác thực

    Thiết kế schema PostgreSQL gồm 41 model và REST API NestJS với xác thực JWT, luân phiên refresh token và phân quyền theo vai trò.

  3. 03

    Frontend & triển khai

    Phát triển ứng dụng React/TypeScript với Redux Toolkit, TanStack Query; API được triển khai riêng.

01

Tổng quan

Food Recipes là nền tảng nấu ăn kết hợp giao diện và máy chủ. Giao diện React và TypeScript dùng Redux Toolkit, TanStack Query; REST API NestJS có phiên bản lưu dữ liệu trong PostgreSQL qua Prisma.

02

Bài toán

Lưu công thức chỉ là một phần của chuẩn bị bữa ăn. Kế hoạch, nguyên liệu, tồn kho và tiến độ nấu cần liên kết với nhau; ghi chú riêng và dữ liệu gia đình cần được phân quyền phù hợp.

03

Giải pháp kỹ thuật

01

Xoay refresh credential trong HttpOnly cookie

Vì sao chọn cách này

API xoay vòng refresh cookie có thuộc tính HttpOnly, mã hóa phiên và thu hồi cả nhóm token khi phát hiện token bị tái sử dụng.

Đánh đổi

Xoay vòng giới hạn ảnh hưởng khi token lộ, nhưng các request refresh đồng thời cần được điều phối để tránh gửi lại token đã xoay.

02

Để API quản lý vòng đời refresh session

Vì sao chọn cách này

Xác thực và phiên làm việc được quản lý phía sau API NestJS có phiên bản; giao diện sử dụng các luồng REST đã xác thực.

Đánh đổi

Ranh giới bảo mật rõ hơn đồng nghĩa API phải xử lý xoay vòng, thu hồi khi tái sử dụng, logout và lưu session.

03

Tách trách nhiệm state từ server và state giao diện

Vì sao chọn cách này

TanStack Query quản lý dữ liệu từ API; Redux Toolkit tổ chức state quy trình phía frontend.

Đánh đổi

Hai công cụ quản lý trạng thái cần quy ước rõ ràng; nhờ đó không trộn bản ghi máy chủ đã lưu đệm với trạng thái giao diện tạm thời.

04

Tính năng sản phẩm

Khám phá công thức có tìm kiếm và đăng bài
Bộ sưu tập, đánh giá và ghi chú riêng
Kế hoạch bữa ăn, danh sách mua sắm và kho bếp
Chia sẻ hộ gia đình, tiến độ nấu và lịch sử
05

Tổng quan hệ thống

Kiến trúc đối chiếu sourceFood Recipes
Cấu trúc theo mã nguồnKho mã nguồn ↗

Ứng dụng React dùng NestJS REST API có version cho công thức, kế hoạch bữa ăn, kho bếp và hộ gia đình.

React + TypeScript

REST / JSON

NestJS REST API · /api/v1

Truy vấn Prisma

PostgreSQL + Prisma

Tải ảnh trực tiếp

Signed upload grant → object storage

Giao diện chạy trên Vercel, còn API NestJS được đóng gói container và triển khai riêng.

06

Bằng chứng & kiểm chứng

README phân biệt hành trình trình duyệt dùng dữ liệu mô phỏng với kiểm thử chấp nhận trên API và cơ sở dữ liệu thật.
Kiểm tra website đang hoạt động ngày 10/10/2026 với “oats” trả về 3 công thức phù hợp. Kết quả này chỉ xác nhận truy vấn đó và còn phụ thuộc vào danh mục trực tuyến.
07

Những điểm cần cân nhắc

Kho mã nguồn tách giao diện chạy trên Vercel và API NestJS dạng container thành các gói độc lập. Tài liệu kiểm tra phân biệt luồng trình duyệt dùng dữ liệu mô phỏng với kiểm thử chấp nhận trên API và cơ sở dữ liệu thật.

Khám phá dự án khác

Liên hệ

Bạn có ý tưởng muốn trao đổi?

Tôi quan tâm đến các vị trí kỹ sư phần mềm có phạm vi full-stack. Kinh nghiệm của tôi trải dài từ giao diện, dịch vụ backend và dữ liệu đến kiểm thử, triển khai. Hãy cùng trao đổi về đội ngũ, sản phẩm hoặc bài toán kỹ thuật của bạn.

Kết nối với tôi
Dự án tiếp theo

eCoffee

Nền tảng chuỗi cung ứng cho nhượng quyền cà phê, kết nối đặt món trực tuyến, bán hàng tại quầy, giao nhận và tồn kho.

Khám phá dự án