1. Trang chủ
  2. » Luận Văn - Báo Cáo

Xây dựng website bán hàng trực tuyến dành cho siêu thị bằng reactjs, nodejs và mongodb

82 3 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Xây dựng website bán hàng trực tuyến dành cho siêu thị bằng reactjs, nodejs và mongodb
Tác giả Nguyễn Bằng Đức
Người hướng dẫn PGS.TS Nguyễn Việt Anh
Trường học Trường Đại Học Hòa Bình
Chuyên ngành Công Nghệ Thông Tin & Điện Tử Viễn Thông
Thể loại Khóa luận tốt nghiệp
Năm xuất bản 2021
Thành phố Hà Nội
Định dạng
Số trang 82
Dung lượng 4,89 MB

Cấu trúc

  • 1. LÝ DO CHỌN ĐỀ TÀI (8)
  • 2. MỤC ĐÍCH VÀ Ý NGHĨA CỦA ĐỀ TÀI (0)
    • 2.1 Mục đích của đề tài (8)
    • 2.2 Ý nghĩa của đề tài (9)
  • 3. ĐỐI TƢỢNG NGHIÊN CỨU (0)
  • 4. PHẠM VI NGHIÊN CỨU (9)
  • 5. PHƯƠNG PHÁP NGHIÊN CỨU (0)
  • 6. KHẢO SÁT VÀ PHÂN TÍCH HỆ THỐNG (10)
    • 6.1 Các chức năng (10)
    • 6.2 Thiết bị và phần mềm (11)
  • CHƯƠNG I: TỔNG QUAN VỀ MONGODB, REACTJS-REDUXJS, FRAME (0)
    • 1.1 Tổng quan về MongoDb (12)
      • 1.1.1 MongoDb là gì? (12)
      • 1.1.2 Ƣu điểm khi dùng MongoDb so với RDBMS (0)
    • 1.2 Framework Hapi.js (13)
      • 1.2.1 Framework Hapi.js là gì? (13)
      • 1.2.1 Ƣu điểm khi dùng Framework Hapi.js (0)
      • 1.2.2 Mô hình MVC (14)
    • 1.3 Nền tảng thƣ viện trình bày trang Bootstrap (16)
      • 1.3.1 Bootstrap là gì? (16)
      • 1.3.2 Tính năng của Bootstrap (16)
    • 1.4 Thƣ viện React.js – Redux.js (16)
      • 1.4.1 Tổng quan về React.js – Redux.js (16)
      • 1.4.2 Giới thiệu về React js và Redux js (16)
    • 1.5 Tìm hiểu về Restful API (17)
      • 1.5.1 Tổng quan về Restful API (17)
      • 1.5.2 Cách thức hoạt động của Restful API (19)
  • CHƯƠNG II: PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG WEBSITE (0)
    • 2.1 NHU CẦU DỰ ÁN (20)
    • 2.2 MỤC TIÊU DỰ ÁN (20)
    • 2.3 PHÂN TÍCH YÊU CẦU HỆ THỐNG (21)
      • 2.3.1 Yêu cầu chức năng (21)
      • 2.3.2 Yêu cầu phi chức năng (22)
      • 2.3.3 Yêu cầu nền tảng hệ thống (22)
    • 2.4 PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG (23)
      • 2.4.1 Biểu đồ Use case (23)
      • 2.4.2 Biểu đồ tuần tự (38)
      • 2.4.3 Biểu đồ hoạt động (42)
      • 2.4.4 Thiết kế cơ sở dữ liệu (50)
  • CHƯƠNG III: XÂY DỰNG CHƯƠNG TRÌNH THỬ NGHIỆM (0)
    • 3.1 Giao diện trang quản trị (58)
      • 3.1.1 Giao diện trang chủ trang quản trị (58)
      • 3.1.2 Giao diện trang phân quyền (59)
      • 3.1.3 Giao diện trang quản lí hóa đơn (60)
      • 3.1.4 Giao diện trang quản lí thể loại sản phẩm (61)
      • 3.1.5 Giao diện quản lí các nhà sản xuất (62)
      • 3.1.6 Giao diện quản lí sản phẩm (63)
      • 3.1.7 Giao diện trang lưu đánh giá các sản phẩm (64)
      • 3.1.8 Giao diện trang hỗ trợ khách hàng (64)
    • 3.2 Giao diện trang chủ (65)
      • 3.2.1 Giao diện trang index (65)
      • 3.2.2 Giao diện trang chi tiết sản phẩm (66)
      • 3.2.3 Giao diện trang phân loại sản phẩm (67)
      • 3.2.4 Giao diện trang tất cả sản phẩm (68)
      • 3.2.5 Giao diện trang thông tin (69)
      • 3.2.6 Giao diện trang liên hệ - hỗ trợ (70)
      • 3.2.7 Giao diện giỏ hàng (71)
      • 3.2.8 Giao diện thanh toán (71)
  • CHƯƠNG IV: THỰC NGHIỆM VÀ ĐÁNH GIÁ (0)
    • 4.1 Môi trường thử nghiệm (73)
    • 4.2 Chức năng giỏ hàng (74)
    • 4.3 Chức năng hiển thị sản phẩm (75)
    • 4.4 Chức năng thêm và sửa thông tin sản phẩm (76)
    • 4.5 Đánh giá chung (80)

Nội dung

2 Thành viên Là thành viên đã đăng ký tài khoản của hệ thống, kế thừa các chức năng của Khách, có quyền xem, tìm kiếm thông tin, liên hệ, đánh giá sản phẩm, mua hàng, phản hồi cho admin,

MỤC ĐÍCH VÀ Ý NGHĨA CỦA ĐỀ TÀI

Mục đích của đề tài

- Đáp ứng nhu cầu mua, tìm kiếm sản phẩm, xây dựng nên một môi trường mua sắm thuận tiện và trực quan, dễ dàng thao tác với nhiều đối tƣợng sử dụng

- Giúp khách hàng có cái nhìn chi tiết về sản phẩm, thông tin đặc tính của sản phẩm

- Rút ngắn khoảng cách giữa người mua và người bán

- Việc quản lý sản phẩm trở nên dễ dàng

- Sản phẩm được sắp xếp có hệ thống nên người mua dễ tìm kiếm sản phẩm

- Cải thiện tốc độ xử lý, tạo cảm nhận tốt cho người sử dụng

Ý nghĩa của đề tài

- Là một hệ thống cung cấp môi trường bán hàng, các thông tin sản phẩm đƣợc cập nhật theo định kỳ

Với sự bùng nổ của thương mại điện tử, người mua không cần phải trực tiếp đến cửa hàng để mua sắm Họ có thể thoải mái ngồi tại nhà, lướt web tìm kiếm sản phẩm ưng ý, đặt hàng trực tuyến và chỉ sau vài ngày sẽ nhận được hàng tùy theo vị trí địa lý.

- Người bán có thể dễ dàng quản lý được sản phẩm của mình, cũng như báo cáo thống kê doanh thu, tình hình kinh doanh

- Các sản phẩm đƣợc sắp xếp hợp lý, tìm kiếm dựa trên tên nhà cung cấp, tên sản phẩm, mô tả của sản phẩm Vì vậy người dùng sẽ có cái nhìn tổng quan về tất cả các sản phẩm hiện có

- Người dùng có thể xem chi tiết thông tin sản phẩm, nhà sản xuất

- Khi đã chọn được sản phẩm ưng ý, người dùng có thể nhấn nút đặt hàng để đặt mua sản phẩm đó

- Người dùng vẫn có thể quay trở lại trang sản phẩm để xem và chọn tiếp

- Tìm hiểu các công cụ hỗ trợ phân tích thiết thiết kế hệ thống hướng đối tƣợng,…

- Tìm hiểu về nền tảng Nodejs, Framework Hapijs, Reactjs, Reduxjs,…

- Quy trình nghiệp vụ bán hàng, khuyến mãi, giao hàng, phương thức thanh toán

- Về thời gian: từ 01/5/2021 đến 01/7/2021

+ Tìm hiểu về Framework Hapi.js cho Back end và Framework React-Redux cho Front end

+ Quy trình nghiệp vụ bán hàng hàng online

- Tìm hiểu các tài liệu liên quan (quy trình bán hàng online,….)

- Phân tích và lựa chọn giải pháp

- Tổng hợp các tài liệu liên quan đến xây dựng và phát triển phần mềm

- Góp ý của giảng viên hướng dẫn

6 KHẢO SÁT VÀ PHÂN TÍCH HỆ TH NG

- Đây là 1 website bán và giới thiệu sản phẩm của siêu thị điện tử đến người tiêu dùng với các chi tiết mặt hàng và giá cả chính xác Website có các chức năng sau:

 Thứ nhất: Phần khách hàng:

