Bối cảnh và vấn đề nghiên cứu

Khóa luận tốt nghiệp "Tìm hiểu django, reactjs và xây dựng website bán hàng" được thực hiện bởi sinh viên Phạm Thanh Sơn (MSSV: 15110301) và Nguyễn Thị Trúc (MSSV: 15110349), dưới sự hướng dẫn của ThS. Nguyễn Hữu Trung tại Khoa Công nghệ Thông tin, chuyên ngành Công nghệ Phần mềm, Trường Đại học Sư phạm Kỹ thuật Thành phố Hồ Chí Minh. Thời gian thực hiện đề tài kéo dài từ ngày 10/03/2019 đến ngày 15/07/2019.

Bối cảnh thực tiễn được tác giả xác định xuất phát từ sự bùng nổ của công nghệ thông tin và sự phổ biến của các thiết bị di động trong đời sống xã hội. Việc ứng dụng công nghệ thông tin vào công tác quản lý bán hàng giúp các đơn vị kinh doanh nắm bắt thông tin hàng hóa, vật tư, thiết bị, dữ liệu khách hàng và trạng thái đơn hàng một cách kịp thời và chính xác, từ đó hỗ trợ nhà quản lý ra quyết định, tiết giảm chi phí vận hành và tăng cường năng lực cạnh tranh. Đối với người tiêu dùng, phương thức mua sắm trực tuyến giải quyết rào cản phải đến trực tiếp cửa hàng, tiết kiệm thời gian tìm kiếm thông tin sản phẩm và mở rộng khả năng tiếp cận các mặt hàng đa dạng trên thị trường. Do đó, việc nghiên cứu xây dựng phần mềm thương mại điện tử trực tuyến là bài toán có tính ứng dụng thực tế.

Mục tiêu chung của đề tài là xây dựng hoàn chỉnh một website bán hàng với các chức năng cơ bản, bao gồm:

  • Khách hàng có thể tìm kiếm thông tin về các sản phẩm của website.
  • Thực hiện thêm, xóa, sửa thông tin và hình ảnh về các sản phẩm.
  • Quản trị thêm mới sản phẩm, chỉnh sửa hoặc xóa sản phẩm cũ, xem chi tiết sản phẩm.
  • Quản trị xem chi tiết, chỉnh sửa thông tin tài khoản người dùng.
  • Quản trị chỉnh sửa, xóa danh mục loại sản phẩm.
  • Quản lý danh sách nhân viên và khách hàng.
  • Nhân viên thực hiện quản lý, kiểm duyệt đơn hàng.
  • Người dùng tham gia đánh giá và bình luận về sản phẩm.
  • Hỗ trợ tải tập tin (upload file) phục vụ công tác quản lý sản phẩm.
  • Thực hiện phân quyền người dùng trong toàn hệ thống.

Để đạt được các mục tiêu trên, khóa luận xác lập 3 nhiệm vụ nghiên cứu cụ thể:

  1. Khảo sát hiện trạng website thực tế.
  2. Tìm hiểu Django, Django REST framework và ReactJS.
  3. Áp dụng kiến thức đã tìm hiểu để xây dựng website bán hàng.

Đối tượng nghiên cứu của đề tài là nền tảng framework Django, thư viện giao diện ReactJS và quy trình xây dựng ứng dụng website bán hàng. Phạm vi nghiên cứu tập trung vào mô hình ứng dụng web thương mại điện tử (đặc thù cho các sản phẩm thiết bị công nghệ, điện thoại di động), được khảo sát đối chiếu với hệ thống thực tế tại Việt Nam và triển khai trong khuôn khổ đồ án tốt nghiệp đại học trong giai đoạn từ tháng 03/2019 đến tháng 07/2019.

Cơ sở lý thuyết và phương pháp

