Bối cảnh và vấn đề nghiên cứu
Khóa luận tốt nghiệp "Xây dựng hệ thống cung cấp dịch vụ quản lý và kinh doanh trực tuyến" được thực hiện bởi nhóm sinh viên Nguyễn Bảo Trấn, Lô Minh Phát và Nguyễn Văn Sơn dưới sự hướng dẫn của Th.S Mai Anh Thơ tại Khoa Đào tạo Chất lượng cao, Trường Đại học Sư phạm Kỹ thuật Thành phố Hồ Chí Minh (chuyên ngành Công nghệ thông tin, khóa 2019 – 2023).
Lý do chọn đề tài xuất phát từ sự phát triển của thương mại điện tử (TMĐT) tại Việt Nam, đóng vai trò kết nối trực tiếp giữa người mua và người bán, thúc đẩy tăng trưởng trong nhiều lĩnh vực kinh doanh. Tuy nhiên, tác giả chỉ ra các vấn đề tồn tại trong thực tiễn:
- Chi phí xây dựng và đưa vào vận hành một hệ thống TMĐT hoàn chỉnh là rất lớn đối với các doanh nghiệp, đặc biệt là các hộ kinh doanh và doanh nghiệp vừa và nhỏ trong giai đoạn khởi nghiệp.
- Thời gian phát triển kéo dài, hệ thống tự phát triển dễ phát sinh lỗi kỹ thuật hoặc thiếu hụt các tính năng quản lý nghiệp vụ cần thiết.
Để giải quyết thực trạng này, nhóm nghiên cứu đề xuất giải pháp xây dựng một nền tảng dịch vụ cho phép nhiều người dùng (người thuê dịch vụ - tenant) tham gia sử dụng chung một hệ thống phần mềm đã được đóng gói hoàn thiện. Mô hình này giúp chia sẻ hạ tầng, giảm chi phí đầu tư ban đầu, rút ngắn thời gian đưa hệ thống vào vận hành, đồng thời bảo đảm tính độc lập và bảo mật về dữ liệu kinh doanh của từng cửa hàng.
Mục tiêu nghiên cứu của đề tài được xác định gồm 7 nội dung:
- Tìm hiểu, ứng dụng các công nghệ mới trong việc xây dựng, phát triển và triển khai ứng dụng trên nền tảng website.
- Xây dựng một trang thương mại điện tử cho phép nhiều người dùng có thể cùng tham gia và dùng chung với nhau.
- Nghiên cứu kiến trúc đa người thuê (Multi-Tenancy), áp dụng vào việc thiết kế, xây dựng cấu trúc hệ thống của ứng dụng.
- Tìm hiểu về các nghiệp vụ trong thương mại điện tử, mang đến những giải pháp phù hợp trong việc quản lý và kinh doanh trực tuyến.
- Tạo ra một ứng dụng thân thiện với người dùng, dễ sử dụng.
- Cho phép tùy chỉnh mở rộng những hướng phát triển về sau cho ứng dụng.
- Giải đáp các thắc mắc của các thành viên trong nhóm về cách thức xây dựng và vận hành của các hệ thống có tính chất tương tự.
Đối tượng và phạm vi nghiên cứu:
- Đối tượng nghiên cứu: Kiến trúc phần mềm Multi-Tenancy, các công nghệ lập trình web hiện đại (Spring Boot, ReactJS, cơ sở dữ liệu MySQL), quy trình tích hợp và triển khai liên tục (CI/CD) trên nền tảng Kubernetes, cùng các quy trình nghiệp vụ bán lẻ trực tuyến ngành thời trang.
- Phạm vi không gian (hệ thống): Hệ thống bao gồm 3 ứng dụng web độc lập: Website quản lý triển khai (Tenant Manager), Website quản lý cửa hàng (Shop Manager) và Website bán hàng dành cho khách hàng (Shopping Website).
- Phạm vi thời gian: Đề tài được triển khai thực hiện từ ngày 13/02/2023 đến ngày 28/05/2023.
Cơ sở lý thuyết và phương pháp nghiên cứu
Khóa luận tiếp cận vấn đề dưới góc độ kỹ thuật phần mềm, kết hợp khảo sát thực tiễn để xây dựng mô hình hệ thống:
Khung lý thuyết và mô hình kiến trúc
Nghiên cứu tập trung vào kiến trúc Multi-Tenancy (kiến trúc đa người thuê) – giải pháp thiết kế cho phép một phiên bản ứng dụng duy nhất phục vụ đồng thời nhiều khách hàng (tenant), trong đó mỗi tenant được chia sẻ tài nguyên tính toán nhưng dữ liệu lưu trữ được tách biệt hoàn toàn. Khóa luận phân tích và so sánh 3 phương án thiết kế lưu trữ dữ liệu:
| Phương án thiết kế |
Đặc điểm kỹ thuật |
Ưu điểm |
Nhược điểm |
| Cơ sở dữ liệu riêng biệt (Database per Tenant) |
Mỗi tenant sở hữu một cơ sở dữ liệu vật lý riêng; 1 cơ sở dữ liệu chính quản trị thông tin danh sách tenant. |
Mức độ cách ly dữ liệu vật lý cao nhất; bảo đảm an toàn và bảo mật tối đa. |
Chi phí phần cứng cao; tốn kém tài nguyên hệ thống khi số lượng tenant tăng. |
| Chung cơ sở dữ liệu, phân tách schema (Schema per Tenant) |
Toàn hệ thống dùng chung 1 CSDL; mỗi tenant được phân bổ 1 không gian lược đồ (schema) riêng. |
Cách ly dữ liệu ở mức logic theo cơ chế bảo mật schema của hệ quản trị cơ sở dữ liệu. |
Việc sao lưu và khôi phục gặp khó khăn nếu DBMS không hỗ trợ sao lưu riêng rẽ từng schema. |
| Dùng chung cơ sở dữ liệu và schema (Shared Database) |
Toàn bộ dữ liệu của các tenant lưu trữ chung trong các bảng; phân biệt qua cột định danh tenant_id. |
Tận dụng tối đa tài nguyên phần cứng; việc đồng bộ cấu trúc bảng diễn ra đơn giản. |
Mức độ phân tách vật lý thấp; tăng độ phức tạp trong xử lý logic ở tầng ứng dụng và sao lưu dữ liệu. |
Về mô hình xác thực và phân quyền, tác giả ứng dụng lý thuyết bảo mật đối tượng nghiệp vụ (Domain Object Security) kết hợp danh sách kiểm soát truy cập (Access Control Lists - ACLs) nhằm quản lý quyền hạn chi tiết đến từng hành vi thao tác dữ liệu.
Phương pháp nghiên cứu
- Phương pháp khảo sát hiện trạng: Nghiên cứu cấu trúc tính năng và trải nghiệm giao diện từ các hệ thống thực tế đang vận hành gồm:
- Nền tảng Sapo: Khảo sát các phân hệ Sapo Web, Sapo Go, Sapo FNB, Sapo OMINI, Sapo Academy; các chức năng quản lý kho hàng, tạo đơn, báo cáo doanh thu và liên kết vận chuyển.
- Website thời trang Nike: Khảo sát cấu trúc phân cấp danh mục, thanh điều hướng (navbar), bộ lọc sản phẩm đa tiêu chí (màu sắc, giới tính, độ tuổi), trang chi tiết sản phẩm và tính tương thích trên thiết bị di động (responsive).
- Hệ thống quản lý Yody: Khảo sát bố cục hiển thị phân cụm thông tin, giao diện quản lý dữ liệu dạng bảng có tích hợp tìm kiếm, phân trang và thanh công cụ điều hướng phân cấp.
- Phương pháp phân tích và thiết kế phần mềm: Áp dụng mô hình hóa UML để xây dựng sơ đồ use case tổng quan, lược đồ tuần tự (sequence diagrams) và sơ đồ lớp (class diagrams).
- Phương pháp thực nghiệm kiểm thử: Xây dựng các ca kiểm thử chức năng (test cases) theo từng kịch bản nghiệp vụ của hệ thống.
- Nguồn dữ liệu: Dữ liệu khảo sát thông qua trao đổi trực tiếp với nhân sự làm việc tại các hộ kinh doanh khởi nghiệp; dữ liệu mẫu về danh mục sản phẩm, biến thể thời trang và đơn hàng trực tuyến.
Thiết kế và triển khai hệ thống
Đề tài là đồ án kỹ thuật phần mềm, tập trung chi tiết vào các thành phần kiến trúc, ngăn xếp công nghệ và quy trình tự động hóa triển khai:
1. Kiến trúc hệ thống và công nghệ Backend
Hệ thống xử lý nghiệp vụ ở phía máy chủ được phát triển trên nền tảng Java với các công nghệ chính:
- Spring Boot: Dự án cốt lõi trong hệ sinh thái Spring, cung cấp khả năng tự động cấu hình (auto-configuration) và cơ chế tiêm phụ thuộc (Dependency Injection - DI), tạo liên kết lỏng lẻo giữa các mô-đun, phục vụ mở rộng hệ thống. Cấu trúc mã nguồn Backend phân chia thành 3 tầng chính:
Controller: Tiếp nhận các yêu cầu HTTP (requests) từ client, điều phối xử lý và phản hồi kết quả (responses).
DTO (Data Transfer Object): Đóng gói và ánh xạ dữ liệu chuyển đổi giữa cơ sở dữ liệu và dữ liệu trả về cho client.
Service: Chứa toàn bộ các xử lý logic nghiệp vụ trung tâm của ứng dụng.
- MySQL: Hệ quản trị cơ sở dữ liệu quan hệ mã nguồn mở dạng máy chủ (server-based), quản lý dữ liệu qua các bảng liên kết và cơ chế cấp quyền tài khoản theo tên người dùng và mật khẩu riêng biệt.
2. Công nghệ Frontend
Giao diện người dùng được xây dựng bằng thư viện ReactJS, hoạt động theo mô hình quản lý các thành phần giao diện (UI Tree) có khả năng tái sử dụng:
- Thư viện bổ trợ:
antd (Ant Design) làm bộ khung giao diện; redux và redux-saga để quản lý trạng thái tập trung và xử lý các tác vụ bất đồng bộ (side effects) khi giao tiếp API; SCSS định kiểu giao diện.
- Cấu trúc mã nguồn Frontend gồm 13 phần:
| STT |
Thành phần thư mục |
Chức năng chi tiết |
| 1 |
actions |
Khai báo và định nghĩa các hành động trong Redux |
| 2 |
assets |
Lưu trữ tệp hình ảnh và bộ phông chữ tĩnh |
| 3 |
components |
Các thành phần giao diện chỉ nhận dữ liệu để kết xuất, không xử lý logic hay gọi API |
| 4 |
constants |
Khai báo các biến và hằng số tĩnh |
| 5 |
containers / pages |
Các thành phần giao diện chứa xử lý logic nghiệp vụ và thực hiện gọi API |
| 6 |
locales / i18n |
Dữ liệu và hàm phục vụ tính năng đa ngôn ngữ |
| 7 |
reducers |
Bộ chuyển đổi trạng thái phục vụ Redux tương ứng với từng action |
| 8 |
routes |
Định tuyến đường dẫn trong website và ánh xạ đến component tương ứng |
| 9 |
sagas |
Các hàm gọi API sử dụng thư viện redux-saga |
| 10 |
api / services |
Bộ thư viện và hàm cấu hình hỗ trợ giao tiếp HTTP API |
| 11 |
store |
Khởi tạo và cấu hình Redux Store |
| 12 |
styles / scss |
Tệp SCSS phục vụ định kiểu giao diện |
| 13 |
utils / helpers |
Các hàm tiện ích bổ trợ |
3. Quy trình CI/CD và triển khai hạ tầng
Hệ thống thiết lập chu trình triển khai tự động qua 4 bước:
- Lập trình viên hoàn thiện tính năng và đẩy mã nguồn (commit) lên máy chủ GitLab.
- GitLab CI tự động kích hoạt chu trình biên dịch (build source code).
- Công cụ Kaniko thực hiện đóng gói ứng dụng thành container image và đẩy (push) lên kho lưu trữ Container Registry.
- Điều phối và cập nhật ứng dụng tự động lên cụm Kubernetes (K8S) thông qua công cụ Helm Chart.
4. Cơ chế phân quyền và mô hình dữ liệu
- Tác nhân hệ thống (5 Actors):
Unauthenticated User (Guest): Người dùng chưa đăng nhập, chỉ xem sản phẩm, tin tức, giỏ hàng tạm.
System Admin: Quản trị viên cấp cao, quản lý các tenant trên hệ thống triển khai.
Shop Admin: Quản trị viên cửa hàng, sở hữu toàn quyền quản lý cấu hình và nhân sự trong cửa hàng.
Shop Employee: Nhân viên cửa hàng, được cấp quyền thao tác trên một số chức năng cụ thể bởi Shop Admin.
Shop Customer: Khách hàng đã đăng ký tài khoản, quản lý hồ sơ cá nhân, đặt hàng và lịch sử thanh toán.
- Mô hình lớp dữ liệu: Hệ thống đặc tả 27 lớp thực thể chính:
Location, Store, Category, News, Tenant, Employee, Permission, Group, Account, CustomerAddress, Customer, Tag, ProductCategory, ProductVariant, ProductConfig, Product, OrderItem, Order, Variant, VariantConfig, VariantTemplate, Payment, PaymentConfig, Carousel, CarouselItem, FacetedSearch, FacetedItem.
Nội dung chính theo từng chương
Chương 1: Lý do chọn đề tài
Chương này phân tích bối cảnh bùng nổ của TMĐT tại Việt Nam và những rào cản chi phí, thời gian và công nghệ đối với các đơn vị kinh doanh vừa và nhỏ. Nhóm nghiên cứu trình bày định hướng xây dựng hệ thống quản lý và kinh doanh trực tuyến dạng dịch vụ chia sẻ hạ tầng dựa trên kiến trúc Multi-Tenancy. Chương mở đầu cũng công bố mục tiêu nghiên cứu gồm 7 điểm cụ thể, xác định nhiệm vụ xây dựng hệ thống phần mềm cung cấp dịch vụ quản lý kinh doanh thời trang hoàn chỉnh.
Chương 2: Khảo sát hiện trạng
Chương 2 trình bày chi tiết khảo sát 3 hệ thống thực tế: nền tảng quản lý bán hàng đa kênh Sapo, website thương mại điện tử quốc tế Nike và hệ thống quản trị của chuỗi bán lẻ thời trang Yody. Từ kết quả khảo sát, tác giả tổng hợp yêu cầu phần mềm cho 3 phân hệ độc lập:
- Website quản lý cửa hàng (Shop Manager): Bắt buộc xác thực; quản lý nhân viên, phân quyền, cấu hình sản phẩm, quản lý đơn hàng và theo dõi chỉ số bán hàng.
- Website cửa hàng (Shopping Website): Cho phép người dùng vãng lai hoặc thành viên tìm kiếm, duyệt danh mục, cấu hình biến thể sản phẩm, quản lý giỏ hàng, đặt hàng và thanh toán trực tuyến.
- Website triển khai (Tenant Manager): Dành riêng cho quản trị viên hệ sinh thái (System Admin) quản lý thông tin các tenant, cấp phát tài nguyên khi có bên thuê mới đăng ký.
Bên cạnh đó, chương đưa ra các yêu cầu về mặt trải nghiệm UI/UX: bố cục trực quan, hỗ trợ thiết bị di động, cơ chế phản hồi lỗi rõ ràng và ràng buộc toàn vẹn dữ liệu.
Chương 3: Kiến trúc hệ thống và công nghệ sử dụng
Chương này đi sâu vào cơ sở lý thuyết kiến trúc Multi-Tenancy, đánh giá ưu điểm về mặt tối ưu chi phí hạ tầng, cơ chế bảo trì tập trung và nhược điểm về rủi ro phình to dữ liệu, khó khăn sao lưu riêng lẻ. Tác giả phân tích 3 giải pháp phân tách cơ sở dữ liệu (Database per Tenant, Schema per Tenant, Shared database). Chương 3 đồng thời trình bày chi tiết các công nghệ: Spring Boot (Java), MySQL ở tầng dữ liệu; ReactJS, Redux, Redux-Saga, Ant Design ở tầng hiển thị; quy trình tự động hóa CI/CD với GitLab, Kaniko, Helm và Kubernetes.
Chương 4: Thiết kế hệ thống
Chương 4 chiếm dung lượng lớn nhất trong khóa luận, mô tả thiết kế hệ thống chi tiết qua:
- Cơ chế xác thực và phân quyền bằng Domain Object Security kết hợp ACLs, phân định rõ quyền hạn của 5 nhóm Actor.
- Đặc tả chi tiết 38 nhóm Use Case và xây dựng các lược đồ tuần tự (Sequence Diagram) tương ứng với các quy trình: tạo mới/chỉnh sửa/xóa tài khoản, quản lý nhóm quyền, quản lý danh mục, quản lý bộ thuộc tính sản phẩm (
Variant Template), quản lý thuộc tính (Variant), quản lý thẻ (Tag), quy trình thêm hàng vào giỏ, đặt hàng, thanh toán trực tuyến và quản lý vòng đời tenant (Create Tenant, Delete Tenant).
- Thiết kế sơ đồ lớp (Class Diagram) cho ứng dụng quản trị trung tâm (Master) và ứng dụng tenant với 27 bảng dữ liệu đặc tả chi tiết các trường thông tin.
- Thiết kế giao diện (Wireframes/Layout): Đặc tả các thành phần giao diện của Shop Manager (Navigation Bar, Notification Panel, Profile, Form quản trị dữ liệu), Tenant Manager và giao diện Shopping Website (Trang chủ, Chi tiết sản phẩm, Giỏ hàng, Đặt hàng).
Chương 5: Kiểm thử phần mềm
Chương này tập trung vào công tác thiết kế các bộ kịch bản kiểm thử (Test Cases) nhằm thẩm định tính chính xác của các chức năng đã xây dựng. Các ca kiểm thử bao phủ toàn bộ các use case chính như xác thực đăng nhập, kiểm tra tính hợp lệ của dữ liệu đầu vào khi tạo tài khoản, thêm sản phẩm vào giỏ, xử lý chuyển đổi trạng thái đơn hàng và kiểm tra tính toàn vẹn dữ liệu khi tạo mới một tenant trên hệ thống triển khai.
Chương 6: Kết luận
Chương tổng kết toàn bộ các kết quả đạt được về mặt lý thuyết và ứng dụng thực tế của đồ án, chỉ ra các hạn chế kỹ thuật chưa thể giải quyết triệt để và định hình các phương hướng nghiên cứu tiếp theo.
Kết quả và đóng góp
Kết quả chính
- Xây dựng hoàn chỉnh 3 phân hệ ứng dụng web:
- Website triển khai (Tenant Manager): Hỗ trợ System Admin quản trị danh sách người thuê, tự động hóa quy trình khởi tạo tài nguyên cho tenant mới.
- Website quản lý cửa hàng (Shop Manager): Cung cấp bộ công cụ quản trị hoàn chỉnh bao gồm quản lý nhân viên, thiết lập nhóm quyền chi tiết theo ACLs, quản lý sản phẩm với các thuộc tính và bộ lọc đa chiều (
ProductVariant, VariantConfig, FacetedSearch), quản lý danh mục và xử lý trạng thái đơn đặt hàng.
- Website bán hàng (Shopping Website): Cung cấp giao diện mua sắm trực tuyến cho phép khách hàng tra cứu, chọn lọc biến thể kích thước/màu sắc, thêm vào giỏ hàng và thực hiện quy trình tạo đơn hàng, thanh toán trực tuyến.
- Hiện thực hóa kiến trúc phần mềm hiện đại: Ứng dụng thành công kiến trúc Multi-Tenancy vào bài toán TMĐT, kết nối mô hình phân quyền bảo mật Domain Object Security và xây dựng đường ống phân phối phần mềm CI/CD trên hạ tầng container (Docker/Kaniko) điều phối bởi Kubernetes và Helm.
- Hệ thống dữ liệu chuẩn hóa: Thiết kế hoàn chỉnh 27 lớp thực thể dữ liệu liên kết logic, đáp ứng linh hoạt các biến thể sản phẩm ngành thời trang.
Đóng góp thực tiễn
So với các nghiên cứu trước đây chỉ tập trung vào việc xây dựng một website bán hàng đơn lẻ (Single-Tenant), khóa luận mang lại đóng góp cụ thể:
- Cung cấp một giải pháp hệ thống đóng gói theo dạng dịch vụ (Software as a Service), cho phép tái sử dụng toàn bộ hạ tầng phần mềm cho nhiều bên thuê khác nhau mà không cần viết lại mã nguồn.
- Đưa ra mô hình tham chiếu rõ ràng về việc cấu hình thuộc tính sản phẩm linh hoạt (thông qua các thực thể
Variant, VariantConfig, VariantTemplate, FacetedItem), giải quyết triệt để bài toán biến thể đa dạng trong ngành bán lẻ thời trang.
Hạn chế và hướng nghiên cứu tiếp
Khóa luận tự chỉ ra các nhược điểm kỹ thuật và phạm vi chưa được hoàn thiện:
- Hạn chế:
- Vấn đề sao lưu dữ liệu cho từng tenant riêng biệt gặp nhiều trở ngại khi sử dụng mô hình cơ sở dữ liệu chung hoặc phân tách logic; hệ thống chưa có công cụ sao lưu độc lập cho từng tenant mà không làm gián đoạn toàn bộ CSDL.
- Lượng dữ liệu hệ thống phình to nhanh chóng khi số lượng tenant và đơn hàng gia tăng, tiềm ẩn nguy cơ suy giảm hiệu năng truy vấn.
- Chưa tối ưu hoàn chỉnh cơ chế mở rộng tài nguyên phần cứng (auto-scaling) linh hoạt theo từng mức tải đột biến của từng tenant riêng lẻ.
- Hướng phát triển:
- Nghiên cứu và triển khai giải pháp tối ưu hóa cơ sở dữ liệu cho bài toán Multi-Tenancy ở quy mô lớn hơn, cải tiến công cụ sao lưu/khôi phục dữ liệu độc lập cho từng khách thuê.
- Mở rộng thêm các công cụ thống kê, phân tích chỉ số kinh doanh chuyên sâu và biểu đồ báo cáo doanh thu trực quan cho từng cửa hàng.
- Tích hợp thêm các kênh thanh toán trực tuyến và đối tác vận chuyển đa dạng hơn vào hệ thống.
Giá trị tham khảo
Tài liệu khóa luận có giá trị tham khảo kỹ thuật cho các nhóm đối tượng sau:
- Sinh viên và nhà phát triển ngành Công nghệ thông tin / Kỹ thuật phần mềm:
- Tài liệu mẫu về việc ứng dụng kiến trúc Multi-Tenancy trong các dự án ứng dụng web.
- Hướng dẫn thực hành triển khai cấu trúc mã nguồn Spring Boot kết hợp ReactJS/Redux-Saga và Ant Design theo chuẩn phân tách module.
- Tài liệu tham khảo thực tế về quy trình thiết lập CI/CD tự động hóa từ bước đẩy mã nguồn lên GitLab, đóng gói image qua Kaniko đến việc triển khai lên Kubernetes bằng Helm.
- Người làm đề tài hoặc xây dựng phần mềm thương mại điện tử:
- Tham khảo mô hình phân quyền dữ liệu theo Domain Object Security và ACLs.
- Tham khảo lược đồ cơ sở dữ liệu xử lý bài toán biến thể sản phẩm phức tạp (
Product, ProductVariant, VariantTemplate) và cấu trúc bộ lọc tìm kiếm (FacetedSearch).
Câu hỏi thường gặp
1. Khóa luận lựa chọn tiếp cận bài toán đa người thuê (Multi-Tenancy) theo những mô hình CSDL nào?
Khóa luận đã khảo sát và phân tích 3 giải pháp thiết kế cơ sở dữ liệu gồm: Database riêng biệt cho từng tenant (Database per Tenant), Dùng chung database nhưng phân tách schema (Schema per Tenant), và Dùng chung cả database lẫn schema (Shared database), đồng thời đánh giá cụ thể ưu nhược điểm về mặt chi phí hạ tầng, mức độ cách ly dữ liệu và khả năng sao lưu của từng phương án.
2. Cơ chế phân quyền trong hệ thống được thiết kế theo nguyên lý nào?
Hệ thống sử dụng cơ chế bảo mật Domain Object Security kết hợp với Access Control Lists (ACLs). Với mỗi thao tác (truy cập, tạo mới, cập nhật, xóa) trên từng tài nguyên, hệ thống định nghĩa một quyền (permission) duy nhất. Các quyền đơn lẻ này được gom thành các nhóm quyền (group), sau đó nhóm quyền mới được gán cho tài khoản người dùng (account).
3. Hệ thống phân định bao nhiêu nhóm người dùng (actors)?
Hệ thống xác định chính xác 5 nhóm tác nhân (Actors): Người dùng chưa xác thực/Khách hàng vãng lai (Unauthenticated User / Guest), Quản trị viên hệ thống triển khai (System Admin), Quản trị viên cửa hàng (Shop Admin), Nhân viên cửa hàng (Shop Employee) và Khách hàng đã đăng ký tài khoản (Shop Customer).
4. Đường ống CI/CD của dự án được cấu hình bằng các công nghệ nào?
Quy trình tự động hóa CI/CD trong đồ án sử dụng 4 công nghệ liên kết: mã nguồn lưu trữ và kích hoạt build tự động bằng GitLab CI; đóng gói container image không cần Docker daemon bằng Kaniko; lưu trữ image trên Container Registry; triển khai và cập nhật ứng dụng lên cụm Kubernetes (K8S) thông qua công cụ quản lý gói Helm.
5. Cấu trúc mã nguồn phía Frontend ReactJS được phân chia như thế nào?
Phía giao diện người dùng được tổ chức rõ ràng thành 13 thành phần thư mục: actions, assets, components (dumb components chỉ nhận dữ liệu render), constants, containers/pages (smart components chứa logic và gọi API), locales/i18n, reducers, routes, sagas, api/services, store, styles/scss và utils/helpers.
Kết luận
Đồ án tốt nghiệp "Xây dựng hệ thống cung cấp dịch vụ quản lý và kinh doanh trực tuyến" đã giải quyết thành công bài toán chia sẻ hạ tầng phần mềm cho nhiều bên kinh doanh trực tuyến thông qua việc hiện thực hóa kiến trúc Multi-Tenancy. Nhóm tác giả đã hoàn thiện 3 phân hệ website độc lập phục vụ quản trị hệ thống, quản lý vận hành cửa hàng và giao diện mua sắm trực tuyến trên nền tảng công nghệ Spring Boot, ReactJS và MySQL. Mặc dù vẫn còn những thách thức về mặt mở rộng tài nguyên và sao lưu cơ sở dữ liệu riêng rẽ khi số lượng khách thuê gia tăng, đề tài đã xây dựng được quy trình tự động hóa triển khai hoàn chỉnh trên nền tảng Kubernetes và cung cấp mô hình tham chiếu có giá trị học thuật cao cho các ứng dụng dịch vụ phần mềm (SaaS).