Tất cả dự án
Full-stack · Nền tảng nhượng quyền cà phê

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á sản phẩm
Khám phá sản phẩm
Trọng tâmVận hành chuỗi nhượng quyền
Loại dự ánDự án mô phỏng tại FPT Software · 06-08/2026
Công nghệ
ReactNestJSgRPCTypeScriptPostgreSQLPrismaKafkaJestDockerGitLab CI/CD
Vai trò của tôiThành viên phát triển full-stack · Dự án mô phỏng tại FPT Software
Phạm vi phụ tráchĐóng góp vào các dịch vụ Warehouse, Inventory, Supplier và Franchise trong hệ thống có sẵn 13 dịch vụ; phạm vi gồm NestJS API, bốn Prisma schema và các giao diện React liên quan.
Bài toánĐơn online, bán hàng tại quầy, giao hàng chặng cuối và điều chuyển kho liên quan đến nhiều vai trò cùng các nguồn tồn kho khác nhau. Hệ thống cần phân quyền theo vai trò, chi nhánh rõ ràng và theo dõi được thay đổi của đơn hàng lẫn tồn kho.
Kết quảKết nối quy trình giữa các dịch vụ qua gRPC và Kafka trong nhóm Scrum ba thành viên.
Đóng góp cá nhân

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

Thành viên phát triển full-stack · Dự án nhóm

  1. 01

    Danh tính & phiên

    Đóng góp vào các service Warehouse, Inventory, Supplier và Franchise trong hệ thống có sẵn 13 service.

  2. 02

    Giao tiếp delivery

    Thiết kế NestJS API và bốn Prisma schema, đồng thời xây dựng các giao diện React liên quan.

  3. 03

    Độ tin cậy sự kiện

    Triển khai giao tiếp giữa service qua gRPC và luồng sự kiện Kafka; sử dụng Jest, Docker và GitLab CI/CD.

01

Tổng quan

eCoffee kết nối khách hàng với đội ngũ vận hành chuỗi cà phê trên cùng một nền tảng. Khách xem thực đơn, đặt món, thanh toán và dùng ưu đãi; nhân viên xử lý bán hàng tại quầy và hoàn tất đơn; quản lý phụ trách tồn kho, nhà cung cấp; admin theo dõi chính sách và báo cáo toàn chuỗi.

02

Bài toán

Đơn online, bán hàng tại quầy, giao hàng chặng cuối và điều chuyển kho liên quan đến nhiều vai trò cùng các nguồn tồn kho khác nhau. Hệ thống cần phân quyền theo vai trò, chi nhánh rõ ràng và theo dõi được thay đổi của đơn hàng lẫn tồn kho.

03

Giải pháp kỹ thuật

01

Dùng gRPC cho hợp đồng gọi service đồng bộ

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

Phân công và theo dõi giao hàng cần phản hồi trực tiếp; hợp đồng protobuf làm rõ cấu trúc request và response.

Đánh đổi

Caller phụ thuộc vào độ sẵn sàng của service và hợp đồng tương thích, nên timeout và kỷ luật version rất quan trọng.

02

Kết hợp outbox với Kafka giao ít nhất một lần

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

Bản ghi đơn hàng và outbox event dùng chung transaction cục bộ; luồng outbox/inbox chịu được Kafka gửi trùng mà không cần distributed transaction.

Đánh đổi

Sự kiện có thể được gửi lại nên consumer cần khử trùng lặp và xử lý idempotent; thiết kế ưu tiên khả năng khôi phục thay vì tuyên bố exactly-once.

03

Để mỗi service sở hữu dữ liệu vận hành

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

Order, Delivery, Warehouse và Inventory sở hữu các bản ghi riêng; tham chiếu liên service đi qua ID và event, không phải foreign key liên cơ sở dữ liệu.

Đánh đổi

Ranh giới sở hữu giảm phụ thuộc ngầm, nhưng đòi hỏi mô tả rõ workflow và compensation giữa các service.

04

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

Đặt món online, nhận tại quán, giao hàng & PayOS
Tài khoản, loyalty, 2FA & trợ lý Cofi
POS cho nhân viên, vòng đời đơn hàng & theo dõi giao hàng
Tồn kho, nhà cung cấp, mua hàng & điều chuyển giữa cửa hàng
05

Tổng quan hệ thống

Kiến trúc mục tiêu theo tài liệueCoffee
Mục tiêu · xác minh một phần

REST gateway tiếp nhận request công khai. gRPC dùng cho lời gọi đồng bộ giữa service; Kafka chuyển sự kiện bất đồng bộ.

Ứng dụng khách, nhân viên & POS

HTTPS · REST / JSON

Kong API Gateway

Định tuyến đến service phụ trách

Order · Inventory · Delivery

Mẫu tin cậy bất đồng bộ

Transactional outbox → Kafka → inbox

Định hướng kiến trúc · prototype một phần

DB Order + outbox

poll / publish

Outbox relay

event bất đồng bộ

Kafka topics

nhận / khử trùng

Inbox của consumer

Tài liệu ghi nhận outbox/inbox và mức độ áp dụng liên service mới một phần hoặc chưa xác minh; đây không phải cam kết exactly-once.

Mỗi service sở hữu database logic và migration riêng.gRPC cho gọi đồng bộ · Kafka cho event bất đồng bộ.

Sơ đồ phản ánh tài liệu kiến trúc bạn gửi. Tài liệu mô tả catalog service mục tiêu và ghi rõ một số luồng liên service mới triển khai một phần hoặc chưa xác minh.

06

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

The CV describes this as a training mock project and names the four services and tools used; this page presents team scope without assigning the whole system to one person.
CV mô tả đây là dự án mô phỏng trong chương trình đào tạo, nêu rõ bốn service và công cụ đã dùng; trang này giữ đúng phạm vi làm việc nhóm, không nhận toàn bộ hệ thống là đóng góp cá nhân.
07

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

eCoffee là hệ thống nhiều vai trò: trải nghiệm khách hàng và vận hành cửa hàng cùng dựa trên trạng thái đơn hàng, tồn kho. Phân tách từng luồng theo người dùng và phạm vi giúp làm rõ ranh giới giữa chuỗi, chi nhánh và kho hàng.

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

Digital E

Cửa hàng điện tử và bảng điều khiển vận hành, kết nối tìm kiếm, thanh toán và quản lý đơn hàng.

Khám phá dự án