Khóa luận thiết lập nền tảng lý thuyết dựa trên các công nghệ phần mềm hiện đại phục vụ phát triển ứng dụng web:

  • Django: Là web framework mã nguồn mở viết bằng ngôn ngữ Python, do Django Software Foundation (DSF) phát triển dựa trên kiến trúc Model-View-Controller (MVC/MVT). Tác giả làm rõ các ưu điểm cốt lõi của Django gồm: tốc độ phát triển ứng dụng nhanh; tích hợp sẵn các mô-đun xác thực người dùng (user authentication), trang quản trị nội dung (content admin) và sơ đồ trang web (site maps); tính bảo mật cao trước các lỗ hổng như SQL Injection, Cross-Site Scripting (XSS), Cross-Site Request Forgery (CSRF) và clickjacking; khả năng mở rộng xử lý lưu lượng truy cập lớn; tính năng tự động tạo bảng SQL từ cấu trúc mô hình (models); bộ sinh biểu mẫu (form generator) tự động kết nối mô hình; giao diện admin quản lý cơ sở dữ liệu tích hợp sẵn và môi trường dòng lệnh Python shell hỗ trợ gỡ lỗi.
  • Django REST Framework (DRF): Bộ công cụ mở rộng của Django dùng để xây dựng các dịch vụ Web API theo kiến trúc REST (Representational State Transfer). Các tài nguyên hệ thống (văn bản, hình ảnh, dữ liệu động) được định danh qua URI và biểu diễn dưới các định dạng tiêu chuẩn như JSON, XML. DRF cung cấp tính năng duyệt API trực tiếp trên trình duyệt (browsable API), cơ chế chuyển đổi dữ liệu (serialization) hỗ trợ cả dữ liệu ORM lẫn non-ORM và khả năng tùy biến cao.
  • ReactJS: Thư viện JavaScript mã nguồn mở chuyên xây dựng giao diện người dùng (UI) tương tác cao, do Jordan Walke tại Facebook phát triển (chịu ảnh hưởng từ XHP) và được công bố mã nguồn mở tại JSConf US vào tháng 5/2013. Tác giả phân tích các cơ chế kỹ thuật then chốt của ReactJS:
    • Virtual DOM (DOM ảo): Cải thiện hiệu năng xử lý giao diện bằng cách duy trì đối tượng JavaScript mô phỏng DOM thật. Khi dữ liệu thay đổi, ReactJS tính toán độ sai khác (diffing) giữa DOM ảo và DOM thật để áp dụng các bản vá cục bộ, hạn chế tải lại toàn trang và giảm tải truy vấn từ máy chủ.
    • One-way data binding (Luồng dữ liệu một chiều): Dữ liệu truyền từ thành phần cha xuống thành phần con thông qua props, giúp kiểm soát luồng thông tin và đơn giản hóa việc sửa lỗi.
    • JSX: Cú pháp mở rộng cho phép viết mã HTML trực tiếp trong JavaScript, có ưu điểm tối ưu hóa biên dịch nhanh hơn, an toàn hơn nhờ cơ chế kiểu tĩnh (statically-typed) giúp phát hiện lỗi khi biên dịch và dễ sử dụng cho lập trình viên JavaScript.
    • Kiến trúc Component: Ứng dụng được chia nhỏ thành các thành phần độc lập có thể tái sử dụng, trong đó phương thức render đóng vai trò chủ đạo, kết hợp chặt chẽ giữa thuộc tính bất biến (props) và trạng thái nội tại (state).

Phương pháp nghiên cứu thực tế được nhóm tác giả kết hợp đa dạng:

  • Phương pháp lý thuyết: Vận dụng các nguyên lý kỹ thuật thiết kế hệ thống thông tin, các phương pháp tổ chức, phân tích và chuẩn hóa thiết kế cơ sở dữ liệu quan hệ.
  • Phương pháp kỹ thuật: Sử dụng Django, Django REST framework để xây dựng hệ thống API phía máy chủ và ReactJS để lập trình giao diện tương tác người dùng.
  • Phương pháp nghiên cứu tài liệu: Thu thập, đọc và tổng hợp thông tin từ sách điện tử (ebook), khóa luận chuyên ngành, tài liệu đặc tả kỹ thuật chính thức và các bài viết học thuật liên quan đến Python, Django và ReactJS.
  • Phương pháp khảo sát thực tế: Đánh giá trực quan hiện trạng giao diện, quy trình mua sắm, giỏ hàng và danh mục sản phẩm từ các website bán lẻ lớn tại Việt Nam là Phong Vũ và Nguyễn Kim.
  • Phương pháp chuyên gia: Tiếp nhận sự định hướng, tham vấn và đóng góp chuyên môn từ giảng viên hướng dẫn ThS. Nguyễn Hữu Trung cùng các giảng viên thuộc Khoa Công nghệ Thông tin.

