Bối cảnh và vấn đề nghiên cứu
Khóa luận tốt nghiệp "Phát triển hệ thống đấu giá trực tuyến tích hợp ví MoMo dựa trên kiến trúc Microservice" do sinh viên Lê Đoàn (MSSV: 17520348), ngành Kỹ thuật Phần mềm, Trường Đại học Công nghệ Thông tin – Đại học Quốc gia TP. Hồ Chí Minh thực hiện năm 2022 dưới sự hướng dẫn của TS. Nguyễn Trịnh Đông.
Về bối cảnh thực tiễn, tác giả đặt đề tài trong bối cảnh cuộc Cách mạng công nghiệp lần thứ tư với sự phát triển của các công nghệ số như điện toán đám mây (Cloud Computing), dữ liệu lớn (Big Data), Internet vạn vật (IoT) và trí tuệ nhân tạo (AI). Hoạt động mua sắm trực tuyến tại Việt Nam ghi nhận sự phát triển liên tục; theo số liệu từ bài báo ngày 12/09/2022 trên VnEconomy được trích dẫn trong khóa luận, thương mại điện tử Việt Nam duy trì tốc độ tăng trưởng từ 16% đến 30% trong suốt 7 năm (riêng năm 2021 đạt mức 20% dù chịu ảnh hưởng của dịch bệnh). Với tỷ lệ 75% dân số sử dụng Internet, có 74,8% người dùng Internet tại Việt Nam tham gia mua sắm trực tuyến, tập trung vào các mặt hàng quần áo, giày dép, mỹ phẩm, đồ gia dụng, thiết bị công nghệ và thực phẩm.
Lý do chọn đề tài xuất phát từ việc các nền tảng thương mại điện tử lớn hiện nay đã định hình chuẩn mực về giao diện và nghiệp vụ mua bán truyền thống. Tác giả lựa chọn hướng tiếp cận bổ sung phương thức mua sắm thông qua hình thức đấu giá trực tuyến nhằm đa dạng hóa trải nghiệm mua sắm của người dùng, đồng thời vận dụng các kiến thức chuyên ngành kỹ thuật phần mềm (phân tích nghiệp vụ, mô hình hóa hệ thống và kiến trúc dịch vụ) vào một dự án thực tế.
Mục tiêu nghiên cứu của đề tài gồm bốn nội dung:
- Xây dựng giao diện hệ thống trực quan, thân thiện với người sử dụng.
- Tìm hiểu thói quen người dùng trên các nền tảng thương mại điện tử lớn từ khâu chọn hàng, thanh toán đến quản lý đơn hàng.
- Ứng dụng kiến thức tự nghiên cứu và hướng dẫn từ giảng viên để xây dựng sản phẩm phần mềm hoàn chỉnh, giải quyết bài toán đặt ra.
- Đáp ứng các yêu cầu chức năng nghiệp vụ: đăng ký tài khoản, xác thực đăng nhập; tìm kiếm sản phẩm qua từ khóa, cuộn trang hiển thị; tham gia đấu giá và theo dõi số lượng người tham gia theo thời gian thực; quản lý giỏ hàng và thanh toán sau khi thắng đấu giá; quản lý thông tin cá nhân (số điện thoại, địa chỉ, mật khẩu, ảnh đại diện); quản lý đơn hàng mua; quản lý sản phẩm đăng bán; quản lý phiên đấu giá; theo dõi tình trạng đơn đặt hàng và đơn bán.
Đối tượng và phạm vi nghiên cứu:
- Đối tượng nghiên cứu: Nghiệp vụ đấu giá thương mại điện tử, giải pháp thanh toán điện tử MoMo, kiến trúc phần mềm vi dịch vụ (Microservices) và các giao thức truyền thông liên dịch vụ.
- Phạm vi không gian và kỹ thuật: Hệ thống ứng dụng web được tối ưu hóa hiển thị cho màn hình máy tính có độ phân giải 1920x1080.
- Phạm vi thời gian: Đề tài được triển khai từ ngày 05/09/2022 đến ngày 22/12/2022.
Cơ sở lý thuyết và phương pháp
Khóa luận kết hợp giữa hệ thống cơ sở pháp lý tại Việt Nam và khung kiến trúc công nghệ kỹ thuật phần mềm hiện đại.
Cơ sở pháp lý được tác giả khảo cứu nhằm đảm bảo các luồng giao dịch phù hợp với quy định hiện hành:
- Luật Thương mại Việt Nam: Căn cứ xác định quyền và nghĩa vụ của bên mua, bên bán, quy định về cung ứng hàng hóa, xúc tiến thương mại và hoạt động trung gian thương mại (như ủy thác mua bán hàng hóa).
- Luật Đấu giá tài sản số 01/2016/QH14: Gồm 8 chương, 80 điều; tác giả tham khảo các nội dung tại Chương 3 (trình tự, thủ tục đấu giá), Chương 5 (chi phí, thù lao dịch vụ đấu giá) và Chương 6 (hủy kết quả đấu giá, bồi thường thiệt hại).
- Luật Giao dịch Điện tử: Gồm 8 chương, 54 điều; làm cơ sở xác định tính pháp lý của các giao dịch mua bán, xác thực và chứng từ số trên môi trường mạng.
Cơ sở công nghệ bao gồm:
- Kiến trúc Microservices: Tách nhỏ các dịch vụ độc lập về logic xử lý, tăng tính linh hoạt khi nâng cấp và hạn chế lỗi cục bộ lan truyền toàn hệ thống.
- Ngôn ngữ lập trình Go (Golang): Ngôn ngữ biên dịch do Google phát triển từ năm 2007 (Robert Griesemer, Rob Pike, Ken Thompson), hỗ trợ xử lý đồng thời hiệu năng cao thông qua cơ chế Goroutine, kênh truyền Channel và khóa Mutex.
- Thư viện ReactJS và MaterialUI: Xây dựng giao diện Single Page Application (SPA), tận dụng cơ chế Virtual DOM và hệ thống thành phần giao diện chuẩn hóa.
- Hệ quản trị cơ sở dữ liệu MySQL: Lưu trữ dữ liệu quan hệ cho các thực thể người dùng, sản phẩm, phiên đấu giá và đơn hàng.
- Nền tảng thanh toán ví điện tử MoMo: Giải pháp thanh toán trực tuyến của M_Service đạt chuẩn bảo mật quốc tế PCI DSS cấp độ Nhà cung cấp dịch vụ loại 1 (Service Provider Level 1), triển khai mô hình thanh toán qua mã QR Code.
Phương pháp nghiên cứu và phát triển phần mềm được áp dụng là phương pháp phân tích thiết kế hướng đối tượng:
- Kỹ thuật khai thác và phân tích yêu cầu nghiệp vụ phần mềm.
- Mô hình hóa hệ thống bằng các biểu đồ kỹ thuật: Sơ đồ phân rã tính năng (FDD), sơ đồ ca sử dụng (Use Case Diagram), sơ đồ hoạt động (Activity Diagram), sơ đồ tuần tự (Sequence Diagram) và lược đồ cơ sở dữ liệu quan hệ.
Thiết kế và triển khai
Hệ thống được thiết kế theo mô hình tách biệt giữa giao diện phía máy khách (Client) và máy chủ dịch vụ (Server):
| Thành phần |
Công nghệ / Nền tảng |
Vai trò và đặc tả kỹ thuật |
| Giao diện (Client) |
ReactJS, MaterialUI |
Ứng dụng Single Page Application; tối ưu cho độ phân giải màn hình 1920x1080; kết nối máy chủ qua HTTP Request. |
| Máy chủ (Server) |
Golang, Microservices |
Phân rã thành các dịch vụ độc lập xử lý nghiệp vụ; tích hợp API Gateway tập trung điểm cuối (endpoint). |
| Giao tiếp nội bộ |
gRPC Framework |
Giao tiếp giữa các vi dịch vụ phía máy chủ thông qua RPC hiệu năng cao do Google phát triển. |
| Cơ sở dữ liệu |
MySQL |
Lưu trữ tập trung dữ liệu toàn hệ thống do giới hạn về mặt nhân lực triển khai. |
| Thanh toán tích hợp |
MoMo Payment API |
Mô hình hiển thị và quét mã QR Code, xác thực giao dịch thời gian thực; hỗ trợ phương thức trả sau (COD). |
| Đóng gói & Quản lý |
Git, GitHub, Docker |
Quản lý mã nguồn trên GitHub; đóng gói dịch vụ bằng Dockerfile và Docker-compose phục vụ đưa lên Docker Swarm. |
Tiến độ thực hiện đề tài được phân kỳ rõ ràng qua 5 giai đoạn:
- 05/09/2022 – 17/09/2022: Nghiên cứu công nghệ thương mại điện tử, trao đổi với cán bộ hướng dẫn để xác định danh mục tính năng.
- 19/09/2022 – 29/10/2022: Xây dựng các API phía backend (chưa gồm MoMo và API Gateway), nghiên cứu cơ chế giao tiếp gRPC.
- 31/10/2022 – 26/11/2022: Xây dựng giao diện frontend, tích hợp API backend, nghiên cứu nghiệp vụ thanh toán MoMo và chuẩn bị báo cáo giữa kỳ.
- 28/11/2022 – 10/12/2022: Tích hợp thanh toán MoMo trên toàn hệ thống, tạo API Gateway, viết Dockerfile và Docker-compose cho Docker Swarm.
- 12/12/2022 – 22/12/2022: Hoàn thiện báo cáo khóa luận và hồ sơ bảo vệ tốt nghiệp.
Nội dung chính theo từng chương
Chương 1: Mở đầu
Chương này trình bày bối cảnh chung của nền công nghiệp 4.0, sự phát triển của thương mại điện tử tại thị trường Việt Nam cùng số liệu thống kê từ VnEconomy. Tác giả làm rõ lý do lựa chọn đề tài xuất phát từ nhu cầu bổ sung phương thức mua sắm đấu giá nhằm nâng cao trải nghiệm khách hàng. Mục tiêu hệ thống hướng đến tính thân thiện, trực quan và đáp ứng các luồng chức năng mua bán cơ bản. Chương 1 cũng nêu rõ tính mới của đề tài: cơ chế đấu giá theo dõi người tham gia theo thời gian thực, tích hợp ví điện tử MoMo, áp dụng kiến trúc Microservice viết bằng Golang và sử dụng gRPC để giao tiếp liên dịch vụ. Kế hoạch làm việc được lập cụ thể từ tháng 9/2022 đến tháng 12/2022.
Chương 2: Kiến thức cơ bản
Chương 2 cung cấp nền tảng kiến thức pháp lý và công nghệ. Về cơ sở luật, tác giả hệ thống hóa các quy định liên quan từ Luật Thương mại (quyền và nghĩa vụ bên mua - bên bán), Luật Đấu giá tài sản số 01/2016/QH14 (quy trình đấu giá, hủy kết quả) và Luật Giao dịch Điện tử (tính pháp lý của giao dịch trực tuyến). Về công nghệ, tác giả phân tích bảng so sánh ưu - nhược điểm giữa kiến trúc Monolithic và Microservice, giới thiệu các đặc tính của ngôn ngữ Golang (Goroutine, kênh Channel, khóa Mutex, loại bỏ kế thừa và quá tải toán tử để tối ưu sự đơn giản). Chương này cũng giới thiệu hệ quản trị MySQL, thư viện ReactJS với cơ chế DOM ảo. Cuối chương là phân tích giải pháp thanh toán ví MoMo (đạt hơn 31 triệu người dùng năm 2022, chiếm hơn 80% thị phần thanh toán kỹ thuật số, đạt chuẩn PCI DSS), so sánh MoMo với ZaloPay và ShopeePay để luận giải lý do lựa chọn mô hình thanh toán qua mã QR Code.
Chương 3: Phân tích thiết kế hệ thống
Chương 3 là trọng tâm phân tích kỹ thuật của khóa luận với bảng phân rã chức năng gồm 24 tính năng chi tiết thuộc các nhóm: quản lý tài khoản, quản lý thông tin cá nhân và địa chỉ, quản lý sản phẩm, quản lý phiên đấu giá, quản lý đơn hàng/thanh toán, và quy trình đấu giá. Tác giả đặc tả 10 Use Case chính cùng hệ thống 21 quy tắc nghiệp vụ (Business Rules - BR):
- BR1 đến BR5: Ràng buộc tài khoản và mật khẩu (mật khẩu tối thiểu 6 ký tự không chứa dấu cách, email duy nhất, không để trống trường đăng nhập, mật khẩu mới không trùng mật khẩu cũ).
- BR6 đến BR9: Ràng buộc thông tin cá nhân và địa chỉ (ngày sinh không vượt quá ngày hiện tại, tên shop không để rỗng, chỉ có duy nhất 1 địa chỉ mặc định và không được xóa).
- BR10 đến BR12: Ràng buộc sản phẩm (giá tối đa không nhỏ hơn giá khởi điểm, mã đơn hàng là duy nhất, mô tả chi tiết không để rỗng).
- BR13 đến BR15: Ràng buộc phiên đấu giá (bước giá phải lớn hơn 0 và nhỏ hơn giá tối đa; thời gian bắt đầu lớn hơn hoặc bằng thời gian hiện tại và nhỏ hơn thời gian kết thúc; cấm sửa/xóa phiên khi đang có người tham gia).
- BR16 đến BR17: Ràng buộc đơn hàng (hủy đơn khi khách không nhận hàng và trừ điểm uy tín; tự ý hủy đơn bị trừ 5 điểm uy tín).
- BR18 đến BR21: Ràng buộc đấu giá (số dư ví phải lớn hơn hoặc bằng giá trị tối thiểu của sản phẩm; điểm uy tín dưới 80/100 không được tham gia đấu giá; người đang trả giá cao nhất không được đặt tiếp cho đến khi có người trả giá cao hơn; người thắng cuộc bắt buộc thanh toán nếu không sẽ bị trừ 5 điểm uy tín).
Chương 3 cũng trình bày chi tiết sơ đồ phân rã chức năng (FDD), các sơ đồ ca sử dụng tổng quát và phân rã, các sơ đồ hoạt động (Activity Diagram), sơ đồ tuần tự (Sequence Diagram) cho quy trình nhập hàng, đấu giá, thanh toán COD, thanh toán qua ví MoMo, và lược đồ cơ sở dữ liệu quan hệ (Hình 3.37).
Chương 4: Triển khai hệ thống
Chương này trình bày kết quả hiện thực hóa toàn bộ các màn hình chức năng của hệ thống dựa trên thiết kế ở Chương 3. Nội dung bao gồm 8 quy trình triển khai:
- Quy trình quản lý tài khoản (màn hình đăng ký, đăng nhập).
- Quy trình quản lý thông tin cá nhân (cập nhật hồ sơ, đổi mật khẩu).
- Quy trình quản lý địa chỉ giao hàng (danh sách địa chỉ, thêm mới, sửa, xóa, thiết lập địa chỉ mặc định).
- Quy trình quản lý mặt hàng (thêm mới sản phẩm với tối đa 6 hình ảnh, tạo các tùy chọn kích thước, màu sắc, chỉnh sửa và cập nhật).
- Quy trình quản lý phiên đấu giá (tạo phiên mới từ sản phẩm có sẵn, chọn ảnh đại diện, thiết lập bước giá và thời gian, cập nhật/xóa phiên).
- Quy trình quản lý đơn đặt hàng và mua hàng (theo dõi trạng thái đơn hàng của khách, hủy đơn, cập nhật trạng thái vận chuyển).
- Quy trình đấu giá trực tuyến (màn hình danh sách phiên đang diễn ra, giao diện phòng đấu giá hiển thị danh sách người tham gia và mức giá theo thời gian thực, thông báo người chiến thắng).
- Quy trình thanh toán (giao diện chọn hình thức thanh toán COD hoặc quét mã QR MoMo, màn hình thông báo kết quả giao dịch và chi tiết đơn hàng sau thanh toán). Toàn bộ chương có 33 hình chụp giao diện thực tế (từ Hình 4.1 đến Hình 4.33).
Chương 5: Kết luận
Chương 5 tổng kết toàn bộ kết quả nghiên cứu và phát triển phần mềm, đối chiếu với các mục tiêu ban đầu, chỉ ra các mặt hạn chế kỹ thuật chưa hoàn thiện và vạch ra định hướng phát triển tiếp theo cho hệ thống.
Kết quả và đóng góp
Khóa luận hoàn thành đầy đủ các nội dung theo mục tiêu nghiên cứu với các kết quả cụ thể được ghi nhận trong văn bản:
- Báo cáo khóa luận có quy mô 93 trang, cấu trúc thành 5 chương, bao gồm 73 hình vẽ minh họa, 13 tài liệu tham khảo và 01 sản phẩm phần mềm thực tế.
- Xây dựng hoàn chỉnh hệ thống ứng dụng web thương mại điện tử đấu giá trực tuyến đáp ứng 24 chức năng phân rã thuộc 10 Use Case chính, được kiểm soát chặt chẽ bởi 21 quy tắc nghiệp vụ (BR1 - BR21).
- Tích hợp thành công giải pháp thanh toán điện tử hai phương thức: thanh toán nhận hàng (COD) và thanh toán trực tuyến qua cổng MoMo bằng mã QR Code theo chuẩn an toàn dữ liệu PCI DSS.
- Áp dụng kiến trúc Microservices với backend viết bằng ngôn ngữ Golang, tận dụng ưu điểm của Goroutines trong xử lý tác vụ, sử dụng framework gRPC cho truyền thông nội bộ giữa các dịch vụ và thiết lập API Gateway làm điểm tiếp nhận tập trung.
- Triển khai giao diện người dùng bằng ReactJS kết hợp MaterialUI, tối ưu hóa hiển thị cho màn hình độ phân giải 1920x1080.
- Đóng góp tự nêu của tác giả: Đưa ra giải pháp kết hợp giữa mô hình thương mại điện tử và đấu giá trực tuyến theo thời gian thực; thiết lập cơ chế kiểm soát gian lận và trách nhiệm người tham gia thông qua hệ thống điểm uy tín (thang điểm 100, ngưỡng tham gia tối thiểu 80, phạt trừ 5 điểm nếu vi phạm quy định thanh toán/hủy đơn) kết hợp điều kiện số dư ví; và ứng dụng thành công kiến trúc Microservice kết hợp gRPC vào một đồ án tốt nghiệp kỹ sư phần mềm.
Hạn chế và hướng nghiên cứu tiếp
Các hạn chế được văn bản đề cập rõ:
- Cơ sở dữ liệu chưa phân tán hoàn toàn: Mặc dù hệ thống được thiết kế theo kiến trúc Microservices với các dịch vụ độc lập về mặt logic, nhưng do giới hạn về mặt nhân lực triển khai nên toàn bộ các dịch vụ vẫn kết nối tới một hệ cơ sở dữ liệu MySQL duy nhất, chưa đạt được tính độc lập dữ liệu tuyệt đối của mô hình vi dịch vụ chuẩn.
- Phạm vi tối ưu giao diện: Giao diện web mới chỉ tập trung tối ưu hóa hiển thị trên màn hình máy tính có độ phân giải 1920x1080, chưa tối ưu responsive cho các kích thước màn hình nhỏ hơn hoặc thiết bị di động.
- Mức độ triển khai hạ tầng: Hệ thống mới dừng lại ở việc tạo Dockerfile và Docker-compose nhằm chuẩn bị đưa lên Docker Swarm, chưa kiểm thử chịu tải trên quy mô cụm phân tán thực tế.
Hướng nghiên cứu và phát triển tiếp theo:
- Hoàn thiện việc phân tách cơ sở dữ liệu riêng biệt cho từng microservice nhằm loại bỏ điểm nghẽn tập trung dữ liệu.
- Mở rộng phát triển ứng dụng di động đa nền tảng bằng React Native (dựa trên nền tảng ReactJS sẵn có) để phục vụ người dùng trên điện thoại thông minh.
- Triển khai hoàn chỉnh hệ thống lên các nền tảng điện toán đám mây và áp dụng công nghệ điều phối container để nâng cao năng lực chịu tải khi số lượng phiên đấu giá tăng cao.
Giá trị tham khảo
Báo cáo khóa luận là tài liệu tham khảo hữu ích cho các đối tượng và phạm vi sau:
- Sinh viên chuyên ngành Kỹ thuật Phần mềm và Công nghệ Thông tin đang thực hiện đồ án tốt nghiệp liên quan đến kiến trúc Microservices, lập trình hệ thống bằng Golang và truyền thông dịch vụ qua gRPC.
- Người làm đề tài ứng dụng tích hợp thanh toán trực tuyến: Phần tài liệu tại Chương 2 và Chương 4 cung cấp mô hình thực tế và quy trình tích hợp cổng thanh toán MoMo qua mã QR Code.
- Tham khảo về phương pháp luận phân tích thiết kế: Nội dung Chương 3 là mẫu đặc tả ca sử dụng hoàn chỉnh, bao gồm danh mục 21 quy tắc nghiệp vụ (Business Rules) có tính chặt chẽ cao trong lĩnh vực đấu giá trực tuyến.
- Giá trị tra cứu cơ sở pháp lý: Chương 2 hệ thống hóa các điều khoản liên quan trong Luật Thương mại, Luật Đấu giá tài sản số 01/2016/QH14 và Luật Giao dịch Điện tử, hữu ích cho các dự án phần mềm thương mại cần đối chiếu tính pháp lý tại Việt Nam.
Câu hỏi thường gặp
1. Điều kiện tiên quyết để một người dùng có thể tham gia đấu giá một sản phẩm trong hệ thống là gì?
Theo quy tắc nghiệp vụ BR18 và BR19 tại Chương 3, người dùng bắt buộc phải có số dư trong ví lớn hơn hoặc bằng giá trị tối thiểu của món hàng đó, đồng thời điểm uy tín cá nhân phải đạt từ 80 điểm trở lên trên thang điểm 100.
2. Hệ thống xử lý như thế nào đối với các trường hợp người dùng thắng cuộc nhưng không thanh toán hoặc tự ý hủy đơn hàng?
Căn cứ theo BR16, BR17 và BR21, nếu người mua tự ý hủy đơn hàng hoặc là người thắng cuộc đấu giá nhưng không thực hiện thanh toán hóa đơn sản phẩm, người dùng sẽ bị hệ thống trừ 5 điểm uy tín cho mỗi lần vi phạm và đơn hàng sẽ bị hủy bỏ.
3. Tại sao hệ thống áp dụng kiến trúc Microservices nhưng các dịch vụ vẫn dùng chung một cơ sở dữ liệu MySQL?
Trong phần tóm tắt và Chương 2, tác giả nêu rõ do giới hạn về mặt nhân lực trong phạm vi một khóa luận cá nhân nên các dịch vụ độc lập chỉ gọi tới một hệ cơ sở dữ liệu MySQL duy nhất nhằm đơn giản hóa việc quản trị dữ liệu trong giai đoạn thử nghiệm.
4. Khóa luận căn cứ vào những văn bản quy phạm pháp luật nào của Việt Nam để xây dựng nghiệp vụ?
Tác giả căn cứ vào ba văn bản luật gồm: Luật Thương mại Việt Nam (quy định nghĩa vụ bên mua, bên bán và cung ứng hàng hóa), Luật Đấu giá tài sản số 01/2016/QH14 (quy định trình tự thủ tục đấu giá, hủy kết quả đấu giá) và Luật Giao dịch Điện tử (quy định về tính pháp lý của giao dịch số).
5. Sản phẩm ứng dụng web được tối ưu cho cấu hình hiển thị và môi trường nào?
Ứng dụng web phía người dùng cuối (Client) được xây dựng bằng ReactJS, tối ưu hóa giao diện cho màn hình máy tính có độ phân giải phổ biến 1920x1080.
Kết luận
Khóa luận của sinh viên Lê Đoàn đã xây dựng thành công ứng dụng web đấu giá trực tuyến tích hợp cổng thanh toán MoMo, vận dụng hiệu quả kiến trúc Microservice với Golang, gRPC và ReactJS. Đề tài kết hợp chặt chẽ giữa cơ sở pháp lý thực tế tại Việt Nam với bộ 21 quy tắc nghiệp vụ quản lý đấu giá và điểm uy tín nghiêm ngặt. Dù còn hạn chế về việc dùng chung cơ sở dữ liệu và phạm vi tối ưu độ phân giải màn hình, sản phẩm hoàn thiện đã đáp ứng đầy đủ mục tiêu kỹ thuật phần mềm đề ra và mang lại giá trị tham khảo thiết thực cho các nghiên cứu cùng chuyên ngành.