Khách hàng là những người có nhu cầu mua sắm hàng hoá, họ sẽ tìm kiếm các mặt hàng cần thiết từ hệ thống và đặt mua các mặt hàng này Vì thế, phải có các chức năng sau:

 Hiển thị danh sách các mặt hàng của siêu thị để khách hàng có thể xem, lựa chọn và mua Có thể tìm kiếm, sắp xếp, lọc theo giá cả, nhà sản xuất của sản phẩm theo nhu cầu của khách hàng

 Hiển thị danh sách các mặt hàng ƣa thích mà khách hàng đã lựa chọn để tiện cho việc mua sắm

 Hiển thị đƣợc chi tiết về giá cả, nhà sản xuất, số lƣợng, các đánh giá của những người mua khác của 1 sản phẩm, các sản phẩm cùng loại trong trang chi tiết sản phẩm

 Khách hàng xem các thông tin, tin tức mới, khuyến mãi ngay trên trang web

 Sau khi khách hàng chọn và đặt hàng thì phải hiện lên đơn hàng và khách hàng có thể nhập thông tin mua hàng và xem hoá đơn mua hàng Khách hàng sẽ thực hiện thanh toán qua các phương thức như: Thanh toán trực tiếp khi nhận hàng, thanh toán qua cổng thanh toán PayPal,…

 Thứ hai: Dành cho người quản trị: Người làm chủ ứng dụng có quyền kiểm soát mọi hoạt động của hệ thống

 Chức năng thêm, cập nhật, sửa, xoá các mặt hàng, loại hàng, nhà sản xuất,… đòi hỏi sự chính xác cao

 Tiếp nhận, kiểm tra đơn đặt hàng của khách hàng Thông báo và thay đổi trạng thái của đơn hàng theo quá trình từ đặt hàng

 xác nhận đơn hàng  khách hàng thanh toán  đang vận chuyển  khách hàng đã nhận hàng

 Thống kê, tính toán và báo cáo ( có thể xuất file excel ) theo ngày, khoảng thời gian

- Ngoài chức năng trên thì trang Web phải đƣợc thiết kế sao cho dễ hiểu, giao diện mang tính dễ dùng, đẹp mắt và làm sao cho khách hàng thấy đƣợc thông tin cần tìm, cung cấp các thông tin quảng cáo hấp dẫn, các tin tức khuyến mãi để thu hút khách hàng Điều quan trọng là phải đảm bảo an toàn tuyệt đối thông tin khách hàng trong quá trình đặt mua hàng qua mạng Đồng thời, trang Web phải luôn đổi mới, hấp dẫn

6.2 Thiết bị và phần mềm

- Máy tính có thể thiết kế đƣợc web

- Hệ quản trị CSDL NoSQL MongoDb

- Cài đặt frame work Hapi.js, các thƣ viện ReactJs, ReduxJs, Bootstrap,…

- Phần mềm code: Visual Studio Code

C ƢƠNG I: TỔNG QUAN VỀ MONGODB, REACTJS-

REDUXJS, FRAME WORK HAPI.JS VÀ RESTFULL API

MongoDB là một cơ sở dữ liệu NoSQL, sử dụng Collection (tập hợp) và Document (tài liệu) để lưu trữ dữ liệu, cung cấp hiệu suất cao, tính khả dụng mạnh mẽ và khả năng mở rộng đa dạng.

 Khái niệm database là gì?

Database là một nơi chứa vật lý cho các Collection Mỗi Database lấy tập hợp các file riêng của nó trên hệ thống file Mỗi MongoDB Server có thể có nhiều cơ sở dữ liệu

 Khái niệm Collection là gì?

Collection là một nhóm các Document trong MongoDB Nó tương đương như một bảng trong RDBMS Do đó, một Collection tồn tại bên trong một cơ sở dữ liệu duy nhất Các Collection không có ràng buộc Relationship nhƣ các hệ quản trị cơ sở dữ liệu khác nên việc truy xuất rất nhanh, chính vì thế mỗi collection có thể chứa nhiều thể loại khác nhau không giống nhƣ table trong hệ quản trị mysql là các field cố định Các Document bên trong một Collection có thể có nhiều trường khác nhau Đặc biệt, tất cả các Document trong một Collection là tương tự nhau hoặc với cùng mục đích liên quan

 Khái niệm Document là gì?

Một Document trong MongoDB, có cấu trúc tương tự như kiểu dữ liệu JSON, là một tập hợp các cặp key-value Các Document có schema động, nghĩa là Document trong cùng một Collection không cần thiết phải có cùng một tập hợp các trường hoặc cấu trúc giống nhau, và các trường chung trong Document của một Collection có thể giữ các kiểu dữ liệu khác nhau

1.1.2 Ƣu điểm khi dùng MongoDb so với RDBMS

 Ít Schema hơn: MongoDB là một cơ sở dữ liệu dựa trên Document, trong đó một Collection giữ các Document khác nhau Số trường, nội dung và kích cỡ của Document này có thể khác với Document khác

 Cấu trúc của một đối tƣợng là rõ ràng

 Không có các Join phức tạp

 Khả năng truy vấn sâu hơn MongoDB hỗ trợ các truy vấn động trên các Document bởi sử dụng một ngôn ngữ truy vấn dựa trên Document mà mạnh mẽ nhƣ SQL

 MongoDB dễ dàng để mở rộng

 Việc chuyển đổi/ánh xạ của các đối tƣợng ứng dụng đến các đối tƣợng cơ sở dữ liệu là không cần thiết

 Sử dụng bộ nhớ nội tại để lưu giữ phần công việc, giúp truy cập dữ liệu nhanh hơn

1.2.1 Framework Hapi.js là gì?

Hapi.js (còn đƣợc gọi là hapi) là một open-source framework dùng để xây dựng các ứng dụng web

Hapi.js đƣợc giới thiệu lần đầu bởi Eran Hammer vào năm 2011 tại Walmart trong nỗ lực xử lý lưu lượng truy cập vào mỗi khi “Ngày thứ Sáu đen tối” diễn ra

Việc sử dụng hapi phổ biến nhất là xây dựng các API service

Tƣ liệu tham khảo: Website https://hapi.dev/

1.2.1 Ƣu điểm khi dùng Framework Hapi.js

 Được thừa hưởng những ưu điểm và thế mạnh của các framework khác

 Có cộng đồng sử dụng nhiều

 Tài liệu hướng dẫn rõ dàng, dễ học

 Kết hợp sử dụng mô hình ORM rất đơn giản khi thao tác với CSDL

 Các lệnh tương tác với cơ sở dữ liệu cực kỳ ngắn gọn và thân thiện

 Giúp hỗ trợ việc xây dựng API rất tốt

 Dễ dàng tích hợp các thƣ viện khác vào dự án, và đƣợc quản lý với npm

 Phần định tuyến và phân quyền rất mạnh

1.2.2.1 Giới thiệu về mô hình MVC

KHẢO SÁT VÀ PHÂN TÍCH HỆ THỐNG

Các chức năng

- Đây là 1 website bán và giới thiệu sản phẩm của siêu thị điện tử đến người tiêu dùng với các chi tiết mặt hàng và giá cả chính xác Website có các chức năng sau:

 Thứ nhất: Phần khách hàng:

Khách hàng là những người có nhu cầu mua sắm hàng hoá, họ sẽ tìm kiếm các mặt hàng cần thiết từ hệ thống và đặt mua các mặt hàng này Vì thế, phải có các chức năng sau:

 Hiển thị danh sách các mặt hàng của siêu thị để khách hàng có thể xem, lựa chọn và mua Có thể tìm kiếm, sắp xếp, lọc theo giá cả, nhà sản xuất của sản phẩm theo nhu cầu của khách hàng

 Hiển thị danh sách các mặt hàng ƣa thích mà khách hàng đã lựa chọn để tiện cho việc mua sắm