Nguồn dữ liệu của nghiên cứu bao gồm tài liệu kỹ thuật từ nhà phát triển công nghệ, dữ liệu khảo sát giao diện thực tế và cấu trúc dữ liệu mô phỏng cho danh mục thiết bị công nghệ, điện thoại di động và thông tin đơn hàng.

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 người dùng (Front-end) và máy chủ cung cấp dịch vụ dữ liệu (Back-end) thông qua RESTful API, đảm bảo khả năng mở rộng và tái sử dụng mã nguồn.

Thành phần kiến trúc Công nghệ sử dụng Vai trò triển khai
Front-end ReactJS, JSX Xây dựng giao diện Single Page Application (SPA), quản lý trạng thái bằng Component/State/Props, tối ưu cập nhật qua Virtual DOM.
Back-end API Python, Django, Django REST Framework Xử lý logic nghiệp vụ, quản lý phiên, phân quyền xác thực, cung cấp Web API chuẩn JSON/XML thông qua Serializer.
Cơ sở dữ liệu Mô hình cơ sở dữ liệu quan hệ (RDBMS) Lưu trữ thông tin người dùng, sản phẩm, đơn hàng, cấu hình khuyến mãi thông qua hệ thống ORM của Django.

Hệ thống phân quyền truy cập thành 4 nhóm tác nhân với phạm vi chức năng rõ ràng:

Nhóm tác nhân Danh mục chức năng được phân quyền
Khách (Guest) Xem danh sách sản phẩm, tìm kiếm sản phẩm theo tên và giá, đăng ký tài khoản mới, đăng nhập hệ thống.
Người dùng (User) Kế thừa toàn bộ quyền của Khách; chỉnh sửa thông tin cá nhân; đổi mật khẩu; thêm sản phẩm vào giỏ hàng; mua ngay; thanh toán đơn hàng (tiền mặt/thẻ tín dụng); kiểm tra trạng thái đơn hàng; bình luận và đánh giá sao sản phẩm đã giao dịch thành công.
Nhân viên (Employees) Đổi mật khẩu tài khoản; kiểm duyệt đơn hàng (xem thông tin, xóa đơn hàng chưa giao); tra cứu và quản lý sản phẩm trong kho; thiết lập và kích hoạt chương trình Flash Sale.
Quản trị viên (Admin) Toàn quyền trên hệ thống; quản lý sản phẩm (thêm, sửa, xóa, tải ảnh); quản lý loại sản phẩm (thêm, sửa); quản lý đơn hàng đã hoàn tất; quản lý hồ sơ nhân viên và khách hàng; quản lý điểm tích lũy xu; thống kê báo cáo.

