Bối cảnh và vấn đề nghiên cứu
Sự phát triển của công nghệ thông tin và mạng Internet đã thúc đẩy thương mại điện tử trở thành một phương thức kinh doanh thiết yếu. Đối với các doanh nghiệp và nhà bán lẻ, việc ứng dụng thương mại điện tử giúp cắt giảm đáng kể chi phí sản xuất, chi phí tiếp thị, bán hàng và tìm kiếm đối tác, đồng thời mở rộng tệp khách hàng không giới hạn về mặt địa lý. Về phía người tiêu dùng, các kênh mua sắm trực tuyến hoạt động 24/7 mang lại sự thuận tiện, tiết kiệm thời gian đi lại và cho phép so sánh giá cả, chủng loại hàng hóa trước khi đưa ra quyết định mua sắm. Tuy nhiên, rào cản lớn đối với nhiều cá nhân và hộ kinh doanh nhỏ lẻ là việc xây dựng một website bán hàng chuyên nghiệp đòi hỏi kiến thức chuyên sâu về lập trình, thiết kế web, cấu hình máy chủ, cũng như tiêu tốn nhiều thời gian và chi phí đầu tư ban đầu. Từ thực tế này, đề tài "Xây dựng ứng dụng web tạo website bán hàng" được nhóm tác giả lựa chọn nhằm phát triển một giải pháp phần mềm cho phép người dùng không có chuyên môn công nghệ vẫn có thể tự tạo lập và vận hành một website thương mại điện tử hoàn chỉnh.
Theo đề cương luận văn tốt nghiệp, nhiệm vụ nghiên cứu được phân định thành 2 nhóm nội dung cụ thể:
- Nghiên cứu, tìm hiểu các công nghệ nền tảng bao gồm thư viện/framework VueJS, NuxtJS, môi trường thực thi NodeJS, hệ quản trị cơ sở dữ liệu MongoDB, công nghệ ảo hóa container Docker và web server/reverse proxy NGINX.
- Xây dựng một ứng dụng web (đặt tên là WebX) cho phép người dùng tạo lập website bán hàng bằng cơ chế kéo thả trực quan (drag and drop), hỗ trợ xem trước giao diện (preview) và tự động triển khai (auto-deploy) website lên hệ thống tên miền phụ (subdomain). Hệ thống được tạo ra phải đảm bảo tiêu chuẩn thiết kế tương thích hiển thị (Responsive Web Design), cung cấp đầy đủ các phân hệ chức năng cơ bản của một website bán hàng, đi kèm một công cụ quản trị dữ liệu riêng biệt giúp chủ cửa hàng quản lý sản phẩm, đơn hàng và khách sắm.
Đối tượng nghiên cứu của khóa luận tập trung vào:
- Ngôn ngữ lập trình JavaScript, framework VueJS, nền tảng NodeJS, hệ thống Docker và web server NGINX.
- Hệ quản trị cơ sở dữ liệu phi quan hệ MongoDB.
- Nhu cầu thực tế của người dùng phổ thông trong việc thiết kế, vận hành website thương mại điện tử.
Phạm vi nghiên cứu:
- Không gian và môi trường ứng dụng: Xây dựng nền tảng ứng dụng web chạy trên trình duyệt (tên miền thử nghiệm
designwebx.online), kết hợp điều phối subdomain thông qua NGINX reverse proxy và công nghệ container Docker; tích hợp cổng thanh toán MoMo phục vụ kích hoạt website.
- Thời gian thực hiện: Từ ngày 30/03/2020 đến ngày 13/07/2020 theo kế hoạch đào tạo khóa 2016 - 2020 của Khoa Công nghệ Thông tin, Trường Đại học Sư phạm Kỹ thuật Thành phố Hồ Chí Minh.
Cơ sở lý thuyết và phương pháp
Khóa luận xây dựng trên các nền tảng công nghệ và lý thuyết phần mềm hiện đại:
- Ngôn ngữ lập trình JavaScript: Ngôn ngữ thông dịch chạy trực tiếp trên trình duyệt, không cần trình biên dịch riêng biệt, có khả năng bắt và xử lý sự kiện tương tác DOM linh hoạt, giúp kiểm tra tính hợp lệ của dữ liệu đầu vào phía client nhằm giảm tải truy xuất cơ sở dữ liệu.
- Nền tảng NodeJS: Môi trường thực thi JavaScript xây dựng trên nền tảng V8 JavaScript Engine của Google, hoạt động theo kiến trúc hướng sự kiện, mô hình luồng đơn (single-threaded) kết hợp cơ chế I/O bất đồng bộ (non-blocking I/O) giúp hệ thống xử lý lượng lớn kết nối đồng thời với hiệu năng cao mà không tốn tài nguyên quản lý đa luồng, được cấp phép theo giấy phép mã nguồn mở MIT.
- Framework VueJS: Thư viện JavaScript tiến bộ tập trung vào tầng giao diện (View layer) theo mô hình Single Page Application (SPA), sở hữu tốc độ kết xuất (render) nhanh và cơ chế liên kết dữ liệu phản ứng (reactivity) gọn nhẹ.
- Hệ quản trị cơ sở dữ liệu MongoDB: Cơ sở dữ liệu NoSQL hướng tài liệu (document-oriented database). Dữ liệu được lưu trữ dưới dạng BSON/JSON trong các collection thay vì cấu trúc bảng (table) và hàng (row) như hệ quản trị cơ sở dữ liệu quan hệ (RDBMS). MongoDB tự động đánh chỉ mục trên trường
_id, lưu trữ đệm bản ghi trên RAM để tăng tốc truy vấn đọc/ghi. Điểm yếu được tác giả phân tích là việc MongoDB ghi dữ liệu từ RAM xuống đĩa cứng theo chu kỳ định kỳ 60 giây, tiềm ẩn nguy cơ mất dữ liệu nếu xảy ra sự cố phần cứng đột ngột, đồng thời việc thiếu các ràng buộc toàn vẹn khóa ngoại (join) dễ dẫn đến dư thừa dữ liệu.
- Nền tảng Docker: Giải pháp ảo hóa mức hệ điều hành, cho phép đóng gói toàn bộ mã nguồn, môi trường chạy và thư viện phụ thuộc vào các container độc lập. Các thành phần được nghiên cứu bao gồm Docker Client, Docker Daemon, Docker Volumes, Docker Registry/Docker Hub, Docker Networking và công cụ Docker Compose nhằm thiết lập các service độc lập chạy đồng thời.
- Web server NGINX: Sử dụng với vai trò reverse proxy để phân giải và điều phối các yêu cầu từ các subdomain do người dùng tạo ra về đúng các dịch vụ backend/frontend tương ứng.
- Cơ chế bảo mật và thanh toán: Sử dụng thuật toán BCrypt để băm (hash) mật khẩu người dùng trước khi lưu trữ; tích hợp API thanh toán trực tuyến qua ví điện tử MoMo.
Phương pháp nghiên cứu thực tế gồm ba nhóm phương pháp:
- Phương pháp tổng hợp lý thuyết: Phân tích các tài liệu kỹ thuật, đặc tả API và tài liệu chính thống của VueJS, NodeJS, Docker, NGINX và MongoDB.
- Phương pháp chuyên gia: Tiếp thu các định hướng giải pháp kỹ thuật, đánh giá chuyên môn từ giảng viên hướng dẫn (ThS. Nguyễn Minh Đạo) và các kỹ sư phần mềm có kinh nghiệm.
- Phương pháp mô hình hóa: Xây dựng sơ đồ Use Case, phân tích các luồng dữ liệu (DFD), thiết kế lược đồ quan hệ cơ sở dữ liệu và mô hình hóa giao diện người dùng.
Để xác định các yêu cầu chức năng, nhóm tác giả đã tiến hành khảo sát ba hệ thống tạo website phổ biến trên thế giới:
| Nền tảng khảo sát |
Ưu điểm ghi nhận |
Hạn chế ghi nhận |
WordPress (wordpress.com) |
Bố cục trang đơn giản, tập trung vào tạo web; hỗ trợ Responsive Design đa thiết bị; hệ sinh thái plugin đa dạng (SEO, bảo mật, thông báo, quảng cáo); tích hợp công cụ đo lường traffic; quản lý domain thuận tiện. |
Đòi hỏi người dùng phải có hiểu biết kỹ thuật nhất định để tùy biến và quản trị hệ thống plugin. |
Wix (wix.com) |
Giao diện hiện đại; cung cấp nhiều widget và layout dựng sẵn; hỗ trợ thiết kế kéo thả trực quan; kho template phong phú; có chatbot hỗ trợ tự động; tích hợp thanh toán online; quản lý CSDL riêng và mail server riêng. |
Tốc độ tải trang tương đối chậm, đặc biệt ở trang biên tập và thiết kế website; khả năng tùy biến hiển thị trên thiết bị di động (tablet, mobile) ở khâu biên tập còn hạn chế. |
Weebly (weebly.com) |
Giao diện tinh gọn, trực quan, dễ thao tác; hỗ trợ thiết kế dạng kéo thả; cung cấp các công cụ phân tích và thống kê; mẫu template được phân loại rõ ràng. |
Khung thiết kế và chỉnh sửa hiển thị chưa chuẩn xác trên thiết bị di động; tốc độ tải trang chậm; chức năng thanh toán online cho website bán hàng chưa thực sự linh hoạt. |
Từ kết quả khảo sát, nhóm nghiên cứu đã tổng hợp và đề ra các tiêu chí cốt lõi cần hiện thực hóa: thao tác kéo thả mượt mà; danh mục component đa dạng; cung cấp bảng điều khiển quản trị riêng cho khách hàng; hỗ trợ kho template sẵn có; tự động cấu hình và chạy website trên subdomain; tích hợp thanh toán trực tuyến; hiển thị responsive trên mọi kích thước màn hình và đơn giản hóa thao tác cho người không rành kỹ thuật.
Thiết kế và triển khai hệ thống
Hệ thống được thiết kế phân định rõ quyền hạn theo 3 nhóm tác nhân (actors):
- Khách vãng lai (Guest): Thực hiện các nghiệp vụ đăng ký tài khoản (mật khẩu mã hóa BCrypt), đăng nhập hệ thống, yêu cầu cấp lại mật khẩu qua email, xem trang chủ giới thiệu dịch vụ, duyệt danh mục template, xem trước mẫu giao diện (preview) và gửi biểu mẫu liên hệ hỗ trợ.
- Người dùng / Chủ website (User): Sau khi xác thực, người dùng có quyền chọn template, cấu hình thông tin ban đầu (tên website, logo, theme), thao tác trên canvas thiết kế để kéo thả các thành phần (Text, Carousel, Image, Button), lưu trang (save page), xem trước trên nhiều chế độ phân giải và triển khai (publish) website lên subdomain qua thanh toán phí bằng MoMo. Đồng thời, User được cung cấp một hệ thống quản trị dữ liệu riêng biệt để quản lý danh mục sản phẩm (thêm/sửa/xóa), tiếp nhận và xác nhận đơn hàng, quản lý danh sách tài khoản khách mua hàng, theo dõi hồ sơ cá nhân và gửi yêu cầu trợ giúp.
- Quản trị viên hệ thống (Admin): Vận hành phân hệ quản trị cấp cao của nền tảng WebX, có quyền tra cứu, cập nhật thông tin tài khoản người dùng, giám sát danh sách website đã khởi tạo (bao gồm quyền kích hoạt - start hoặc đình chỉ - stop các website này) và tiếp nhận, xử lý các yêu cầu hỗ trợ kỹ thuật.
Kiến trúc dữ liệu của đồ án được tách biệt thành 2 tầng CSDL MongoDB độc lập:
- Cơ sở dữ liệu trung tâm (WebX Central Database): Chịu trách nhiệm lưu trữ cấu trúc toàn bộ nền tảng, bao gồm các collection:
user (tài khoản hệ thống), website (thông tin website được tạo), page (các trang con của từng site), section (các vùng bố cục), element (phần tử chi tiết), component và component_type (thành phần kéo thả), layout (bố cục khung), user_game, template_website, template_notification, notification, support (yêu cầu hỗ trợ), payment và payment_request (giao dịch thanh toán MoMo).
- Cơ sở dữ liệu của từng website bán hàng con (WebY Tenant Database): Được khởi tạo riêng biệt cho từng website do khách hàng tạo ra nhằm đảm bảo an toàn và tính độc lập của dữ liệu thương mại, bao gồm các collection:
product (thông tin sản phẩm, giá, số lượng), order (đơn đặt hàng), order_item (chi tiết sản phẩm trong đơn hàng), user (khách hàng mua sắm tại website đó) và support (hỗ trợ nội bộ của cửa hàng).
Hai quy trình thuật toán mấu chốt được tác giả đặc tả chi tiết gồm:
- Thuật toán Save page: Đọc toàn bộ cây cấu trúc DOM hiện hành trên giao diện thiết kế, trích xuất thuộc tính các section, element, CSS, liên kết hình ảnh, đóng gói thành cấu trúc JSON và đẩy về backend NodeJS thông qua API để cập nhật vào collection
page và section.
- Thuật toán Publish website: Hệ thống kiểm tra trạng thái kích hoạt tài chính qua MoMo, đọc toàn bộ cấu trúc trang từ CSDL trung tâm, đóng gói bộ mã nguồn kết xuất tĩnh/động, kích hoạt container tương ứng thông qua Docker API và cập nhật bảng định tuyến của NGINX để gán subdomain mới vào hệ thống máy chủ.
Công tác kiểm thử phần mềm được tiến hành theo hai phương pháp chính:
- Kiểm thử chức năng (Functional Testing): Thực hiện trên Bảng 79 với tập hợp các test case kiểm tra toàn diện quy trình đăng ký, đăng nhập, phân quyền, kéo thả component, lưu trang, tạo đơn hàng và xử lý thanh toán.
- Kiểm thử giao diện (User Interface Testing): Thực hiện trên Bảng 80, tập trung kiểm tra tính toàn vẹn của layout, khả năng co giãn responsive trên nhiều độ phân giải màn hình (Desktop, Tablet, Mobile) và độ trễ phản hồi của các thành phần đồ họa.
Nội dung chính theo từng chương
Chương 1: Cơ sở lý thuyết
Nội dung chương trình bày tổng quan lý thuyết về ngôn ngữ lập trình JavaScript, cơ chế chạy trên trình duyệt web và khả năng tương tác hướng sự kiện. Tác giả phân tích sâu hệ quản trị cơ sở dữ liệu MongoDB, chỉ ra các ưu điểm về tính linh hoạt của cấu trúc JSON document, cơ chế mở rộng ngang (horizontal scalability) bằng cụm cluster và kỹ thuật đánh chỉ mục tự động trên trường _id; đồng thời thẳng thắn chỉ ra nhược điểm về nguy cơ mất mát dữ liệu do độ trễ ghi từ RAM xuống ổ đĩa (chu kỳ 60 giây) và việc tốn dung lượng do cấu trúc lưu trữ key-value lặp lại. Chương này cũng phân tích nền tảng thực thi NodeJS với kiến trúc non-blocking I/O, framework VueJS trong việc xây dựng Single Page Application tối ưu tốc độ render, và công nghệ ảo hóa container Docker cùng hệ sinh thái Docker Client, Daemon, Volume, Network, Compose.
Chương 2: Khảo sát hiện trạng
Chương 2 mô tả chi tiết quá trình nhóm tác giả trải nghiệm, khảo sát và đánh giá 3 nền tảng tạo website thực tế: WordPress, Wix và Weebly. Nhóm đã ghi nhận các ưu điểm về tính tiện dụng, hệ thống template, khả năng quản trị đa năng, nhưng đồng thời làm rõ các bất cập lớn như: tính phức tạp đòi hỏi người dùng có chuyên môn (WordPress), tốc độ tải trang chậm và khả năng responsive khi biên tập trên thiết bị di động chưa chuẩn xác (Wix, Weebly), hoặc thiếu tích hợp cổng thanh toán trực tuyến nội địa. Từ đó, chương kết luận danh mục các tiêu chí kỹ thuật và trải nghiệm người dùng bắt buộc phải đạt được cho sản phẩm của đề tài.
Chương 3: Mô hình hóa yêu cầu và thiết kế cơ sở dữ liệu
Nội dung chương tập trung vào phân tích thiết kế hệ thống. Tác giả xây dựng sơ đồ tổng quát Use Case Diagram cho toàn bộ hệ thống cùng chi tiết các biểu mẫu và quy định nghiệp vụ áp dụng cho 3 nhóm tác nhân: Guest (7 nghiệp vụ), User (22 nghiệp vụ) và Admin (3 nghiệp vụ). Đi kèm là các sơ đồ luồng dữ liệu (DFD) chi tiết mô tả biến động dữ liệu qua từng hành vi người dùng. Điểm nhấn của chương là bản đặc tả cấu trúc lược đồ dữ liệu cuối cùng, thể hiện rõ sự phân tách vật lý giữa cơ sở dữ liệu trung tâm quản lý nền tảng WebX (15 bảng/collection) và cơ sở dữ liệu bán hàng độc lập của từng website con do người dùng sở hữu (5 bảng/collection).
Chương 4: Thiết kế giao diện và xử lý
Chương 4 là chương có khối lượng nội dung đồ sộ nhất trong đồ án, bao gồm hệ thống hơn 90 hình ảnh chụp màn hình và gần 80 bảng mô tả chi tiết từng đối tượng giao diện (input, button, table, dropdown) cùng bảng danh sách xử lý sự kiện tương ứng. Chương phân định rành mạch thành 3 phân hệ giao diện:
- Phân hệ màn hình của Guest (đăng ký, đăng nhập, quên mật khẩu, các section header/service/template/about-us/contact/footer tại trang chủ).
- Phân hệ màn hình của User (trang chọn template, khởi tạo site, cấu hình thông tin, giao diện kéo thả components, bảng điều khiển quản trị cơ sở dữ liệu, quản lý sản phẩm, đơn hàng, người mua và cổng thanh toán).
- Phân hệ màn hình của Admin (danh sách và chi tiết người dùng, danh sách và chi tiết các website được tạo, hệ thống tiếp nhận và xử lý yêu cầu trợ giúp).
Chương 5: Trích dẫn thuật toán
Chương này đi sâu vào giải thuật thực thi kỹ thuật của hai quy trình cốt lõi mang tính nền tảng của hệ thống: thuật toán lưu trữ trạng thái trang (Save page) từ DOM canvas về cơ sở dữ liệu cấu trúc MongoDB và thuật toán phát hành (Publish website). Tác giả minh họa cấu trúc thư mục, tệp tin và quy chế đóng gói một website bán hàng sau khi được người dùng xuất bản, đảm bảo website con có thể hoạt động độc lập và nhận diện đúng subdomain thông qua cấu hình định tuyến NGINX.
Chương 6: Kiểm thử phần mềm
Nội dung chương trình bày quy trình kiểm thử chất lượng ứng dụng trước khi nghiệm thu. Tác giả thiết lập Bảng kiểm thử chức năng (Bảng 79 - Functional test case) nhằm kiểm định các luồng nghiệp vụ cốt lõi từ đăng ký, cấu hình, thêm sản phẩm đến quy trình đặt hàng và thanh toán trực tuyến. Bên cạnh đó, Bảng kiểm thử giao diện người dùng (Bảng 80 - User interface test case) được thực hiện nhằm đánh giá tính tương thích hiển thị trên các kích thước màn hình khác nhau theo tiêu chuẩn Responsive Web Design và độ ổn định khi thao tác kéo thả component.
Kết quả và đóng góp
Về mặt sản phẩm phần mềm, khóa luận đã hoàn thành các mục tiêu kỹ thuật đặt ra:
- Xây dựng thành công ứng dụng web WebX cho phép người dùng tự thiết kế website bán hàng trực quan thông qua thao tác kéo thả component (Text, Carousel, Image, Button...) mà không cần viết mã lệnh.
- Cho phép người dùng tùy biến màu sắc, kiểu dáng, theme, font chữ và cấu trúc bố cục trang; hỗ trợ tính năng xem trước (preview) trên nhiều kích thước thiết bị.
- Tự động hóa quy trình triển khai (deploy) website hoàn chỉnh lên subdomain thông qua sự kết hợp giữa Docker container và NGINX reverse proxy.
- Các website con được tạo ra đáp ứng tiêu chuẩn Responsive Web Design, sở hữu đầy đủ tính năng thương mại điện tử: tìm kiếm, lọc sản phẩm, giỏ hàng, đặt hàng, gửi email thông báo trạng thái đơn hàng và theo dõi lịch sử mua sắm.
- Cung cấp trang quản trị cơ sở dữ liệu độc lập cho chủ shop để quản lý danh mục hàng hóa, đơn hàng và danh sách khách hàng.
- Tích hợp cổng thanh toán trực tuyến MoMo hỗ trợ thanh toán phí kích hoạt website nhanh chóng.
Về mặt giải pháp và đóng góp khoa học, đề tài đã đưa ra được mô hình kiến trúc phân tách cơ sở dữ liệu độc lập giữa hệ thống tạo web và dữ liệu người dùng cuối, giảm thiểu rủi ro xung đột dữ liệu giữa các tenant; đồng thời giải quyết được bài toán tự động cấu hình định tuyến subdomain bằng phần mềm, mang lại giải pháp công nghệ có tính thực tiễn cho các doanh nghiệp vừa và nhỏ tại Việt Nam.
Hạn chế và hướng nghiên cứu tiếp
Các hạn chế được nhóm tác giả tự xác định bao gồm:
- Vấn đề an toàn dữ liệu của MongoDB: Do cơ chế lưu tạm trên RAM và ghi xuống đĩa sau mỗi 60 giây, hệ thống vẫn tồn tại nguy cơ mất mát dữ liệu nếu phát sinh sự cố phần cứng hoặc cúp điện đột ngột trong khoảng thời gian này.
- Thư viện component kéo thả còn ở mức cơ bản, chưa thực sự phong phú và chưa đáp ứng được các nhu cầu thiết kế layout quá phức tạp.
- Hiệu năng hệ thống: Tốc độ xử lý của trang thiết kế giao diện và dịch vụ máy chủ tệp (file server) vẫn cần tối ưu hóa hơn nữa khi khối lượng dữ liệu hình ảnh và số lượng người dùng đồng thời tăng cao.
Hướng phát triển tiếp theo được đề ra trong báo cáo:
- Tiếp tục bổ sung và đa dạng hóa kho template và danh mục component dựng sẵn phục vụ nhiều ngành hàng kinh doanh khác nhau.
- Tối ưu hóa hiệu năng kết xuất của canvas thiết kế, nâng cấp hạ tầng lưu trữ tệp tin (file server) chuyên dụng.
- Mở rộng tích hợp thêm các cổng thanh toán điện tử khác ngoài MoMo (như VNPay, ZaloPay, thẻ tín dụng quốc tế) và bổ sung các cổng vận chuyển tự động.
Giá trị tham khảo
Báo cáo khóa luận tốt nghiệp này là tài liệu tham khảo có giá trị học thuật và kỹ thuật đối với:
- Sinh viên chuyên ngành Công nghệ phần mềm và Công nghệ thông tin đang thực hiện đồ án tốt nghiệp hoặc các dự án môn học về lập trình web full-stack, đặc biệt là các đề tài liên quan đến Single Page Application và Website Builder.
- Các kỹ sư phát triển phần mềm muốn tìm hiểu phương pháp thiết kế hệ thống multi-tenant phân cấp cơ sở dữ liệu trên MongoDB (tách biệt CSDL hệ sinh thái và CSDL khách hàng).
- Các lập trình viên quan tâm đến giải pháp triển khai tự động (auto-deployment) ứng dụng web sử dụng Docker container kết hợp NGINX reverse proxy để định tuyến subdomain linh hoạt.
- Phân đoạn đáng tham khảo nhất trong tài liệu là Chương 3 (thiết kế CSDL phân cấp page/section/element) và Chương 4 (đặc tả chi tiết các bảng ánh xạ từ đối tượng giao diện sang hàm xử lý logic).
Câu hỏi thường gặp
1. Khóa luận sử dụng cơ chế nào để điều phối tên miền phụ (subdomain) cho các website do người dùng tạo ra?
Hệ thống sử dụng web server NGINX đóng vai trò reverse proxy kết hợp với công nghệ ảo hóa Docker. Khi người dùng hoàn tất thiết kế và thực hiện publish website, hệ thống sẽ cấp phát một subdomain tương ứng, NGINX sẽ tự động nhận diện và chuyển tiếp các yêu cầu mạng từ subdomain đó về đúng container đang chứa mã nguồn và dịch vụ của website bán hàng.
2. Kiến trúc cơ sở dữ liệu của hệ thống được phân chia như thế nào để đảm bảo tính độc lập giữa các website con?
Tác giả thiết kế hai hệ thống CSDL MongoDB riêng biệt: CSDL trung tâm WebX dùng để quản lý tài khoản, cấu trúc giao diện kéo thả (page, section, element, component), thanh toán và hỗ trợ; trong khi mỗi website con của người dùng sở hữu một CSDL WebY độc lập chứa các dữ liệu nghiệp vụ bán hàng riêng biệt (product, order, order_item, user).
3. Nhóm tác giả đã tích hợp phương thức thanh toán trực tuyến nào vào hệ thống?
Hệ thống tích hợp cổng thanh toán ví điện tử MoMo. Chức năng này được kích hoạt khi người dùng lần đầu tiên deploy website của họ lên hệ thống internet, yêu cầu thanh toán để kích hoạt trạng thái hoạt động của trang web.
4. Vì sao hệ quản trị CSDL MongoDB vừa là ưu điểm vừa là nhược điểm trong đồ án này?
MongoDB có ưu điểm là lưu trữ dạng document JSON linh hoạt, không cần join phức tạp, hỗ trợ mở rộng ngang theo cụm (cluster) và truy vấn nhanh nhờ đánh chỉ mục _id tự động và cơ chế cache trên RAM. Tuy nhiên, nhược điểm là tốn dung lượng lưu trữ do lặp lại các trường key, thiếu ràng buộc toàn vẹn dữ liệu như RDBMS, và chu kỳ ghi dữ liệu từ RAM xuống đĩa cứng định kỳ 60 giây tiềm ẩn nguy cơ mất dữ liệu khi xảy ra sự cố đột ngột.
5. Mật khẩu của tài khoản người dùng được xử lý bảo mật như thế nào theo quy định nghiệp vụ của hệ thống?
Theo quy định nghiệp vụ đăng ký (QD_DangKy), toàn bộ mật khẩu người dùng khi nhập vào hệ thống đều được mã hóa theo chuẩn BCrypt trước khi được lưu trữ vào collection user trong cơ sở dữ liệu MongoDB, đảm bảo không lưu trữ mật khẩu dưới dạng văn bản thuần (plain text).
Kết luận
Khóa luận tốt nghiệp "Xây dựng ứng dụng web tạo website bán hàng" của sinh viên Mai Đức Tuấn và Nguyễn Văn Vũ đã hoàn thành tốt các mục tiêu đề ra về mặt nghiên cứu lý thuyết lẫn phát triển phần mềm ứng dụng thực tế. Đề tài đã xây dựng thành công nền tảng WebX hỗ trợ người dùng không chuyên tạo lập website bán hàng chuẩn Responsive thông qua thao tác kéo thả trực quan và tự động deploy lên subdomain. Mặc dù còn một số điểm cần tiếp tục tối ưu hóa về tính phong phú của component và cơ chế đồng bộ dữ liệu MongoDB, hệ thống đã chứng minh được tính khả thi và cung cấp một mô hình tham khảo chuẩn mực cho các giải pháp kiến trúc website builder hiện đại.