Trong trang chi tiết sản phẩm, khách hàng có thể dễ dàng nắm bắt thông tin quan trọng về giá cả, nhà sản xuất, số lượng sản phẩm còn lại Bên cạnh đó, trang còn cung cấp các đánh giá từ những người mua trước, giúp khách hàng tham khảo thêm thông tin về chất lượng sản phẩm Ngoài ra, trang còn hiển thị danh sách các sản phẩm cùng loại, giúp khách hàng dễ dàng so sánh và lựa chọn sản phẩm phù hợp nhất với nhu cầu của mình.

 Khách hàng xem các thông tin, tin tức mới, khuyến mãi ngay trên trang web

 Sau khi khách hàng chọn và đặt hàng thì phải hiện lên đơn hàng và khách hàng có thể nhập thông tin mua hàng và xem hoá đơn mua hàng Khách hàng sẽ thực hiện thanh toán qua các phương thức như: Thanh toán trực tiếp khi nhận hàng, thanh toán qua cổng thanh toán PayPal,…

 Thứ hai: Dành cho người quản trị: Người làm chủ ứng dụng có quyền kiểm soát mọi hoạt động của hệ thống

 Chức năng thêm, cập nhật, sửa, xoá các mặt hàng, loại hàng, nhà sản xuất,… đòi hỏi sự chính xác cao

 Tiếp nhận, kiểm tra đơn đặt hàng của khách hàng Thông báo và thay đổi trạng thái của đơn hàng theo quá trình từ đặt hàng

 xác nhận đơn hàng  khách hàng thanh toán  đang vận chuyển  khách hàng đã nhận hàng

 Thống kê, tính toán và báo cáo ( có thể xuất file excel ) theo ngày, khoảng thời gian

- Ngoài chức năng trên thì trang Web phải đƣợc thiết kế sao cho dễ hiểu, giao diện mang tính dễ dùng, đẹp mắt và làm sao cho khách hàng thấy đƣợc thông tin cần tìm, cung cấp các thông tin quảng cáo hấp dẫn, các tin tức khuyến mãi để thu hút khách hàng Điều quan trọng là phải đảm bảo an toàn tuyệt đối thông tin khách hàng trong quá trình đặt mua hàng qua mạng Đồng thời, trang Web phải luôn đổi mới, hấp dẫn.

Thiết bị và phần mềm

- Máy tính có thể thiết kế đƣợc web

- Hệ quản trị CSDL NoSQL MongoDb

- Cài đặt frame work Hapi.js, các thƣ viện ReactJs, ReduxJs, Bootstrap,…

- Phần mềm code: Visual Studio Code

TỔNG QUAN VỀ MONGODB, REACTJS-REDUXJS, FRAME

Tổng quan về MongoDb

MongoDB là một cơ sở dữ liệu đa nền tảng, hoạt động trên các khái niệm Collection và Document, nó cung cấp hiệu suất cao, tính khả dụng cao và khả năng mở rộng dễ dàng

 Khái niệm database là gì?

A Database in MongoDB is a physical container for Collections Each Database possesses its own set of files on the file system Multiple databases can coexist within a single MongoDB Server.

 Khái niệm Collection là gì?

Collection là một nhóm các Document trong MongoDB Nó tương đương như một bảng trong RDBMS Do đó, một Collection tồn tại bên trong một cơ sở dữ liệu duy nhất Các Collection không có ràng buộc Relationship nhƣ các hệ quản trị cơ sở dữ liệu khác nên việc truy xuất rất nhanh, chính vì thế mỗi collection có thể chứa nhiều thể loại khác nhau không giống nhƣ table trong hệ quản trị mysql là các field cố định Các Document bên trong một Collection có thể có nhiều trường khác nhau Đặc biệt, tất cả các Document trong một Collection là tương tự nhau hoặc với cùng mục đích liên quan

 Khái niệm Document là gì?

Một Document trong MongoDB, có cấu trúc tương tự như kiểu dữ liệu JSON, là một tập hợp các cặp key-value Các Document có schema động, nghĩa là Document trong cùng một Collection không cần thiết phải có cùng một tập hợp các trường hoặc cấu trúc giống nhau, và các trường chung trong Document của một Collection có thể giữ các kiểu dữ liệu khác nhau

1.1.2 Ƣu điểm khi dùng MongoDb so với RDBMS

 Ít Schema hơn: MongoDB là một cơ sở dữ liệu dựa trên Document, trong đó một Collection giữ các Document khác nhau Số trường, nội dung và kích cỡ của Document này có thể khác với Document khác

 Cấu trúc của một đối tƣợng là rõ ràng

 Không có các Join phức tạp

MongoDB hỗ trợ khả năng truy vấn sâu hơn bằng ngôn ngữ truy vấn dựa trên Document mạnh mẽ như SQL, cho phép bạn thực hiện các truy vấn động trên dữ liệu dạng Document một cách linh hoạt và hiệu quả.

 MongoDB dễ dàng để mở rộng

 Việc chuyển đổi/ánh xạ của các đối tƣợng ứng dụng đến các đối tƣợng cơ sở dữ liệu là không cần thiết

 Sử dụng bộ nhớ nội tại để lưu giữ phần công việc, giúp truy cập dữ liệu nhanh hơn.

Framework Hapi.js

1.2.1 Framework Hapi.js là gì?

Hapi.js (còn đƣợc gọi là hapi) là một open-source framework dùng để xây dựng các ứng dụng web

Hapi.js đƣợc giới thiệu lần đầu bởi Eran Hammer vào năm 2011 tại Walmart trong nỗ lực xử lý lưu lượng truy cập vào mỗi khi “Ngày thứ Sáu đen tối” diễn ra

Việc sử dụng hapi phổ biến nhất là xây dựng các API service

Tƣ liệu tham khảo: Website https://hapi.dev/

1.2.1 Ƣu điểm khi dùng Framework Hapi.js

 Được thừa hưởng những ưu điểm và thế mạnh của các framework khác

 Có cộng đồng sử dụng nhiều

 Tài liệu hướng dẫn rõ dàng, dễ học

 Kết hợp sử dụng mô hình ORM rất đơn giản khi thao tác với CSDL

 Các lệnh tương tác với cơ sở dữ liệu cực kỳ ngắn gọn và thân thiện

 Giúp hỗ trợ việc xây dựng API rất tốt

 Dễ dàng tích hợp các thƣ viện khác vào dự án, và đƣợc quản lý với npm

 Phần định tuyến và phân quyền rất mạnh

1.2.2.1 Giới thiệu về mô hình MVC

Mô hình MVC (Model - View - Controller) là một kiến trúc phần mềm hay mô hình thiết kế đƣợc sử dụng trong kỹ thuật phần mềm Nó giúp cho các lập trình viên tách ứng dụng của họ ra 3 thành phần khác nhau Model, View và Controller Mỗi thành phần có một nhiệm vụ riêng biệt và độc lập với các thành phần khác

1.2.2.2 Thành phần trong mô hình MVC

Model Đây là thành phần chứa tất cả các nghiệp vụ logic, phương thức xử lý, truy xuất database, đối tƣợng mô tả dữ liệu nhƣ các lớp (class), hàm xử lý

View Đảm nhận việc hiển thị thông tin, tương tác với người dùng, nơi chứa tất cả các đối tƣợng GUI nhƣ textbox, image Hiểu một cách đơn giản, nó là tập hợp các form hoặc các file HTML

Giữ nhiệm vụ nhận điều hướng các yêu cầu từ người dùng và gọi đúng những phương thức xử lý chúng Chẳng hạn thành phần này sẽ nhận yêu cầu từ URL và form để thao tác trực tiếp với Model

Hình 1.1 Mô hình MVC 1.2.2.3 Cơ chế hoạt động của MVC

Nhìn lại biểu đồ phía trên, ta thấy có mũi tên nét liền và những mũi tên nét đứt Những mũi tên nét đứt được hình thành trên quan điểm của người dùng mà không phải là của những nhà thiết kế phần mềm thực sự Do đó chúng ta chỉ quan tâm đến những mũi tên còn lại Đây là một cách đơn giản để mô tả lại luồng sự kiện đƣợc xử lý trong MVC:

 User tương tác với View, bằng cách kích vào điều khiển, user gửi yêu cầu đi

 Controller nhận và điều hướng chúng đến đúng phương thức xử lý ở Model

 Model nhận thông tin và thực thi các yêu cầu

 Khi Model hoàn tất việc xử lý, View sẽ nhận kết quả từ Model và hiển thị lại cho người dùng

1.2.2.4 Ưu điểm, nhược điểm của mô hình MVC

Thể hiện tính chuyên nghiệp trong lập trình, phân tích thiết kế Do đƣợc chia thành các thành phần độc lập nên giúp phát triển ứng dụng nhanh, đơn giản, dễ nâng cấp, bảo trì

Trong trường hợp dự án có quy mô nhỏ, việc áp dụng mô hình MVC có thể gây ra tình trạng cồng kềnh và tiêu tốn nhiều thời gian trong quá trình phát triển, do sự chậm trễ trong quá trình truyền tải dữ liệu giữa các thành phần.

Nền tảng thƣ viện trình bày trang Bootstrap

Bootstrap đƣợc phát triển bởi Twitter, một trang mạng xã hội nổi tiếng tương tự như Facebook Nó là nền tảng bao gồm các thư viện trình bày trang HTML 5, CSS và Javascript giúp cho việc phát triển giao diện web trong nhiều môi trường đa nền tảng một cách nhanh chóng và dễ dàng hơn