Cơ sở dữ liệu của hệ thống được chuẩn hóa với 15 bảng liên kết chặt chẽ:

  1. user: Lưu trữ tài khoản người dùng và thông tin cá nhân (User_id, UserName, First_name, Last_name, Is_staff_gun, Is_user, Is_superUser, Phone, Email, Address, Identify, Is_active, Date_joined).
  2. bill: Quản lý thông tin hóa đơn tổng quát (Bill_id, Create_date, Total_price, Address, Status, User, Status_Product, Staff).
  3. detail order: Lưu chi tiết các sản phẩm trong từng hóa đơn (Detail_id, Number_product_order, Product, Bill).
  4. product: Thông tin chi tiết cấu hình và đặc tính hàng hóa (Product_id, Name, Image, Price, Quantity, Rating, Size, OperatingSystem, Color, Cpu, Memory, Camera, Pin, Gurante, Promotion, Start_promotion, End_promotion, Category, Pay_type với quy ước 0: tiền mặt, 1: card).
  5. status product: Danh mục định nghĩa trạng thái đơn hàng/sản phẩm (Status_id, Status).
  6. staff: Thông tin nhân sự vận hành (Staff_id, Name, Phone).
  7. dealed product: Dữ liệu lịch sử sản phẩm đã bán phục vụ thống kê (Dealed_id, Number_product_dealed, Product, Year, Month, Day).
  8. category: Phân loại danh mục sản phẩm (Category_id, Name).
  9. flash product: Danh sách các sản phẩm áp dụng giảm giá nhanh (FlashProduct_id, FlashSale, Product).
  10. Flash Sale: Quản lý các khung giờ giảm giá chớp nhoáng (Flash_id, Start_flash, End_Flash).
  11. comment: Ý kiến phản hồi của khách hàng (Comment_id, Time_comment, Content, Product, User).
  12. cart: Trạng thái giỏ hàng của từng người dùng (Cart_id, Product, User, Number_buy).
  13. coin: Điểm thưởng tích lũy của khách hàng (Coin_id, User, Count).
  14. logging: Ghi nhận nhật ký đăng nhập hệ thống (Logging_id, Date_logging, User).
  15. transporter: Thông tin đơn vị vận chuyển hàng hóa (Transporter_id, Name).

Quá trình kiểm thử được tiến hành ở giai đoạn hoàn thiện dự án, tập trung vào việc đánh giá tính đúng đắn của toàn bộ các ca sử dụng (Use case) chức năng trên môi trường web.

Nội dung chính theo từng chương

Chương 1: Cơ sở lý thuyết

Chương này giới thiệu tổng quan về các nền tảng kỹ thuật được lựa chọn. Tác giả trình bày cấu trúc, tính năng của Django và Django REST Framework trong việc thiết kế kiến trúc RESTful Web Service. Đồng thời, chương 1 phân tích sâu về thư viện ReactJS, làm rõ nguyên lý hoạt động của DOM ảo (Virtual DOM) trong việc tối ưu hóa hiệu năng kết xuất giao diện, cơ chế luồng dữ liệu một chiều (One-way data binding), cú pháp JSX và mô hình quản lý thành phần (Components) dựa trên phương thức render, props và state.

Chương 2: Khảo sát hiện trạng và xác định yêu cầu

Nội dung chương tập trung phản ánh thực trạng thị trường thương mại điện tử tại Việt Nam. Tác giả chỉ ra rằng hình thức mua sắm trực tuyến rất phổ biến với giới trẻ nhờ tiết kiệm thời gian, song nhóm khách hàng từ 40 tuổi trở lên vẫn còn e ngại về độ tin cậy, hình thức thanh toán, chất lượng đóng gói và thời gian giao nhận.

Khóa luận tiến hành khảo sát thực nghiệm hai hệ thống bán lẻ trực tuyến tiêu biểu:

Hệ thống khảo sát Ưu điểm ghi nhận Nhược điểm ghi nhận
Website Phong Vũ Đầy đủ chức năng; hỗ trợ thanh toán thẻ tín dụng; giao diện thân thiện; tốc độ xử lý nhanh. Bố trí quá nhiều danh mục liên tiếp gây rối mắt cho người mua.
Website Nguyễn Kim Đầy đủ chức năng; hỗ trợ thanh toán thẻ tín dụng; giao diện thân thiện; tốc độ xử lý nhanh. Bố trí quá nhiều danh mục liên tiếp gây rối mắt cho người mua.

Từ kết quả khảo sát, tác giả xác định chi tiết các yêu cầu chức năng nghiệp vụ (lưu trữ, tra cứu, tính toán, thống kê sản phẩm theo tháng/năm/hãng), yêu cầu chức năng hệ thống theo 4 nhóm người dùng và các yêu cầu phi chức năng về tính tiện dụng, tính an toàn thông tin và tính tiến hóa của phần mềm.

Chương 3: Mô hình hóa yêu cầu và thiết kế dữ liệu