Tƣ liệu tham khảo: Website https://getbootstrap.com/

Website https://www.w3schools.com/jquery

Bootstrap tương thích với các trình duyệt hiện đại ngày nay như là: Google Chrome, Firefox, Internet Explorer Bootstrap có khả năng tùy biến giao diện người dùng cao và khả năng thích ứng với các kích thước màn hình thiết bị cao nhƣ: điện thoại thông minh, máy tính bảng, máy tính xách tay hay máy tính để bàn.

Thƣ viện React.js – Redux.js

1.4.1 Tổng quan về React.js – Redux.js

- React.js là một thƣ viện Javascript mã nguồn mở để xây dựng các thành phần giao diện có thể tái sử dụng, theo hướng Web single page application

- Tƣ liệu tham khảo: Website https://reactjs.org/docs/getting-started.html

- Redux.js là một thƣ viện Javascript giúp tạo ra giúp cho việc quản lý trạng thái của các thành phần trong React.js đƣợc tốt và dễ hơn

- Tƣ liệu tham khảo: Website https://redux.js.org/introduction/getting-started

1.4.2 Giới thiệu về React js và Redux js

- React.js đƣợc tạo ra bởi Jordan Walke, một kỹ sƣ phần mềm tại Facebook

Người bị ảnh hưởng bởi XHP (Một nền tảng thành phần HTML cho PHP) React lần đầu tiên đƣợc triển khai cho ứng dụng Newsfeed của Facebook năm 2011, sau

16 đó đƣợc triển khai cho Instagram.com năm 2012 Nó đƣợc mở mã nguồn (open- sourced) tại JSConf US tháng 5 năm 2013

- Redux.js được xây dựng dựa trên nền tảng tư tưởng của ngôn ngữ Elm và kiến trúc Flux do Facebook giới thiệu

Redux đƣợc xây dựng dựa trên 3 nguyên lý:

 Nguồn dữ liệu tin cậy duy nhất: State của toàn bộ ứng đƣợc chứa trong một object tree nằm trong Store duy nhất

 Trạng thái chỉ đƣợc phép đọc: Cách duy nhất để thay đổi State của ứng dụng là phát một Action (là 1 object mô tả những gì xảy ra)

 Thay đổi chỉ bằng hàm thuần túy: Để chỉ ra cách mà State đƣợc biến đổi bởi Action chúng ta dùng các pure function gọi là Reducer

Hình 1.2 Cấu trúc của Redux

Tìm hiểu về Restful API

1.5.1 Tổng quan về Restful API

RESTful API là một tiêu chuẩn thiết kế API cho ứng dụng web, giúp quản lý tài nguyên dễ dàng.

Giao thức truyền siêu văn bản (HTTP) là giao thức gửi và nhận tài nguyên hệ thống, bao gồm văn bản, hình ảnh, âm thanh, video và dữ liệu động, trên web.

Hình 1.3 Cấu trúc Rest API

API (Application Programming Interface) là một tập các quy tắc và cơ chế mà theo đó, một ứng dụng hay một thành phần sẽ tương tác với một ứng dụng hay thành phần khác API có thể trả về dữ liệu mà bạn cần cho ứng dụng của mình ở những kiểu dữ liệu phổ biến nhƣ JSON hay XML

REST (REpresentational State Transfer) là một dạng chuyển đổi cấu trúc dữ liệu, một kiểu kiến trúc để viết API Nó sử dụng phương thức HTTP đơn giản để tạo cho giao tiếp giữa các máy Vì vậy, thay vì sử dụng một URL cho việc xử lý một số thông tin người dùng, REST gửi một yêu cầu HTTP như GET, POST, DELETE, vv đến một URL để xử lý dữ liệu

RESTful API là một tiêu chuẩn dùng trong việc thiết kế các API cho các ứng dụng web để quản lý các resource RESTful là một trong những kiểu thiết kế API đƣợc sử dụng phổ biến ngày nay để cho các ứng dụng (web, mobile…) khác nhau giao tiếp với nhau

Chức năng quan trọng nhất của REST là quy định cách sử dụng các HTTP method (nhƣ GET, POST, PUT, DELETE…) và cách định dạng các URL cho ứng dụng web để quản các resource RESTful không quy định logic code ứng dụng và không giới hạn bởi ngôn ngữ lập trình ứng dụng, bất kỳ ngôn ngữ hoặc framework nào cũng có thể sử dụng để thiết kế một RESTful API

1.5.2 Cách thức hoạt động của Restful API

Hình 1.4 Cấu trúc Restful API

REST hoạt động chủ yếu dựa vào giao thức HTTP Các hoạt động cơ bản nêu trên sẽ sử dụng những phương thức HTTP riêng

 GET (SELECT): Trả về một Resource hoặc một danh sách Resource

 POST (CREATE): Tạo mới một Resource

 PUT (UPDATE): Cập nhật thông tin cho Resource

 DELETE (DELETE): Xoá một Resource

Những phương thức hay hoạt động này thường được gọi là CRUD tương ứng với Create, Read, Update, Delete – Tạo, Đọc, Sửa, Xóa

Hiện tại đa số lập trình viên viết RESTful API giờ đây đều chọn JSON là format chính thức nhưng cũng có nhiều người chọn XML làm format, nói chung dùng thế nào cũng đƣợc miễn tiện và nhanh.

PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG WEBSITE

NHU CẦU DỰ ÁN

Chúng ta có thể thấy trong thị trường hiện nay thì việc cạnh tranh về kinh doanh ngày càng trở nên quyết liệt, hầu hết những nhà kinh doanh đều muốn làm thỏa mãn khách hàng một cách tốt nhất

So với kinh doanh truyền thống thì “Thương mại điện tử” sẽ tốn chi phí thấp hơn, hiệu quả đạt đƣợc cao hơn Hơn thế nữa, với lợi thế của công nghệ Internet hiện nay thì việc truyền tải thông tin về sản phẩm sẽ diễn ra một cách nhanh chóng, thuận tiện Kết hợp với bộ phận giao hàng tận nơi, thanh toán thông qua bưu điện hoặc ngân hàng, khách hàng có thể ở nhà mà vẫn nhận đƣợc sản phẩm mà mình ƣng ý

Nắm bắt được nhu cầu đó, em đã lên ý tưởng xây dựng một hệ thống cung cấp môi trường bán hàng đa nền tảng

Trong đồ án chuyên ngành này em chọn đề tài “Xây dựng website bán hàng trực tuyến dành cho siêu thị bằng ReactJs, NodeJs và MongoDb.”

MỤC TIÊU DỰ ÁN

Mục tiêu dự án là sử dụng công nghệ Restful API xây dựng hệ thống cung cấp môi trường bán hàng đa nền tảng, trở thành kênh giao dịch điện tử hiện đại, dễ truy cập với nhiều thông tin đa dạng, trung thực và kịp thời về những thông tin sản phẩm trên thị trường Hệ thống sẽ giúp cho người mua dễ dàng mua được sản phẩm ưng ý, thuận tiện, đồng thời giúp cho người bán dễ dàng quản lý được sản phẩm, báo cáo thống kê tình hình kinh doanh, nắm bắt được xu hướng của người tiêu dùng để lên kế hoạch kinh doanh phù hợp

Hệ thống được phát triển đa nền tảng giúp người dùng có thể dễ dàng truy cập ở bất cứ nơi đâu,

Sử dụng Restful API sẽ tách riêng biệt phần hệ thống và phần giao diện, giao tiếp với nhau qua api, từ đó giúp cho việc tái sử dụng, bảo trì và phát triển đƣợc tốt hơn…

PHÂN TÍCH YÊU CẦU HỆ THỐNG

 Khách: o Mua hàng o Tìm kiếm o Đăng nhập o Đăng ký o Phục hồi mật khẩu o Quản lý giỏ hàng o Xem chi tiết sản phẩm

 Thành viên: o Quản lý thông tin cá nhân o Xem lịch sử mua hàng o Phản hồi cho người bán o Đánh giá sản phẩm o Đăng xuất

 Nhân viên: o Quản lý phản hồi o Quản lý đơn hàng

 Admin: o Quản lý sản phẩm o Quản lý lọai hàng o Quản lý nhà cung cấp o Quản lý nhà sản xuất o Quản lý tài khoản o Quản lý hóa đơn nhập

21 o Quản lý khuyến mãi o Báo cáo o Quản lý đánh giá

2.3.2 Yêu cầu phi chức năng

Bảng 2.1: Đặc tả yêu cầu phi chức năng Đặc tính Yêu cầu

-Thời gian tải trang từ máy chủ là ít hơn 10 giây -Cho phép nhiều người cùng đăng nhập vào hệ thống

Cơ sở hạ tầng - Các dữ liệu được lưu trong các cơ sở dữ liệu và được sao lưu thường xuyên và được phục hồi khi cần

- Xác thực quyền: sử dụng tài khoản để đăng nhập vào hệ thống, gồm 3 loại: Quản trị viên, nhân viên, khách hàng Mỗi loại người dùng sẽ có một số quyền riêng

- Các dữ liệu về tài khoản được lưu trong cơ sở dữ liệu và được bảo mật

- Mật khẩu đƣợc mã hóa Bcrypt đảm bảo tính bảo mật thông tin Trình duyệt - Mọi trình duyệt

- Giao diện bắt mắt, dễ sử dụng, thân thiện với người dùng, định dạng đồng nhất

- Sử dụng đồng nhất màu sắc, font chữ

2.3.3 Yêu cầu nền tảng hệ thống

 Phần cứng máy Server : Máy tính cá nhân với chip vi xử lý Intel core 2 duo, 2GB RAM

 Hệ điều hành: Windows 2003 or Windows vista/7 trở lên

 Môi trường: Internet và NET framework 2.0 trở lên

 Hệ quản trị cơ sở dữ liệu MySQL

 Phần cứng máy Client: Đa nền tảng, có thể máy tính cá nhân, thiết bị di động thông minh có hỗ trợ duyệt web, máy tính bảng

 Trình duyệt: Đa trình duyệt nhƣ Microsoft Internet Explorer hoặc Mozilla

PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG

2.4.1.1 Tác nhân của hệ thống

Bảng 2.2: Bảng mô tả các tác nhân

STT Tên tác nhân Mô tả

1 Khách Người dùng chưa đăng ký có thể đăng kí, đăng nhập, tra cứu thông tin dịch vụ, mua hàng,

2 Thành viên Là thành viên đã đăng ký tài khoản của hệ thống, kế thừa các chức năng của Khách, có quyền xem, tìm kiếm thông tin, liên hệ, đánh giá sản phẩm, mua hàng, phản hồi cho admin,…

3 Nhân viên Là thành viên đƣợc admin cấp quyền nhân viên, kế thừa các chức năng của thành viên, quản lý đơn hàng, quản lý phản hồi,…

4 Admin Người quản trị của hệ thống, kế thừa các chức năng của

Nhân viên, đƣợc quyền quản lý các thông tin dịch vụ,tài khoản, thông tin liên quan đến sản phẩm, nhà cung cấp, nhà sản xuất, hóa đơn nhập, hóa đơn xuất,

2.4.1.2 Biểu đồ ca sử dụng (Use Case Diagram)

Hình 2.1: Biểu đồ Use case tổng quát - Khách

Hình 2.2: Biểu đồ Use case tổng quát - Thành viên

Hình 2.3: Biểu đồ Use case tổng quát - Nhân viên

Hình 2.4: Biểu đồ Use case tổng quát - Admin

Bảng 2.3: Biểu đồ Use Case tổng quát

Tác nhân Admin, Nhân viên, User, Khách

Mục đích Mô tả toàn bộ chức năng của từng đối tượng người dùng trong hệ thống

2.4.1.3 Biểu đồ đặc tả Use Case quản lý loại hàng

Hình 2.5: Biểu đồ Use Case quản lý loại hàng Bảng 2.4: Bảng đặc tả Use Case quản lý loại hàng

Tên Use Case Quản lý loại hàng

Mô tả Người dùng có thể thêm, xóa, sửa, xem danh sách loại hàng Điều kiện trước Người dùng đã đăng nhập với quyền Admin

2.4.1.4 Biểu đồ đặc tả Use Case quản lý sản phẩm

Hình 2.6: Biểu đồ Use Case quản lý sản phẩm Bảng 2.5: Bảng đặc tả Use Case quản lý sản phẩm

Tên Use Case Quản lý sản phẩm

Mô tả Người dùng có thể thêm, xóa, sửa, xem danh sách sản phẩm Điều kiện trước Người dùng đã đăng nhập hệ thống với quyền Admin

2.4.1.5 Biểu đồ đặc tả Use Case quản lý nhà cung cấp

Hình 2.7: Biểu đồ Use Case quản lý nhà cung cấp

Bảng 2.6: Đặc tả Use Case nhà cung cấp

Tên Use Case Quản lý nhà cung cấp

Mô tả Người dùng có thể thêm, xóa, sửa, xem danh sách thông tin nhà cung cấp Điều kiện trước Người dùng đã đăng nhập hệ thống với quyền Admin

2.4.1.6 Biểu đồ đặc tả Use Case quản lý nhà sản xuất

Hình 2.8 Biểu đồ Use Case quản lý nhà sản xuất Bảng 2.7: Bảng đặc tả Use Case quản lý nhà sản xuất

Tên Use Case Quản lý nhà sản xuất

Mô tả Người dùng có thể thêm, xóa, sửa, xem danh sách thông tin nhà sản xuất Điều kiện trước Người dùng đã đăng nhập hệ thống với quyền Admin

2.4.1.7 Biểu đồ đặc tả Use Case Báo cáo

Bảng 2.8: Bảng đặc tả Use Case báo cáo

Tên Use Case Báo cáo thống kê

Mô tả Người dùng có thể :

-Báo cáo doanh thu theo tháng, quý, năm

-Báo cáo tình hình kinh doanh Điều kiện trước Người dùng đã đăng nhập hệ thống với quyền Admin

2.4.1.8 Biểu đồ đặc tả Use Case quản lý tài khoản

Hình 2.9: Biểu đồ Use Case quản lý tài khoản Bảng 2.9: Bảng đặc tả Use Case quản lý tài khoản

Tên Use Case Quản lý tài khoản

Mô tả Người dùng có thể thêm, xóa, sửa, xem danh sách thông tin tài khoản Điều kiện trước Người dùng đã đăng nhập hệ thống với quyền Admin

2.4.1.9 Biểu đồ đặc tả Use Case quản lý hóa đơn nhập

Hình 2.10: Biểu đồ Use Case quản lý hóa đơn nhập Bảng 2.10: Bảng đặc tả Use quản lý hóa đơn nhập

Tên Use Case Quản lý hóa đơn nhập

Mô tả Người dùng có thể thêm, xóa, sửa, xem danh sách thông tin hóa đơn nhập Điều kiện trước Người dùng đã đăng nhập hệ thống với quyền Admin

2.4.1.10 Biểu đồ đặc tả Use Case quản lý khuyến mãi

Hình 2.11: Biểu đồ Use Case quản lý khuyến mãi

Bảng 2.11: Bảng đặc tả Use Case quản lý khuyến mãi

Tên Use Case Quản lý khuyến mãi

Mô tả Người dùng có thể thêm, xóa, sửa, xem danh sách thông tin khuyến mãi Điều kiện trước Người dùng đã đăng nhập hệ thống với quyền Admin

2.4.1.11 Biểu đồ đặc tả Use Case quản lý đơn hàng

Hình 2.12: Biểu đồ Use Case quản lý đơn hàng Bảng 2.12: Bảng đặc tả Use Case quản lý đơn hàng

Tên Use Case Quản lý đơn hàng

Mô tả Người dùng có thể thêm, xóa, sửa, xem danh sách thông tin đơn hàng Điều kiện trước Người dùng đã đăng nhập hệ thống với quyền Admin

2.4.1.12 Biểu đồ đặc tả Use Case quản lý phản hồi

Hình 2.13: Biểu đồ Use Case quản lý phản hồi Bảng 2.13: Bảng đặc tả Use Case quản lý phản hồi

Tên Use Case Quản lý phản hồi

Mô tả Người dùng có thể Trả lời phản hồi Điều kiện trước Người dùng đã đăng nhập hệ thống với quyền Admin

2.4.1.13 Biểu đồ đặc tả Use Case quản lý thông tin cá nhân

Hình 2.14: Biểu đồ Use Case quản lý thông tin cá nhân

Bảng 2.14: Bảng đặc tả Use Case thông tin cá nhân

Tên Use Case Quản lý thông tin cá nhân

Mô tả Người dùng có thể cập nhật thông tin cá nhân Điều kiện trước Người dùng đã đăng nhập hệ thống với quyền Thành viên

2.4.1.14 Biểu đồ đặc tả Use Case Xem lịch sử mua hàng

Bảng 2.15:Đặc tả Use Case xem lịch sử mua hàng

Tên Use Case Xem lịch sử mua hàng

Mô tả Người dùng có thể theo dõi các đơn hàng đã đặt Điều kiện trước Người dùng đã đăng nhập hệ thống với quyền Thành viên