Chương 3 chuyển hóa các yêu cầu đã xác định thành mô hình phân tích hệ thống:

  • Bảng nhận diện tác nhân và chức năng tương ứng cho Quản trị viên, Nhân viên, Người dùng và Khách.
  • Xây dựng sơ đồ Use Case tổng quát và 8 sơ đồ Use Case phân rã chuyên sâu (Kiểm duyệt đơn hàng, Quản lý sản phẩm trong kho, Quản lý Flash Sale, Quản lý sản phẩm, Quản lý nhân viên, Thống kê, Quản lý loại sản phẩm, Quản lý thông tin khách hàng).
  • Đặc tả chi tiết 20 kịch bản Use Case, nêu rõ tiền điều kiện, tác nhân kích hoạt và trình tự các bước thực hiện tuần tự.
  • Xây dựng sơ đồ quan hệ thực thể và mô tả chi tiết đặc tính kỹ thuật của 15 bảng cơ sở dữ liệu quan hệ, quy định rõ kiểu dữ liệu, khóa chính và khóa ngoại.

Chương 4: Thiết kế giao diện và luồng xử lý

Chương này mô tả chi tiết thiết kế trực quan của hệ thống phần mềm:

  • Thiết lập danh sách các màn hình và sơ đồ chuyển đổi giao diện tổng thể.
  • Xây dựng bảng mô tả đối tượng giao diện và sơ đồ biến cố chi tiết cho từng màn hình: Đăng nhập, Đăng ký tài khoản, Trang chủ, Chi tiết sản phẩm, Giỏ hàng, Thanh toán, Chỉnh sửa thông tin cá nhân, Kiểm tra đơn hàng, Quản lý đơn hàng, Quản lý kho, Quản lý Flash Sale, Quản lý sản phẩm, Quản lý nhân viên, Quản lý loại sản phẩm, Quản lý khách hàng, Quản lý đơn vị vận chuyển, Quản lý xu và Thống kê.
  • Xây dựng hệ thống 17 lược đồ tuần tự (Sequence Diagram) mô tả luồng tương tác giữa người dùng, giao diện, bộ điều khiển và cơ sở dữ liệu đối với toàn bộ các tác vụ trọng yếu trong hệ thống.

Chương 5: Kiểm thử

Chương 5 trình bày công tác kiểm thử chức năng của hệ thống website (thể hiện tại Bảng kiểm thử chức năng của website, trang 80). Nội dung kiểm thử tập trung rà soát tính chính xác của các luồng nghiệp vụ từ đăng ký, đăng nhập, tìm kiếm, đưa hàng vào giỏ, quy trình thanh toán, tính toán trừ điểm tích lũy xu, cho đến các luồng phê duyệt đơn hàng của nhân viên và quản lý cấu hình danh mục của quản trị viên.

Kết quả và đóng góp

Khóa luận đã hoàn thành các mục tiêu đề ra và ghi nhận các kết quả cụ thể:

  • Làm chủ được quy trình kết hợp giữa Django (Back-end) và ReactJS (Front-end) trong phát triển ứng dụng thương mại điện tử.
  • Xây dựng thành công hệ thống website bán hàng hoàn chỉnh với cơ chế phân quyền 4 cấp độ (Khách, Người dùng, Nhân viên, Quản trị viên).
  • Cung cấp đầy đủ các chức năng tương tác khách hàng: tìm kiếm sản phẩm theo tên và mức giá; xem thông số kỹ thuật chi tiết; quản lý giỏ hàng; mua ngay; tích hợp thanh toán (trực tiếp khi nhận hàng hoặc qua thẻ tín dụng); bình luận và đánh giá mức độ hài lòng theo số sao; theo dõi trạng thái đơn hàng.
  • Thiết lập cơ chế ưu đãi linh hoạt: chức năng tích lũy và sử dụng xu (coin), trong đó mỗi điểm tích lũy quy đổi tương ứng giảm 1.000 đồng khi thanh toán; chức năng quản lý và kích hoạt sự kiện Flash Sale theo khung thời gian bắt đầu và kết thúc xác định.
  • Cung cấp giao diện quản trị toàn diện: quản lý hồ sơ nhân viên, khách hàng; thêm mới, sửa, xóa sản phẩm kèm tính năng tải tệp hình ảnh đại diện; quản lý danh mục phân loại; theo dõi trạng thái giao hàng và hỗ trợ xóa đơn hàng chưa giao.
  • Xây dựng mô-đun báo cáo thống kê cho phép nhà quản trị trích xuất số lượng hàng bán ra linh hoạt theo tháng, theo năm và phân loại theo từng hãng thiết bị.