2.4.1.15 Biểu đồ đặc tả Use Case phản hồi cho người bán

Hình 2.15: Biểu đồ Use Case phản hồi cho người bán Bảng 2.16: Đặc tả Use Case phản hồi cho người bán

Tên Use Case Phản hồi cho người bán

Mô tả Người dùng có thể gửi phản hồi cho hệ thống Điều kiện trước Người dùng đã đăng nhập hệ thống với quyền Thành viên

2.4.1.16 Biểu đồ đặc tả Use Case tìm kiếm

Hình 2.16: Biểu đồ Use Case tìm kiếm

Bảng 2.17: Bảng đặc tả Use Case tìm kiếm

Tên Use Case Tìm kiếm

Mô tả Người dùng có thể tìm kiếm theo tên sản phẩm / loại sản phẩm / nhà sản xuất Điều kiện trước Không có

2.4.1.17 Biểu đồ đặc tả Use Case đánh giá sản phẩm

Bảng 2.18: đặc tả Use Case đánh giá sản phẩm

Tên Use Case Đánh giá sản phẩm

Mô tả Người dùng có thể đánh giá sản phẩm sau khi mua hàng Điều kiện trước Người dùng đã đăng nhập hệ thống với quyền Thành viên

2.4.1.18 Biểu đồ đặc tả Use Case xem chi tiết sản phẩm

Bảng 2.19: Đặc tả Use Case xem chi tiết sản phẩm

Tên Use Case Xem chi tiết sản phẩm

Mô tả Người dùng có thể xem thông tin chi tiết sản phẩm Điều kiện trước Không có

2.4.1.19 Biểu đồ đặc tả Use Case quản lý giỏ hàng

Hình 2.17: Biểu đồ Use Case quản lý giỏ hàng Bảng 2.20: Bảng đặc tả Use Case giỏ hàng

Tên Use Case Quản lý giỏ hàng

Mô tả Người dùng có thể thêm, xóa, sửa, xem danh sách các mặt hàng trong giỏ hàng Điều kiện trước Không có

2.4.1.20 Biểu đồ đặc tả Use Case mua hàng

Hình 2.18: Biểu đồ Use Case mua hàng Bảng 2.21: Bảng đặc tả Use Case mua hàng

Tên Use Case Mua hàng

Mô tả Người dùng có thể mua hàng sau khi bổ sung thông tin giao hàng và chọn phương thức thanh toán Điều kiện trước Không có

2.4.1.21 Biểu đồ đặc tả Use Case đăng ký

Bảng 2.22: Đặc tả Use Case đăng ký

Tên Use Case Đăng ký

Mô tả Người dùng có thể đăng ký tài khoản Điều kiện trước Không có

1 Người dùng nhập thông tin đăng ký

2 Hệ thống kiểm tra thông tin vừa nhập, nếu sai sẽ thông báo thông tin không hợp lệ, quay lại bước 1

3 Hệ thông kiểm tra email có tồn tại trong CSDL

Nếu có quay về bước 1

4 Hệ thống lưu thông tin đăng ký và hiển thị thông báo đăng ký thành công

2.4.1.22 Biểu đồ đặc tả Use Case đăng nhập

Bảng 2.23: Đặc tả Use Case nhà sản xuất

Tên Use Case Đăng nhập

Mô tả Người dùng có thể đăng nhập vào hệ thống thông qua tài khoản đã đăng ký Điều kiện trước Người dùng đã đăng ký tài khoản

1 Người dùng nhập thông tin đăng nhập

2 Hệ thống kiểm tra thông tin vừa nhập, nếu sai sẽ thông báo thông tin không hợp lệ, quay lại bước 1 3.1 Hệ thống kiểm tra đăng nhập trong CSDL Nếu sai quay về bước 1

3.2 Hệ thống thông báo đăng nhập thành công

2.4.1.23 Biểu đồ đặc tả Use Case phục hồi mật khẩu

Bảng 2.24: Đặc tả Use Case phục hồi mật khẩu

Tên Use Case Phục hồi mật khẩu

Mô tả Người dùng có thể phục hồi mật khẩu Điều kiện trước Không có

1 Người dùng nhập email cần phục hồi mật khẩu

2 Hệ thống kiểm tra thông tin vừa nhập, nếu sai sẽ thông báo thông tin không hợp lệ, quay lại bước 1

3 Hệ thống kiểm tra email có tồn tại trong CSDL Nếu không có quay về bước 1

4 Hệ thống lưu thông tin phục hồi thông báo đã gửi đường dẫn phục hồi mật khẩu vào email

2.4.2.1 Biểu đồ tuần tự Đăng ký

Hình 2.19: Biểu đồ tuần tự đăng ký 2.4.2.2 Biểu đồ tuần tự Đăng nhập

Hình 2.20: Biểu đồ tuần tự đăng nhập 2.4.2.3 Biểu đồ tuần tự sửa thông tin cá nhân

Hình 2.21: Biểu đồ tuần tự sửa thông tin cá nhân

2.4.2.4 Biểu đồ tuần tự Tìm kiếm

Hình 2.22: Biểu đồ tuần tự tìm kiếm 2.4.2.5 Biểu đồ tuần tự Thêm vào giỏ hàng

Hình 2.23: Biểu đồ tuần tự thêm giỏ hàng

2.4.2.6 Biểu đồ tuần tự Thêm sản phẩm

Hình 2.24: Biểu đồ tuần thêm sản phẩm 2.4.2.7 Biểu đồ tuần tự Sửa sản phẩm

Hình 2.25: Biểu đồ tuần tự sửa sản phẩm

2.4.2.8 Biểu đồ tuần tự Phục hồi mật khẩu

Hình 2.26: Biểu đồ tuần tự phục hồi mật khẩu

Hình 2.27: Biểu đồ tuần tự đổi mật khẩu

2.4.3.1 Biểu đồ hoạt động Thêm sản phẩm

Hình 2.28: Biểu đồ hoạt động thêm sản phẩm 2.4.3.2 Biểu đồ hoạt động Sửa sản phẩm

Hình 2.29: Biểu đồ hoạt động sửa sản phẩm

2.4.3.3 Biểu đồ hoạt động Xóa sản phẩm

Hình 2.30: Biểu đồ hoạt động xóa sản phẩm 2.4.3.4 Biểu đồ hoạt động Sửa thông tin cá nhân

Hình 2.31: Biểu đồ hoạt động sửa thông tin cá nhân

2.4.3.5 Biểu đồ hoạt động Thêm vào giỏ hàng

Hình 2.32: Biểu đồ hoạt động thêm giỏ hàng 2.4.3.1 Biểu đồ hoạt động Mua hàng

Hình 2.33: Biểu đồ hoạt động mua hàng

2.4.3.2 Biểu đồ hoạt động Đăng ký

Hình 2.34: Biểu đồ hoạt động đăng ký 2.4.3.3 Biểu đồ hoạt động Đăng nhập

Hình 2.35: Biểu đồ hoạt động đăng nhập 2.4.3.4 Biểu đồ hoạt động Phục hồi mật khẩu

Hình 2.36: Biểu đồ hoạt động phục hồi mật khẩu 2.4.3.5 Biểu đồ hoạt động đổi mật khẩu

Hình 2.37: Biểu đồ hoạt động đổi mật khẩu

2.4.4 Thiết kế cơ sở dữ liệu

2.4.4.1 Mô hình quan hệ thực thể

2.4.4.2 Chi tiết bản ảng 2.25 Table Role

Field Type Null Key Default Extra id bigint(20) unsigned

NO Primary NULL auto_increment nameRole varchar(255) NO description varchar(255) YES NULL isActive boolean NO TRUE

Field Type Null Key Default Extra id bigint(20) unsigned

NO Primary auto_increment address varchar(255) YES NULL name varchar(255) NO email varchar(255) NO Unique password varchar(255) NO avatar varchar(255) YES NULL phone varchar(18) YES NULL isActive boolean NO TRUE isVerifyEmail boolean NO FALSE resetPassword

Expire varchar(255) YES NULL rememberPass wordToken varchar(255) YES NULL roleId integer NO Foreign createdAt timestamp NO updatedAt timestamp NO

Field Type Null Key Default Extra id bigint(20) unsigned NO Primary auto_increment nameCategory varchar(255) NO image varchar(255) YES NULL isActive boolean NO TRUE description varchar(255) YES NULL createdAt timestamp NO updatedAt timestamp NO ảng 2.28 Table Product

Field Type Null Key Default Extra id bigint(20) unsigned

NO Primary NULL auto_increment nameProduct varchar(255) NO image varchar(255) YES NULL price double NO 0 description text YES NULL numberAvailable integer YES 0 properties jsonb YES NULL isActive boolean NO TRUE categoryId integer NO Foreign producerId integer NO Foreign createdAt timestamp NO updatedAt timestamp NO