Đóng góp của đồ án thể hiện ở việc hệ thống hóa toàn diện quy trình phân tích, thiết kế phần mềm thương mại điện tử theo chuẩn học thuật chuyên ngành Công nghệ Phần mềm, từ khảo sát thực tế, mô hình hóa Use Case, thiết kế lược đồ tuần tự, đặc tả 15 bảng cơ sở dữ liệu quan hệ cho đến triển khai giao diện theo kiến trúc SPA hiện đại.

Hạn chế và hướng nghiên cứu tiếp

Theo tự nhận định của nhóm tác giả trong văn bản, báo cáo khóa luận cũng như ứng dụng website hoàn thành vẫn còn tồn tại các mặt chưa đạt được và hạn chế nhất định:

  • Hệ thống chỉ mới dừng lại ở việc đáp ứng các chức năng mua bán cơ bản, quy trình vận hành và kiểm duyệt đơn hàng vẫn ở mức mô phỏng cục bộ.
  • Cơ chế thanh toán qua thẻ tín dụng và liên kết đơn vị vận chuyển mới dừng lại ở mức thiết kế bảng lưu trữ dữ liệu và lựa chọn giao diện, chưa tích hợp cổng thanh toán trực tuyến và dịch vụ chuyển phát ngoài thực tế.
  • Khảo sát thực tế chỉ ra nhiều khó khăn về khâu đóng gói, quản lý vận hành đổi trả hàng hóa và rào cản tâm lý của nhóm khách hàng trên 40 tuổi chưa được giải quyết triệt để trong khuôn khổ phần mềm này.

Hướng phát triển tiếp theo được tác giả xác định bao gồm việc nâng cấp và chỉnh sửa các chức năng của ứng dụng nhằm đáp ứng tốt hơn các yêu cầu thực tế phát sinh của người dùng và ban quản trị, đồng thời hoàn thiện kiến trúc giao diện để có thể tái sử dụng thuận lợi cho các dự án phát triển phần mềm trong tương lai.

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 sinh viên chuyên ngành Công nghệ thông tin, Công nghệ phần mềm và các lập trình viên đang nghiên cứu xây dựng ứng dụng web với kiến trúc tách biệt giữa Django REST Framework và ReactJS.

Nội dung tài liệu mang lại giá trị thực hành cao ở các phần:

  • Phương pháp phân tích, mô hình hóa yêu cầu thông qua hệ thống sơ đồ Use Case và bảng đặc tả Use Case chi tiết.
  • Cấu trúc thiết kế cơ sở dữ liệu quan hệ hoàn chỉnh (15 bảng) đáp ứng đầy đủ nghiệp vụ thương mại điện tử phức tạp như thuộc tính chi tiết thiết bị, giỏ hàng, giảm giá flash sale, nhật ký hệ thống và tính điểm tích lũy xu.
  • Bộ sưu tập các lược đồ tuần tự (Sequence Diagram) và sơ đồ biến cố giao diện, hỗ trợ việc học tập kỹ thuật thiết kế phần mềm hướng đối tượng.

Câu hỏi thường gặp

1. Khóa luận sử dụng những công nghệ then chốt nào để xây dựng hệ thống website bán hàng?
Hệ thống sử dụng Python kết hợp với web framework Django và Django REST Framework để xây dựng hệ thống quản trị và các dịch vụ RESTful Web API ở phía máy chủ (Back-end). Phía giao diện người dùng (Front-end) được phát triển hoàn toàn bằng thư viện ReactJS kết hợp cú pháp JSX, tối ưu kết xuất giao diện dựa trên DOM ảo (Virtual DOM) và quản lý luồng dữ liệu một chiều.