Field Type Null Key Default Extra id bigint(20) unsigned

NO Primary auto_increment nameDiscount varchar(255) NO trigger varchar(255) NO code varchar(255) NO totalToReach double YES 0 type varchar(255) YES NULL rate float YES 0 amount double YES 0 maxNumberOfUsages integer YES 0 numberOfUsages integer YES 0 shippingCost integer YES 0 startTime timestamp YES NULL endTime timestamp YES NULL isActive boolean NO TRUE productId integer NO Foreign createdAt timestamp NO updatedAt timestamp NO

Field Type Null Key Default Extra id bigint(20) unsigned NO Primary NULL auto_increment userId integer NO Foreign productId integer NO Foreign ảng 2.31 Table Rating

Field Type Null Key Default Extra id bigint(20) unsigned NO Primary NULL auto_increment content text YES NULL userId integer NO Foreign point integer NO 0 productId integer NO createdAt timestamp NO updatedAt timestamp NO

Field Type Null Key Default Extra id bigint(20) unsigned

The table structure of the Order model includes essential fields such as fullName, address, phone, and status It also tracks payment-related information, including isPaymentOnline, isPaid, paypalCode, and total amounts (shippingTotal, itemAmount, promoTotal, totalAmount) Additionally, it maintains meta information like userId, createdAt, and updatedAt.

- **id:** Big integer, primary key, auto-incremented.- **quantity:** String with a maximum length of 255 characters.- **price:** Double-precision floating-point number.- **orderId:** Integer, foreign key referencing the "Order" table.- **productId:** Integer, foreign key referencing the "Product" table.- **nameProduct:** String with a maximum length of 255 characters, allows null values.- **createdAt:** Timestamp, records the creation time.- **updatedAt:** Timestamp, records the last update time.

Field Type Null Key Default Extra id bigint(20) unsigned

NO Primary auto_increment title varchar(255) NO content text NO note varchar(255) YES NULL userId integer NO Foreign isActive boolean NO TRUE createdAt timestamp NO updatedAt timestamp NO

Field Type Null Key Default Extra id bigint(20) unsigned NO Primary auto_increment name varchar(255) NO address varchar(255) NO description text YES NULL categoryId integer NO Foreign isActive boolean NO TRUE ảng 2.12 Table Product Image

Field Type Null Key Default Extra id bigint(20) unsigned NO Primary NULL auto_increment url varchar(255) YES NULL description text YES NULL isActive boolean NO TRUE productId integer NO Foreign ảng 2.13 Table Contact

XÂY DỰNG CHƯƠNG TRÌNH THỬ NGHIỆM

Giao diện trang quản trị

3.1.1 Giao diện trang chủ trang quản trị

Hình 3.2: Giao diện bảng điều khiển

Mô tả: Giao diện gồm rất nhiều thông tin đã đƣợc thu thập và tổng hợp từ nhiều nguồn dữ liệu khác nhau của website, có chức năng phân tích về hoạt động kinh doanh, sản xuất của doanh nghiệp Cụ thể về năng xuất, lƣợng tiêu thụ các sản phẩm của công ty Thu thập và tổng hợp các chỉ số đánh giá công việc (KPI)

3.1.2 Giao diện trang phân quyền

Hình 3.1: Giao diện phân quyền

Mô tả: Giao diện có chức năng phân quyền cho người sử dụng Cấp quyền sử dụng các chức năng khác nhau cho các admin, staff, user…

3.1.3 Giao diện trang quản lí hóa đơn

Hình 3.3: Giao diện quản lí hóa đơn

Mô tả: Giao diện có chức năng quản lý các đơn hàng của người dung, admin có thể tuỳ chỉnh trạng thái của các đơn hàng và thông báo cho người mua, có thể xuất file excel giúp việc quản lý dễ dàng hơn

3.1.4 Giao diện trang quản lí thể loại sản phẩm

Hình 3.4: Giao diện thể loại sản phẩm

Mô tả: Giao diện có chức năng thêm sửa xoá các thể loại sản phẩm, mô tả và cho phép hiển thị ra giao diện của người dung và xuất file excel

3.1.5 Giao diện quản lí các nhà sản xuất

Hình 3.5: Giao diện quản lí nhà sản xuất

Mô tả: Giao diện có chức năng quản lý, thêm sửa xoá thông tin của các nhãn hàng, nhà sản xuất và các loại mặt hàng

3.1.6 Giao diện quản lí sản phẩm

Hình 3.6: Giao diện quản lí sản phẩm

Mô tả: Giao diện có chức năng quản lý, thêm sửa xoá các sản phẩm, thông tin về sản phẩm

3.1.7 Giao diện trang lưu đánh giá các sản phẩm

Hình 3.7: Giao diện quản lí đánh giá sản phẩm

Mô tả: Giao diện có chức năng quản lý các đánh giá của người dùng về các sản phẩm

3.1.8 Giao diện trang hỗ trợ khách hàng

Hình 3.8: Giao diện quản lí các phản ánh của người dùng

Mô tả: Giao diện có chức năng quản lý các phản ánh của người dùng về sản phẩm.

Giao diện trang chủ

Hình 3.9: Giao diện trang chủ

Mô tả: Hiển thị menu, các sản phẩm hot, khuyến mãi, voucher, giỏ hàng, danh sách ƣa thích, các sản phẩm mới…

3.2.2 Giao diện trang chi tiết sản phẩm

Hình 3.10: Giao diện chi tiết sản phẩm

Mô tả: Hiển thị các thông tin chi tiết về sản phẩm, đánh giá của người mua và các sản phẩm tương tự cùng loại

3.2.3 Giao diện trang phân loại sản phẩm

Hình 3.11: Giao diện loại sản phẩm

Mô tả: Phân loại các sản phẩm theo từng loại mặt hàng, theo từng hãng sản xuất, theo giá giúp người dùng dễ dàng lựa chọn và tìm kiếm mặt hàng mình cần

3.2.4 Giao diện trang tất cả sản phẩm

Hình 3.12: Giao diện trang sản phẩm

Mô tả: Hiển thị đầy đủ tất cả các sản phẩm hiện có

3.2.5 Giao diện trang thông tin

Hình 3.13: Giao diện trang thông tin

Mô tả: Hiển thị thông tin về siêu thị, các thông số về trang web, người phát triển trang web

3.2.6 Giao diện trang liên hệ - hỗ trợ

Hình 3.14: Giao diện trang liên hệ

Giao diện cung cấp khả năng ghi lại phản ánh, yêu cầu liên hệ của người dùng Ngoài ra, giao diện còn đưa ra thông tin liên quan đến siêu thị cùng số đường dây nóng để người dùng dễ dàng liên lạc.

Hình 3.10: Giao diện giỏ hàng

Mô tả: Hiển thị các đơn hàng đã đƣợc cho vào giỏ, tính tổng số tiền phải chi trả Người dùng có thể điều chỉnh số lượng mặt hàng, nhập mã giảm giá và yêu cầu đặt hàng, thanh toán

Hình 3.11: Giao diện thanh toán

Mô tả: Bước 1, người dùng điền địa chỉ, họ tên, số điện thoại và yêu cầu khi giao hàng

Hình 3.12: Giao diện thanh toán (tiếp theo)

Mô tả: Bước 2, giao diện hiển thị các sản phẩm người dùng đặt mua, tổng số tiền phải trả và người dùng có thể lựa chọn thanh toán kh giao hàng hoặc thanh toán qua PayPal

Hình 3.13: Giao diện thanh toán sử dụng cổng thanh toán Paypal

Mô tả: cổng thanh toán PayPal dành cho người dùng thanh toán trực tuyến.

THỰC NGHIỆM VÀ ĐÁNH GIÁ

Môi trường thử nghiệm

 Thử nghiệm trang web trên localhost của server window phiên bản máy tính

 Ngôn ngữ lập trình sử dụng NodeJs và ReactJs

 Trước hết, ta cần cài đặt và chạy môi trường NodeJs Tham khảo cách cài đặt tại: Node.js Tutorial: Phần 1 - Giới thiệu và cài đặt ứng dụng đầu tiên (viblo.asia)

 Sau đó, ta có thể vào Command Prompt để kiểm tra version của NodeJs sau khi cài đặt thành công bằng câu lệnh: node -v

Hình 4.1: Kiểm tra version của NodeJs

 Tiếp theo là kiểm tra NPM - Công cụ quản lý package của NodeJS: npm -v

 Sau khi chạy xong, ta vào Visual Studio Code chạy lệnh “npm start” ở phần Terminal để khởi động website

 Môi trường ảo đã khởi động thành công và website có địa chỉ “ http://192.168.0.103:3001/ ”

Chức năng giỏ hàng

 Dựa vào kết quả thực nghiệm, cho thấy tốc độ tải trang, chức năng xử lý mua bán sản phẩm, thêm bớt sản phẩm trong giỏ hàng đều hoạt động ổn định

Hình 4.1: Giao diện giỏ hàng

Chức năng hiển thị sản phẩm

 Kết quả thực nghiệm cho thấy tốc độ hiển thị sản phẩm nhanh, không có dấu hiệu lỗi ảnh

Hình ảnh 4.2: Giao diện trang sản phẩm

Chức năng thêm và sửa thông tin sản phẩm

 Qua kết quả thực nghiệm, không có dấu hiệu bị lỗi, chức năng hoạt động ổn định

Hình 4.3: Giao diện chức năng thêm sản phẩm

 Sau khi thêm sản phẩm thành công, ta có thể dễ dàng nhìn thấy sản phẩm đã đƣợc hiển thị trên danh sách tất cả các sản phẩm

Hình 4.4: Thông báo thêm sản phẩm thành công

Hình 4.5: Giao diện danh sách sản phẩm

 Chức năng sửa thông tin sản phẩm hoạt động ổn định, đã sửa đƣợc thông tin của sản phẩm và lưu lại trên CSDL

Hình 4.6: Giao diện sửa thông tin sản phẩm

 Ta thay đổi giá, số lƣợng , ảnh và mô tả sản phẩm

Hình 4.7: Giao diện đã sửa thông tin sản phẩm

 Thông báo sửa thông tin sản phẩm thành công và hiển thị danh sách sản phẩm

Hình 4.8: Giao diện danh sách sản phẩm sau khi sửa

Đánh giá chung

 Tổng quan, website hoạt động ổn định, tốc độ tải trang tốt, các chức năng đều hoạt động tốt và không xảy ra lỗi

 Do website chưa đủ điều kiện kiểm tra số lượng tài khoảng người dùng truy cập để đánh giá tốc độ đường truyền

1 NHỮNG VẤN ĐỀ ĐẠT ĐƢỢC

- Nắm đƣợc cách sử dụng các công cụ hỗ trợ thiết kế StarUML

- Nắm đƣợc quy trình làm đồ án

- Nắm đƣợc quy trình nghiệp vụ bán hàng online

- Tìm hiểu ngôn ngữ lập trình Javascript, nền tảng Nodejs

- Tìm hiểu MongoDb, React.js, Redux.js, Frameword Hapi.js

- Tích hợp đƣợc chức năng thanh toán online thông qua cổng thanh toán Paypal

- Áp dụng xây dựng ứng dụng thực nghiệm trang website “Siêu thị bán thiết bị điện tử”

- Tìm hiểu sâu hơn về nền tảng Javascript & MongoDb, React.js, Redux.js để có thể đáp ứng nhiều hơn nữa nhu cầu của người sử dụng, phát triển và tối ƣu hóa hệ thống,

- Tiếp tục nghiên cứu Framework React Native để xây dựng nền tảng Mobile bằng việc kế thừa hệ thống API đã hoàn thành

- Học thêm nhiều ngôn ngữ và phần mềm ứng dụng để nâng cao giao diện người dùng, tối ưu hóa hiệu suất hoạt động và bổ sung thêm các tính năng còn thiếu trong phiên bản hiện tại.

Ngày đăng: 07/10/2024, 21:25

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[03]. Website https://vincit.github.io/objection.js/ Link
[04]. Website https://hapi.dev/ Link
[05]. Website https://getbootstrap.com/ Link
[06]. Website https://www.w3schools.com/jquery Link
[09]. Website http://knexjs.org/ Link
[01]. Đoàn Văn Ban, Giáo trình phân tích thiết kế hướng đối tượng bằng UML (2010), NXB Đại học sƣ phạm Khác
[02]. Phạm Thị Nhung, Lập trình ứng dụng Web với HTML và Javascript (2011), NXB ĐHQG Tp Hồ Chí Minh Khác

HÌNH ẢNH LIÊN QUAN

Hình  1.1 Mô hình MVC  1.2.2.3 Cơ chế hoạt động của MVC - Xây dựng website bán hàng trực tuyến dành cho siêu thị bằng reactjs, nodejs và mongodb
nh 1.1 Mô hình MVC 1.2.2.3 Cơ chế hoạt động của MVC (Trang 15)
Hình  1.3 Cấu trúc Rest API - Xây dựng website bán hàng trực tuyến dành cho siêu thị bằng reactjs, nodejs và mongodb
nh 1.3 Cấu trúc Rest API (Trang 18)
Hình 2.22: Biểu đồ tuần tự tìm kiếm  2.4.2.5 Biểu đồ tuần tự Thêm vào giỏ hàng - Xây dựng website bán hàng trực tuyến dành cho siêu thị bằng reactjs, nodejs và mongodb
Hình 2.22 Biểu đồ tuần tự tìm kiếm 2.4.2.5 Biểu đồ tuần tự Thêm vào giỏ hàng (Trang 40)
Hình 2.24: Biểu đồ tuần thêm sản phẩm  2.4.2.7 Biểu đồ tuần tự Sửa sản phẩm - Xây dựng website bán hàng trực tuyến dành cho siêu thị bằng reactjs, nodejs và mongodb
Hình 2.24 Biểu đồ tuần thêm sản phẩm 2.4.2.7 Biểu đồ tuần tự Sửa sản phẩm (Trang 41)
Hình 2.28: Biểu đồ hoạt động thêm sản phẩm  2.4.3.2 Biểu đồ hoạt động Sửa sản phẩm - Xây dựng website bán hàng trực tuyến dành cho siêu thị bằng reactjs, nodejs và mongodb
Hình 2.28 Biểu đồ hoạt động thêm sản phẩm 2.4.3.2 Biểu đồ hoạt động Sửa sản phẩm (Trang 43)
Hình 2.30: Biểu đồ hoạt động xóa sản phẩm  2.4.3.4 Biểu đồ hoạt động Sửa thông tin cá nhân - Xây dựng website bán hàng trực tuyến dành cho siêu thị bằng reactjs, nodejs và mongodb
Hình 2.30 Biểu đồ hoạt động xóa sản phẩm 2.4.3.4 Biểu đồ hoạt động Sửa thông tin cá nhân (Trang 44)
Hình 2.33: Biểu đồ hoạt động mua hàng - Xây dựng website bán hàng trực tuyến dành cho siêu thị bằng reactjs, nodejs và mongodb
Hình 2.33 Biểu đồ hoạt động mua hàng (Trang 45)
Hình 2.32: Biểu đồ hoạt động thêm giỏ hàng  2.4.3.1 Biểu đồ hoạt động Mua hàng - Xây dựng website bán hàng trực tuyến dành cho siêu thị bằng reactjs, nodejs và mongodb
Hình 2.32 Biểu đồ hoạt động thêm giỏ hàng 2.4.3.1 Biểu đồ hoạt động Mua hàng (Trang 45)
Hình 2.35: Biểu đồ hoạt động đăng nhập  2.4.3.4 Biểu đồ hoạt động Phục hồi mật khẩu - Xây dựng website bán hàng trực tuyến dành cho siêu thị bằng reactjs, nodejs và mongodb
Hình 2.35 Biểu đồ hoạt động đăng nhập 2.4.3.4 Biểu đồ hoạt động Phục hồi mật khẩu (Trang 47)
Hình 2.37: Biểu đồ hoạt động đổi mật khẩu - Xây dựng website bán hàng trực tuyến dành cho siêu thị bằng reactjs, nodejs và mongodb
Hình 2.37 Biểu đồ hoạt động đổi mật khẩu (Trang 49)
Hình 3.9: Giao diện trang chủ - Xây dựng website bán hàng trực tuyến dành cho siêu thị bằng reactjs, nodejs và mongodb
Hình 3.9 Giao diện trang chủ (Trang 65)
Hình 3.11: Giao diện loại sản phẩm - Xây dựng website bán hàng trực tuyến dành cho siêu thị bằng reactjs, nodejs và mongodb
Hình 3.11 Giao diện loại sản phẩm (Trang 67)
Hình 3.12: Giao diện trang sản phẩm - Xây dựng website bán hàng trực tuyến dành cho siêu thị bằng reactjs, nodejs và mongodb
Hình 3.12 Giao diện trang sản phẩm (Trang 68)
Hình 3.10: Giao diện giỏ hàng - Xây dựng website bán hàng trực tuyến dành cho siêu thị bằng reactjs, nodejs và mongodb
Hình 3.10 Giao diện giỏ hàng (Trang 71)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w