2. Hệ thống phân chia người dùng thành các tác nhân nào và quyền hạn khác nhau ra sao?
Hệ thống nhận diện 4 nhóm tác nhân:

  • Khách: Xem, tìm kiếm sản phẩm và đăng ký tài khoản.
  • Người dùng: Thực hiện các quyền của Khách, kèm thêm mua hàng, thêm vào giỏ, thanh toán, đổi mật khẩu, sửa thông tin cá nhân, kiểm tra đơn hàng, bình luận và đánh giá sao.
  • Nhân viên: Kiểm duyệt đơn hàng (xóa đơn hàng chưa giao), xem sản phẩm trong kho và kích hoạt Flash Sale.
  • Quản trị viên: Quản lý toàn diện sản phẩm, loại sản phẩm, đơn hàng đã giao, nhân viên, thông tin khách hàng, số xu tích lũy và thống kê báo cáo.

3. Cơ chế quy đổi điểm tích lũy (xu) khi mua hàng trên website được quy định như thế nào?
Theo bảng đặc tả Use Case "Thêm sản phẩm vào giỏ hàng" và "Mua ngay", khi người dùng thực hiện giao dịch, hệ thống cho phép chọn số lượng điểm tích lũy muốn sử dụng, trong đó mỗi điểm (1 xu) tương ứng giảm trực tiếp 1.000 đồng vào giá trị thanh toán của đơn hàng. Quản trị viên có màn hình riêng để theo dõi tổng số xu của từng khách hàng qua bảng coin.

4. Dữ liệu khảo sát thực tế được tác giả thu thập từ những hệ thống nào và rút ra kết luận gì?
Tác giả đã khảo sát trực tiếp giao diện và quy trình bán hàng của website Phong Vũ và website Nguyễn Kim. Cả hai hệ thống đều được đánh giá có ưu điểm là đầy đủ chức năng, hỗ trợ thanh toán thẻ tín dụng, giao diện thân thiện và tốc độ xử lý nhanh; tuy nhiên đều mắc nhược điểm chung là bố trí quá nhiều danh mục sản phẩm liên tiếp gây rối cho người mua hàng.

5. Cơ sở dữ liệu của hệ thống gồm bao nhiêu bảng và bảng product lưu trữ những thông số phần cứng cụ thể nào?
Cơ sở dữ liệu bao gồm 15 bảng dữ liệu. Bảng product được thiết kế chuyên biệt để lưu trữ các thông số kỹ thuật của thiết bị di động, bao gồm: Product_id, Name, Image, Price, Quantity, Rating, Size, OperatingSystem (hệ điều hành), Color (màu sắc), Cpu, Memory (bộ nhớ), Camera (thông số máy ảnh), Pin, Gurante (thời gian bảo hành), Promotion, Start_promotion, End_promotion, Category và Pay_type.

Kết luận

Khóa luận tốt nghiệp của sinh viên Phạm Thanh Sơn và Nguyễn Thị Trúc tại Trường Đại học Sư phạm Kỹ thuật TP.HCM đã hoàn thành việc nghiên cứu nền tảng Django, Django REST Framework và ReactJS nhằm áp dụng vào xây dựng website bán lẻ trực tuyến. Báo cáo đã giải quyết tương đối trọn vẹn các giai đoạn trong quy trình phát triển phần mềm, từ khảo sát hiện trạng, phân tích yêu cầu nghiệp vụ, mô hình hóa hệ thống với 15 bảng dữ liệu đến thiết kế giao diện và kiểm thử chức năng. Dù còn một số hạn chế về mặt tích hợp thanh toán và dịch vụ vận chuyển thực tế bên ngoài, công trình là tài liệu tham khảo bài bản và hữu ích cho sinh viên chuyên ngành Công nghệ phần mềm khi tiếp cận mô hình phát triển web hiện đại.