1. Trang chủ
  2. » Cao đẳng - Đại học

Tìm hiểu công nghệ react xây dựng website thương mại điện tử (báo cáo cuối kì đồ án 1)

87 32 0

Đ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 đề Tìm Hiểu Công Nghệ React Xây Dựng Website Thương Mại Điện Tử
Tác giả Dương Hiển Thế, Nguyễn Tấn Thành
Người hướng dẫn Th.S Huỳnh Tuấn Anh
Trường học Đại Học Quốc Gia TP. Hồ Chí Minh
Chuyên ngành Công Nghệ Thông Tin
Thể loại báo cáo đồ án
Năm xuất bản 2022
Thành phố TP. Hồ Chí Minh
Định dạng
Số trang 87
Dung lượng 6,14 MB

Cấu trúc

  • A. Tìm hiểu công nghệ ............................................... Error! Bookmark not defined. 1. ReactJS là gì (5)
    • 2. Hệ sinh thái của React (5)
    • 3. Đặc trưng cơ bản của ReactJS (6)
    • 4. Lý do nên chọn reactjs (6)
    • 5. Tương lai phát triển của ReactJS (0)
  • B. Sử dụng ReactJS để xây dựng ứng dụng thương mại điện tử (8)
    • I. Chương 1: Tổng Quan (8)
      • 1. Thông tin chung (0)
        • 1.1. Tên đề tài (0)
        • 1.2 Nền tảng ứng dụng (0)
        • 1.3 Công nghệ (0)
        • 1.4 Nhân sự (0)
    • II. Chương 2: Cơ sở lý thuyết (8)
      • 1. Front end (8)
      • 2. Back end (8)
      • 3. Database (9)
      • 4. Storage (9)
    • III. Chương 3: Phân tích và thiết kế hệ thống (10)
      • 1. Danh sách tính năng (0)
      • 2. Sơ đồ Use Case (11)
      • 3. Sơ đồ liên kết màn hình (Site map) (37)
      • 4. Sơ đồ hoạt động (0)
      • 5. Cơ sở dữ liệu (45)
      • 6. Kiến trúc hệ thống (50)
      • 7. Giao diện (53)
    • IV. Chương 4: Tổng kết (84)
      • 1. Kết quả đạt được (84)
      • 2. Hạn chế (85)
      • 3. Hướng phát triển (85)
      • 4. Cách cài đặt (0)
      • 5. Bảng phân công công việc (86)

Nội dung

Tìm hiểu công nghệ Error! Bookmark not defined 1 ReactJS là gì

Hệ sinh thái của React

React JS thường được mô tả như là một thư viện JavaScript Đôi khi là cả một framework JavaScript Vậy cụ thể nó là gì? Hay là cả hai?

Nhóm chuyên môn ở Skillcrush định nghĩa React JS là một thư viện JavaScript, không phải một framework

Sự khác biệt giữa thư viện JavaScript như React và các framework JavaScript như Angular nằm ở cách thức áp dụng mã Các developer sử dụng mã từ thư viện cho các lệnh cụ thể, trong khi framework tạo ra một cấu trúc cho trang web hoặc ứng dụng và cung cấp các khu vực dành riêng cho mã của framework Để hình dung dễ hơn, có thể coi mã từ thư viện JavaScript như đồ nội thất trang trí cho một ngôi nhà đã được xây, trong khi framework giống như một bản mẫu để xây dựng ngôi nhà.

React JS thường bị hiểu nhầm là một framework do hệ sinh thái mạnh mẽ và khả năng mở rộng lớn của nó Thực tế, React JS là một thư viện JavaScript rất linh hoạt, cho phép người dùng xây dựng website và giao diện ứng dụng web một cách hiệu quả.

Snippet của React code và các thành phần (như các block của React code, dùng để tạo các phần cụ thể của giao diện người dùng)

Có thể sử dụng JSX để trực tiếp tác động vào DOM

Một Virtual DOM, giúp cải thiện đáng kể hiệu năng website

React JS là một thư viện mã nguồn mở, cho phép người dùng tải xuống và sửa đổi miễn phí Nhờ đó, kích thước của thư viện này có thể mở rộng đáng kể với nhiều tiện ích và add-on đa dạng.

Đặc trưng cơ bản của ReactJS

Trước đây, việc thay đổi thành phần trên web yêu cầu thao tác trực tiếp với DOM, nhưng với sự phát triển của ReactJS và công nghệ Virtual DOM, vấn đề này đã được cải thiện đáng kể Virtual DOM giúp ứng dụng hoạt động ổn định và mượt mà, ngay cả khi cần thay đổi liên tục trên các trang web lớn với nhiều thành phần phức tạp Hơn nữa, ReactJS sử dụng cú pháp mở rộng JSM cho Javascript, giúp đơn giản hóa quy trình phát triển web, mang lại hiệu quả cao hơn và độ chính xác tốt hơn.

Lý do nên chọn reactjs

ReactJS là một framework dễ học và tiếp cận, được cộng đồng đánh giá cao Với nguồn tài liệu phong phú và hướng dẫn chi tiết, bất kỳ ai cũng có thể làm quen và thành thạo ReactJS nếu có đam mê và dành thời gian nghiên cứu.

Dựa trên tài liệu đã cung cấp, việc tìm hiểu và thực hành không quá khó khăn Nếu bạn đã có nền tảng về Javascript, bạn có thể bắt đầu chỉ sau vài ngày ngắn ngủi để nắm bắt các kiến thức liên quan.

Tái sử dụng nhiều thành phần

ReactJS nổi bật với việc tập trung vào tầng view, nơi mà các thành phần chính của ứng dụng được xây dựng dưới dạng component Mỗi chức năng trong ReactJS được phân chia thành các component riêng biệt, giúp tối ưu hóa hiệu suất và khả năng tái sử dụng Điều này không chỉ giảm thiểu tình trạng lặp mã, mà còn nâng cao tính hiệu quả trong quá trình phát triển ứng dụng.

Nhiều công cụ hỗ trợ

Một trong những lợi ích nổi bật của ReactJS là sự đa dạng của các công cụ hỗ trợ, bao gồm công cụ kiểm tra tối ưu ứng dụng và công cụ debug Khi được sử dụng hợp lý, những công cụ này giúp quá trình phát triển web và ứng dụng trở nên hiệu quả, nhanh chóng và đơn giản hơn.

Cộng đồng người dùng đông đảo

ReactJS phát triển mạnh mẽ và phổ biến, giúp người dùng dễ dàng tìm kiếm hỗ trợ khi cần thiết Việc tra cứu thông tin để giải đáp thắc mắc cũng trở nên đơn giản hơn Cộng đồng phát triển đông đảo cùng với thư viện tối ưu sẽ hỗ trợ người dùng ứng dụng ReactJS hiệu quả hơn.

5 Tương lai phát triển của ReactJS

Facebook và nhóm phát triển ReactJS cam kết nâng cao hiệu quả của ReactJS, điều này trở nên quan trọng khi đối thủ như VueJS đang cạnh tranh mạnh mẽ Dưới đây là những mong đợi mà người dùng hy vọng sẽ được cải tiến trong các phiên bản tiếp theo của ReactJS.

Cộng đồng ReactJS trông đợi phương pháp render mới Ví dụ, ReactJS team có thể xây dựng thêm cú pháp phân đoạn vào JSX mà không cần key

Các nhà phát triển đang mong đợi sự cải tiến trong quy trình xử lý lỗi của ReactJS Trước đây, khi gặp lỗi runtime trong quá trình render, ReactJS xử lý một cách không hiệu quả, buộc developer phải refresh trang Trong phiên bản hiện tại, lỗi vẫn được đưa vào các component hoặc lifecycle method, điều này giúp ngăn chặn việc render dữ liệu lỗi, nhưng lại không mang lại trải nghiệm người dùng tốt.

Tương lai phát triển của ReactJS

Tăng cường server-side rendering trong ReactJS phiên bản mới nhất đã cải thiện tốc độ và hỗ trợ streaming tốt hơn Tuy nhiên, tính năng này vẫn chủ yếu mang tính quảng bá và chưa đạt hiệu quả thực sự trong việc tối ưu hóa hiệu suất.

Sử dụng ReactJS để xây dựng ứng dụng thương mại điện tử

Chương 1: Tổng Quan

Website bán rượu trực tuyến Luxy Wine

STT Họ và tên MSSV

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

ReactJS: Như đã giới thiệu trước đó, ReactJS là một thư viện có rất nhiều ưu điểm cho việc lập trình ứng dụng Web

NodeJS là một mã nguồn được xây dựng dựa trên nền tảng Javascript V8 Engine Nó được xây dựng để chạy trên server

JavaScript là ngôn ngữ lập trình hướng sự kiện, cho phép xử lý các sự kiện non-blocking trên server Nhờ vào đặc điểm này, website sử dụng Node.js có khả năng đáp ứng đồng thời một lượng lớn người dùng mà không bị gián đoạn.

Express.js, hay còn gọi là Express js hoặc Express js, là một framework mã nguồn mở miễn phí dành cho Node.js Framework này giúp thiết kế và xây dựng các ứng dụng web một cách đơn giản và nhanh chóng.

Express.js, với yêu cầu duy nhất là sử dụng ngôn ngữ lập trình JavaScript, giúp lập trình viên dễ dàng xây dựng các ứng dụng web và API Là một khuôn khổ của Node.js, Express.js cung cấp nhiều mã code đã được viết sẵn, hỗ trợ tối đa cho công việc của các nhà phát triển.

Express.js giúp lập trình viên dễ dàng phát triển ứng dụng web đơn lẻ, nhiều trang hoặc kết hợp Với dung lượng nhẹ, Express.js hỗ trợ tổ chức ứng dụng web theo kiến trúc MVC một cách hiệu quả Để sử dụng Express.js, người dùng cần có kiến thức về JavaScript và HTML.

Express.js là một công nghệ quan trọng trong việc quản lý ứng dụng web, thuộc ngăn xếp phần mềm MEAN Thư viện JavaScript của Express.js hỗ trợ lập trình viên phát triển ứng dụng web một cách nhanh chóng và hiệu quả Ngoài ra, Express.js còn giúp nâng cao các chức năng của Node.js, mang lại trải nghiệm lập trình tốt hơn.

MongoDB là hệ quản trị cơ sở dữ liệu NoSQL mã nguồn mở, đa nền tảng, được phát triển bằng ngôn ngữ C++ Dữ liệu trong MongoDB được lưu trữ dưới dạng tài liệu (Document), với cấu trúc bao gồm các cặp giá trị và trường tương tự như đối tượng JSON.

Firebase Storage là dịch vụ lý tưởng để lưu trữ và quản lý nội dung do người dùng ứng dụng tạo ra, bao gồm hình ảnh, video và các loại tệp dữ liệu khác.

Firebase Storage cung cấp API an toàn cho việc tải lên và tải xuống tệp từ ứng dụng của bạn, giúp bạn không phải lo lắng về chất lượng đường truyền mạng.

Firebase Storage được xây dựng trên nền tảng Google Cloud Platform nên có nhiều lợi thế.

Chương 3: Phân tích và thiết kế hệ thống

1 Danh sách tính năng

Stt Tên tính năng Use case

1 Đăng nhập Xác thực người dùng

6 Xem thông tin cá nhân Quản lý thông tin cá nhân

7 Chỉnh sửa thông tin cá nhân

8 Xem chi tiết đơn hàng

9 Xem lịch sử mua hàng

10 Xem sản phẩm rượu Xem sản phẩm, tin tức

11 Xem sản phẩm đặc biệt

12 Xem sản phẩm phụ kiện

14 Xem chi tiết tin tức

15 Xem chi tiết sản phẩm

16 Xem giỏ hàng Quản lý giỏ hàng

17 Thêm sản phẩm vào giỏ hàng

18 Sửa sản phẩm trong gió hàng

19 Xóa sản phẩm trong giỏ hàng

20 Tiến hành đặt hàng Mua hàng

22 Thêm sản phẩm Quản lý sản phẩm

25 Thêm tài khoản Quản lý tài khoản

28 Thêm đơn hàng Quản lý đơn hàng

31 Thêm tin tức Quản lý tin tức

34 Thêm voucher Quản lý khuyến mãi

37 Sửa banner Quản lý banner

STT Tên Actor Ý nghĩa/Ghi chú

1 Khách Khách hàng, người dùng chưa đăng ký tài khoản

2 Người dùng Khách hàng, người dùng đã đăng ký tài khoản

3 Quản trị viên Người quản trị, quản lý trang web, quản lý cửa hàng

2.2 Usecase xác thực người dùng 2.2.1 Usecase đăng ký tài khoản

Tên yêu cầu Đăng ký tài khoản

Mô tả Đăng ký tài khoản người dùng

Tác nhân Khách Điều kiện trước Chưa đăng nhập Điều kiện sau Trạng thái hệ thống sau khi đăng kí tài khoản

Luồng xử lý chính 1 Truy cập vào đường dẫn /dang-ky

2 Người dùng điền các thông tin: email, mật khẩu, xác nhận mật khẩu, họ và tên, giới tính, ngày sinh

3 Hệ thống xác nhận các trường dữ liệu hợp lệ

4 Hệ thống thêm 1 document vào database

5 Ứng dụng thông báo đăng ký thành công, chuyển người dùng đến trang đăng nhập

Luồng xử lý phụ I Thông tin đăng ký không chính xác: Tài khoản đã tồn tại

1 Hệ thống thông báo tài khoản đã tồn tại

2 Hệ thống yêu cầu nhập lại thông tin đăng ký

Tên yêu cầu Đăng nhập

Mô tả Đăng nhập tài khoản để sử dụng

Tác nhân Người dùng, Quản trị viên Điều kiện trước Chưa đăng nhập Điều kiện sau Đăng nhập thành công

Luồng xử lý chính 1 Truy cập vào đường dẫn /dang-nhap

2 Người dùng điền các thông tin: email, mật khẩu

3 Hệ thống xác nhận có trường dữ liệu hợp lệ

4 Thông báo đăng nhập thành công, chuyển đến trang chủ

Luồng xử lý phụ 1 Hệ thống thông báo nếu có lỗi

Tên yêu cầu Quên mật khẩu

Để lấy lại mật khẩu, người dùng cần xác nhận mã bí mật được gửi tới email đăng ký tài khoản Quá trình này yêu cầu người dùng chưa đăng nhập và kết quả là có thể đặt lại mật khẩu một cách dễ dàng Quản trị viên cũng có thể hỗ trợ trong quá trình này.

Luồng xử lý chính 1 Truy cập vào đường dẫn /quen-mat-khau

4 Hệ thống gửi email chứa mã xác nhận đến cho người dùng

5 Người dùng xác nhận mã trong màn hình tiếp theo

6 Hệ thống xác nhận mật mã

7 Người dùng nhập mật khẩu và xác nhận mật khẩu mới

Luồng xử lý phụ I Mã bí mật không chính xác quá 3 lần

1 Hệ thống từ chối việc đặt lại mật khẩu

Tên yêu cầu Đăng nhập

Mô tả Người dùng đổi mật khẩu theo nhu cầu sử dụng

Tác nhân Người dùng, Quản trị viên Điều kiện trước Đã đăng nhập Điều kiện sau Thông tin mật khẩu trong database được thay đổi

Luồng xử lý chính 1 Người dùng đã đăng nhập vào hệ thống

2 Chọn vào ảnh đại diện trên thanh header

4 Điền mật khẩu hiện tại, mật khẩu mới, xác nhận mật khẩu mới

6 Ứng dụng thông báo đổi mật khẩu thành công Luồng xử lý phụ Hệ thống thông báo nếu có lỗi

2.3 Usecase quản lý thông tin cá nhân

Tên yêu cầu Quản lý thông tin cá nhân

Người dùng có thể quản lý thông tin cá nhân của mình, bao gồm việc xem và chỉnh sửa các thông tin cá nhân, lịch sử mua hàng cũng như chi tiết đơn hàng Để thực hiện các hành động này, người dùng cần đăng nhập vào hệ thống Sau khi hoàn tất, hành động sẽ được thực hiện thành công.

Luồng xử lý chính I Xem thông tin cá nhân, lịch sử mua hàng

1 Chọn vào ảnh đại diện trên thanh header

2 Chọn xem thông tin tài khoản

3 Hệ thống trả về dữ liệu thông tin tài khoản

II Chỉnh sửa thông tin cá nhân

1 Chọn vào ảnh đại diện trên thanh header

2 Chọn xem thông tin tài khoản

3 Hệ thống trả về dữ liệu thông tin tài khoản

4 Người dùng thay đổi thông tin ở trong các khung input

5 Người dùng ấn cập nhật

6 Hệ thống kiểm tra dữ liệu, thực hiện thay đổi csdl nếu dữ liệu hợp lệ

III Xem chi tiết đơn hàng

1 Chọn vào ảnh đại diện trên thanh header

2 Chọn xem thông tin tài khoản

3 Hệ thống trả về dữ liệu thông tin tài khoản

4 Người dùng ấn vào 1 dòng trong bảng lịch sử mua hàng

5 Hệ thống trả về dữ liệu chi tiết của đơn hàng vừa chọn

Luồng xử lý phụ Hệ thống thông báo nếu có lỗi

2.4 Xem sản phẩm, tin tức

Tên yêu cầu Xem sản phẩm, tin tức

Người dùng có thể truy cập vào các trang liên quan đến Rượu, combo khuyến mãi, phụ kiện và tin tức để tìm hiểu thông tin về sản phẩm và các tin tức mới nhất Khi chọn một sản phẩm hoặc tin tức, họ sẽ được xem thông tin chi tiết về nội dung đó.

Tác nhân Khách, Người dùng, Quản trị viên Điều kiện trước Khống có Điều kiện sau Xem được thông tin sản phẩm/ tin tức

Luồng xử lý chính I Xem các sản phẩm/tin tức có trong cửa hàng

1 Vào giao diện chính của ứng dụng

2 Chọn vào các tab Rượu/ Combo sản phẩm đặc biệt/ Phụ kiện/ Tin tức để xem danh sách các sản phẩm

3 Hệ thống trả về danh sách

II Lọc sản phẩm rượu/ combo khuyến mãi

1 Truy cập vào giao diện của tab rượu/ combo khuyến mãi

2 Chọn các bộ lọc để lọc ra các sản phẩm cần tìm

3 Hệ thống trả về các sản phẩm như đã lọc III Xem chi tiết sản phẩm/ tin tức

1 Truy cập vào các trang danh sách sản phẩm/tin tức

2 Chọn vào 1 sản phẩm/ tin tức

3 Hệ thống trả về dữ liệu chi tiết của các sản phẩm/ tin tức

Luồng xử lý phụ Hệ thống thông báo nếu xảy ra lỗi

Tên yêu cầu Quản lý giỏ hàng

Mô tả Người dùng điều chỉnh các sản phẩm có trong giỏ hàng trước khi thực hiện đặt hàng Tác nhân Khách, Người dùng, Quản trị viên

22 Điều kiện trước Không có Điều kiện sau Điều chỉnh giỏ hàng thành công

Luồng xử lý chính I Thêm sản phẩm vào giỏ hàng từ màn hình danh sách sản phẩm

1 Người dùng truy cập vào trang danh sách các sản phẩm rượu/ combo khuyến mãi/ phụ kiện

2 Hệ thống trả về danh sách các sản phẩm

3 Người dùng di chuột lên thẻ sản phẩm

4 Người dùng ấn vào nút biểu tượng giỏ hàng

5 Hệ thống thực hiện lưu thông tin giỏ hàng vào csdl nếu đã đăng nhập, nếu chưa đăng nhập thực hiện lưu vào cookies

II Thêm sản phẩm vào giỏ hàng từ màn hình chi tiết sản phẩm

1 Người dùng truy cập vào trang chi tiết sản phẩm rượu/combo khuyến mãi/ phụ kiện

2 Hệ thống trả về thông tin chi tiết sản phẩm

3 Người dùng ấn chọn số lượng, sau đó ấn vào nút thêm vào giỏ hàng

4 Hệ thống thực hiện lưu thông tin giỏ hàng vào csdl nếu đã đăng nhập, nếu chưa đăng nhập thực hiện lưu vào cookies

1 Người dùng chọn vào icon giỏ hàng phía trên thanh header

2 Hệ thống trả về danh sách sản phẩm trong csdl và cookies

IV Chỉnh sửa/ Xóa sản phẩm khỏi giỏ hàng

1 Tại màn hình giỏ hàng, người dùng thay đổi thông tin số lượng sản phẩm/ xóa sản phẩm

2 Hệ thống ghi nhận thay đổi vào csdl và cookies Luồng xử lý phụ Hệ thống thông báo nếu xảy ra lỗi

Tên yêu cầu Mua hàng

Người dùng đã đăng nhập tiến hành đặt hàng và xác nhận thông tin để mua sản phẩm Các tác nhân liên quan trong quy trình này bao gồm Khách, Người dùng và Quản trị viên.

24 Điều kiện sau Thực hiện thành công hành động

Luồng xử lý chính I Tiến hành đặt hàng từ giỏ hàng

1 Tại giỏ hàng, ấn vào nút tiến hành đặt hàng

2 Hệ thống yêu cầu người dùng nhập thông tin cho đơn hàng mới gồm toàn bộ sản phẩm có trong giỏ hàng

3 Người dùng nhập vào thông tin giao hàng

4 Người dùng chọn hình thức thanh toán

6 Hệ thống lưu lại 1 document về đơn hàng vừa đặt

II Tiến hành đặt hàng từ trang chi tiết sản phẩm

1 Tại trang chi tiết sản phẩm, ấn mua ngay

2 Hệ thống yêu cầu người dùng nhập thông tin cho đơn hàng mới cho sản phẩm vừa chọn

3 Người dùng nhập thông tin giao hàng

4 Người dùng chọn hình thức thanh toán

6 Hệ thống lưu lại 1 document về đơn hàng vừa đặt

III Thanh toán đơn hàng bằng momo

Tại trang thực hiện đặt hàng, người dùng chọn vào thanh toàn bằng momo

Hệ thống chuyển hướng sang màn hình chứa mã

QR momo để quét mã thanh toán Người dùng thực hiện quét mã

Hệ thống lưu thêm đơn hàng với trạng thái đã xác nhận, đã thanh toán

IV Áp dụng khuyến mãi cho đơn hàng

1 Tại trang đặt hàng, người dùng nhập mã khuyến mãi và ấn xác nhận

2 Hệ thống kiểm tra mã giảm giá, kiểm tra điều kiện sử dụng mã

Luồng xử lý phụ Hệ thống thông báo nếu có lỗi

Tên yêu cầu Quản lý sản phẩm

Mô tả Quản trị viên thực hiện các thao tác trên sản phẩm, thay đổi, thêm, xóa

Tác nhân Quản trị viên Điều kiện trước Đã đăng nhập, truy cập vào giao diện quản lý với đường dẫn

/quan-ly Điều kiện sau Thực hiện thành công hành động

Luồng xử lý chính I Quản lý danh sách sản phẩm

1 Người dùng chọn tab quản lý sản phẩm hoặc truy cập: /quan-ly/san-pham

2 Hệ thống trả về danh sách sản phẩm

3 Người dùng thực hiện tìm kiếm sản phẩm

4 Hệ thống trả về kết quả tương ứng với tất cả các trường thông tin

1 Tại màn hình quản lý danh sách sản phẩm, ấn nút thêm sản phẩm

2 Điền các thông tin, ấn lưu

3 Hệ thống kiểm tra tính đúng đắn của bộ dữ liệu, thực hiện lưu xuống csdl nếu dữ liệu hợp lệ

4 Thông báo thêm sản phẩm thành công, chuyển hướng đến màn hình quản lý danh sách sản phẩm

1 Tại màn hình quản lý danh sách sản phẩm, ấn vào 1 dòng trong danh sách

2 Chuyển hướng đến màn hình chi tiết sản phẩm

4 Hệ thống chuyển hướng tới giao diện chỉnh sửa

6 Hệ thống kiếm tra tính đúng đắn của dữ liệu, lưu thay đổi vào csdl nếu dữ liệu hợp lệ

7 Hệ thống chuyển hướng về giao diện chi tiết sản phẩm

1 Truy cập đến giao diện quản lý chi tiết sản phẩm

3 Hệ thống thực hiện xóa sản phẩm và các dữ liệu liên quan

4 Hệ thống chuyển hướng đến giao diện quản lý danh sách sản phẩm

Luồng xử lý phụ Hệ thống thông báo nếu có lỗi

Tên yêu cầu Quản lý tài khoản

Mô tả Quản trị viên thực hiện các thao tác trên tài khoản, thay đổi, thêm, xóa, sửa

Tác nhân Quản trị viên Điều kiện trước Đã đăng nhập, truy cập vào giao diện quản lý với đường dẫn

28 Điều kiện sau Thực hiện thành công hành động

Luồng xử lý chính I Quản lý danh sách tài khoản

1 Người dùng chọn tab quản lý tài khoản hoặc truy cập: /quan-ly/tai-khoan

2 Hệ thống trả về danh sách tai-khoan

3 Người dùng thực hiện tìm kiếm tài khoản

4 Hệ thống trả về kết quả tương ứng với tất cả các trường thông tin

1 Tại màn hình quản lý danh sách tài khoản, ấn nút thêm tài khoản

2 Điền các thông tin, ấn lưu

3 Hệ thống kiểm tra tính đúng đắn của bộ dữ liệu, thực hiện lưu xuống csdl nếu dữ liệu hợp lệ

4 Thông báo thêm tài khoản thành công, chuyển hướng đến màn hình quản lý danh sách tài khoản III Sửa tài khoản

1 Tại màn hình quản lý danh sách tài khoản, ấn vào 1 dòng trong danh sách

2 Chuyển hướng đến màn hình chi tiết tài khoản

4 Hệ thống chuyển hướng tới giao diện chỉnh sửa

6 Hệ thống kiếm tra tính đúng đắn của dữ liệu, lưu thay đổi vào csdl nếu dữ liệu hợp lệ

7 Hệ thống chuyển hướng về giao diện chi tiết tài khoản

1 Truy cập đến giao diện quản lý chi tiết tài khoản

3 Hệ thống thực hiện xóa tài khoản và các dữ liệu liên quan

4 Hệ thống chuyển hướng đến giao diện quản lý danh sách tài khoản

Luồng xử lý phụ Hệ thống thông báo nếu có lỗi

Tên yêu cầu Quản lý đơn hàng

Mô tả Quản trị viên thực hiện các thao tác trên đơn hàng, thay đổi, thêm, xóa

Tác nhân Quản trị viên Điều kiện trước Đã đăng nhập, truy cập vào giao diện quản lý với đường dẫn

30 Điều kiện sau Thực hiện thành công hành động

Luồng xử lý chính I Quản lý danh sách đơn hàng

1 Người dùng chọn tab quản lý hóa đơn hoặc truy cập: /quan-ly/hoa-don

2 Hệ thống trả về danh sách đơn hàng

3 Người dùng thực hiện tìm kiếm/ lọc đơn hàng

4 Hệ thống trả về kết quả tương ứng với tất cả các trường thông tin

1 Tại màn hình quản lý danh sách hóa đơn, ấn nút thêm hóa đơn

2 Điền các thông tin, ấn lưu

3 Hệ thống kiểm tra tính đúng đắn của bộ dữ liệu, thực hiện lưu xuống csdl nếu dữ liệu hợp lệ

4 Thông báo thêm hóa đơn thành công, chuyển hướng đến màn hình quản lý danh sách hóa đơn III Sửa hóa đơn

8 Tại màn hình quản lý danh sách hóa đơn, ấn vào 1 dòng trong danh sách

9 Chuyển hướng đến màn hình chi tiết hóa đơn

11 Hệ thống chuyển hướng tới giao diện chỉnh sửa

13 Hệ thống kiếm tra tính đúng đắn của dữ liệu, lưu thay đổi vào csdl nếu dữ liệu hợp lệ

14 Hệ thống chuyển hướng về giao diện chi tiết hóa đơn

5 Truy cập đến giao diện quản lý chi tiết hóa đơn

7 Hệ thống thực hiện xóa hóa đơn và các dữ liệu liên quan

8 Hệ thống chuyển hướng đến giao diện quản lý danh sách hóa đơn

V Xác nhận các hóa đơn thanh toán bằng thẻ ngân hàng

1 Tại màn hình quản lý danh sách hóa đơn, ấn xác nhận thanh toán

2 Hệ thống mở modal danh sách các đơn hàng cần xác nhận

3 Thực hiện ấn nút xác nhận thanh toán/ xóa yêu cầu thanh toán đơn hàng

4 Hệ thống thực hiện thay đổi trên csdl Luồng xử lý phụ Hệ thống thông báo nếu có lỗi

Tên yêu cầu Quản lý Tin tức

Mô tả Quản trị viên thực hiện các thao tác trên Tin tức, thay đổi, thêm, xóa

Tác nhân Quản trị viên Điều kiện trước Đã đăng nhập, truy cập vào giao diện quản lý với đường dẫn

/quan-ly Điều kiện sau Thực hiện thành công hành động

Luồng xử lý chính I Quản lý danh sách Tin tức

1 Người dùng chọn tab quản lý Tin tức hoặc truy cập: /quan-ly/tin-tuc

2 Hệ thống trả về danh sách Tin tức

3 Người dùng thực hiện tìm kiếm Tin tức

4 Hệ thống trả về kết quả tương ứng với tất cả các trường thông tin

1 Tại màn hình quản lý danh sách Tin tức, ấn nút thêm Tin tức

2 Điền các thông tin, ấn lưu

3 Hệ thống kiểm tra tính đúng đắn của bộ dữ liệu, thực hiện lưu xuống csdl nếu dữ liệu hợp lệ

4 Thông báo thêm Tin tức thành công, chuyển hướng đến màn hình quản lý danh sách Tin tức III Sửa Tin tức

1 Tại màn hình quản lý danh sách Tin tức, ấn vào

2 Chuyển hướng đến màn hình chi tiết Tin tức

4 Hệ thống chuyển hướng tới giao diện chỉnh sửa

6 Hệ thống kiếm tra tính đúng đắn của dữ liệu, lưu thay đổi vào csdl nếu dữ liệu hợp lệ

7 Hệ thống chuyển hướng về giao diện chi tiết Tin tức

1 Truy cập đến giao diện quản lý chi tiết Tin tức

3 Hệ thống thực hiện xóa Tin tức và các dữ liệu liên quan

4 Hệ thống chuyển hướng đến giao diện quản lý danh sách Tin tức

Luồng xử lý phụ Hệ thống thông báo nếu có lỗi

Tên yêu cầu Quản lý khuyến mãi

Mô tả Quản trị viên thực hiện các thao tác trên khuyến mãi, thay đổi, thêm, xóa

Tác nhân Quản trị viên Điều kiện trước Đã đăng nhập, truy cập vào giao diện quản lý với đường dẫn

/quan-ly Điều kiện sau Thực hiện thành công hành động

Luồng xử lý chính I Quản lý danh sách khuyến mãi

1 Người dùng chọn tab quản lý khuyến mãi hoặc truy cập: /quan-ly/khuyen-mai

2 Hệ thống trả về danh sách khuyến mãi

3 Người dùng thực hiện tìm kiếm khuyến mãi

4 Hệ thống trả về kết quả tương ứng với tất cả các trường thông tin

1 Tại màn hình quản lý danh sách khuyến mãi, ấn

2 Điền các thông tin, ấn lưu

3 Hệ thống kiểm tra tính đúng đắn của bộ dữ liệu, thực hiện lưu xuống csdl nếu dữ liệu hợp lệ

4 Thông báo thêm khuyến mãi thành công, chuyển hướng đến màn hình quản lý danh sách khuyến mãi

1 Tại màn hình quản lý danh sách khuyến mãi, ấn vào 1 dòng trong danh sách

2 Chuyển hướng đến màn hình chi tiết khuyến mãi

4 Hệ thống chuyển hướng tới giao diện chỉnh sửa

6 Hệ thống kiếm tra tính đúng đắn của dữ liệu, lưu thay đổi vào csdl nếu dữ liệu hợp lệ

7 Hệ thống chuyển hướng về giao diện chi tiết khuyến mãi

1 Truy cập đến giao diện quản lý chi tiết khuyến mãi

3 Hệ thống thực hiện xóa khuyến mãi và các dữ liệu liên quan

4 Hệ thống chuyển hướng đến giao diện quản lý danh sách khuyến mãi

Luồng xử lý phụ Hệ thống thông báo nếu có lỗi

Tên yêu cầu Quản lý banner

Mô tả Quản trị viên thực hiện các thao tác trên banner, thay đổi, thêm, xóa

Tác nhân Quản trị viên Điều kiện trước Đã đăng nhập, truy cập vào giao diện quản lý với đường dẫn

/quan-ly Điều kiện sau Thực hiện thành công hành động

Luồng xử lý chính I Quản lý danh sách banner

1 Người dùng chọn tab quản lý banner hoặc truy cập: /quan-ly/banner

2 Hệ thống trả về danh sách banner

3 Người dùng thực hiện tìm kiếm banner

4 Hệ thống trả về kết quả tương ứng với tất cả các trường thông tin

1 Tại màn hình quản lý danh sách banner, ấn vào

2 Chuyển hướng đến màn hình chi tiết banner

4 Hệ thống chuyển hướng tới giao diện chỉnh sửa

6 Hệ thống kiếm tra tính đúng đắn của dữ liệu, lưu thay đổi vào csdl nếu dữ liệu hợp lệ

7 Hệ thống chuyển hướng về giao diện chi tiết banner

Luồng xử lý phụ Hệ thống thông báo nếu có lỗi

3 Sơ đồ liên kết màn hình (Site map)

4 Sơ đồ hoạt động

Sơ đồ hoạt động đăng nhập

Sơ đồ hoạt động đăng ký

Sơ đồ hoạt động thêm sản phẩm vào giỏ hàng

Sơ đồ hoạt động đặt hàng

Sơ đồ hoạt động xem sản phẩm

Sơ đồ hoạt động xem tin tức/ blog

Sơ đồ hoạt động thêm sản phẩm mới

Sơ đồ hoạt động thêm tin tức/blog

Sơ đồ hoạt động xem/ sửa đơn hàng

Sơ đồ hoạt động xem/ sửa danh sách sản phẩm

Sơ đồ hoạt động xóa sản phẩm

Sơ đồ hoạt động xem/ xóa tài khoản

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

STT Tên collections dữ liệu

1 users Danh sách tài khoản người dùng và tài khoản admin

2 voucher Danh sách các voucher khuyến mãi

3 receipts Danh sách các hóa đơn / đơn hàng

4 news Danh sách các bài đăng tin tức/ blogs

5 products Danh sách các sản phẩm của shop

6 banners Danh sách các hình ảnh, banner trong các trang

7 emailtokens Lưu trữ token hỗ trợ cho việc verify email của tài khoản a Chi tiết collections users

STT Tên trường Kiểu dữ liệu Ràng buộc Ý nghĩa

1 email String Bắt buộc, duy nhất

2 name String Bắt buộc Họ và tên

3 password String Bắt buộc Mật khẩu người dùng

5 phone String Bắt buộc Số điện thoại người dùng

6 gender Number Bắt buộc Giới tính, 1: Nam, 2: Nữ, 3:

7 role String Bắt buộc Vai trò của người dùng, ‘user’ và ‘admin’

8 emailVerified Boolean Đã xác nhận email hay chưa

9 address Array Danh sách địa chỉ giao hàng của người dùng, là mảng object với các trường là: district, province, ward, description, name, phone

10 avatar String Đường dẫn lưu trữ ảnh giao diện của người dùng

11 birthday Date Ngày sinh của người dùng

12 cart Array Là giỏ hàng, chứa mảng các object gồm 2 thuộc tính là product và quantity

13 receipts Array Mảng lưu trữ id của các hóa đơn b Chi tiết collections vouchers STT Tên trường Kiểu dữ liệu Ràng buộc Ý nghĩa

1 name String Bắt buộc Tên của voucher

2 avtURL String Ảnh đại diện của voucher

3 code String Bắt buộc Code áp dụng của voucher

5 description String Mô tả cho voucher

6 amount Number Bắt buộc Số lượng tính cho khuyến mãi

7 type Number Bắt buộc Loại khuyến mãi, 1: số tiền, 2: phần trăm

8 limit Number Số tiền khuyến mãi tối đa

9 receipt Array Danh sách id của các đơn hàng đã áp mã

10 isEnable Boolean Bắt buộc Trạng thái đang kích hoạt hay không

11 quantity Number Bắt buộc Số lượt sử dụng còn lại

12 exp Date Ngày hết hạn khuyến mãi

13 isPublics Boolean Bắt buộc Khuyến mãi có hiển thị trên trang thông báo khuyến mãi hay không

14 condition Object Điều kiện được áp dụng khuyến mãi: c Chi tiết collections receipts STT Tên trường Kiểu dữ liệu Ràng buộc Ý nghĩa

1 receiver String Id của người tạo đơn hàng, nếu đơn hàng được tạo bởi người chưa đăng nhập sẽ để trống

2 receiver Object Thông tin nhận hàng: name, phone, province, district, ward, description, note

3 profit Number Bắt buộc Lợi nhuận của đơn hàng

5 voucher String Id của voucher áp dụng cho đơn hàng

6 cart Array Bắt buộc Mảng chứa object các sản phẩm đã mua

7 totalPrice Number Bắt buộc Tổng doanh thu của đơn hàng

8 status Number Trạng thái đơn hàng: 0: bị hủy,

1: chờ xác nhận, 2: đã xác nhận, 3: đang giao 4: đã nhận hàng, 6: boom hàng

9 payMethod Number Phương thức thanh toán: 1: tiền mặt, 2: Momo, 3: thẻ.ngân hàng

10 shippingUnit String Đơn vị vận chuyển

11 shippingCode String Mã vận đơn

14 condition Object Điều kiện được áp dụng khuyến mãi: d Chi tiết bản news STT Tên trường Kiểu dữ liệu Ràng buộc Ý nghĩa

1 avtUrl String Bắt buộc Thumbnail của tin

2 title String Bắt buộc Tiêu đề của tin

3 description String Bắt buộc Đoạn mô tả ngắn của bản tin

5 views Number Bắt buộc Số lượt xem tin

6 content String Bắt buộc Mã HTML cho nội dung của bài viết e Chi tiết collection products STT Tên trường Kiểu dữ liệu Ràng buộc Ý nghĩa

1 name String Tên sản phẩm

2 sku String Mã SKU của sản phẩm

3 aboutProduct String Bắt buộc Thông tin thêm về sản phẩm

5 avtURL String Đường dẫn ảnh hiển thị của sản phẩm

6 imgURLs Array Bắt buộc Mảng chứa các đường dẫn của ảnh sản phẩm

7 quantity Number Bắt buộc Số lượng còn lại

8 importPrice Number Giá nhập sản phẩm

9 originPrice Number Giá bán nguyên bản

10 price Number Giá bán thực tế

11 temperature Object Nhiệt độ tối đa và tối thiểu cho việc sử dụng sản phẩm rượu, minimum: tối thiểu, maximum: tối đa

14 color String Màu sắc sản phẩm rượu, gồm red, pink và white

15 foods String Danh sách tên các món ăn origin String Xuất xứ( Quốc gia) producer String Nhà sản xuất concentrationP ercent

The article provides essential details about wine, including its alcohol concentration (in %), volume (in ml), vintage year, sugar content (in %), expiration date, and product type, which is categorized as "wine."

Boolean Có là sản phẩm đặc biệt hay không isNewProduct Boolean Có là sản phẩm mới hay không

50 hasSold Number Đã bán bao nhiêu sản phẩm isSaleProduct Boolean Có đang sale hay không

Hệ thống được phát triển theo mô hình MVC a Các thành phần trong hệ thống

Thành phần chính Diễn giải

Model Chứa resources - lưu trữ toàn bộ dữ liệu của ứng dụng Bộ phận này là một cầu nối giữa 2 thành phần bên dưới là

View trong MVC là giao diện người dùng, nơi cung cấp thông tin dữ liệu thông qua các thao tác truy vấn như tìm kiếm Người dùng có thể dễ dàng truy cập và tương tác với dữ liệu thông qua các trang web.

Controller là bộ phận chịu trách nhiệm xử lý các yêu cầu từ người dùng thông qua giao diện (view) và cung cấp dữ liệu phù hợp Ngoài ra, Controller còn có vai trò kết nối với model để đảm bảo tính hiệu quả trong việc quản lý dữ liệu.

STT Thành phần Diễn giải

1 Browser Trình duyệt phía người dùng

2 Web Server Khi người dùng gõ vào trình duyệt, thì nó sẽ request lên Web

3 Routes Nó map request đến vào Controller Action và tạo ra URL đầu ra tương ứng với Controller action

Dispatcher là nơi tiếp nhận yêu cầu đầu tiên từ khách hàng, sau đó chuyển tiếp yêu cầu đó đến các controller tương ứng Đồng thời, Dispatcher cũng đóng vai trò là điểm cuối cùng để trả về kết quả cho khách hàng.

Giao diện 5 View là phần thiết kế dành cho người sử dụng, cho phép người dùng truy cập và lấy thông tin dữ liệu từ MVC thông qua các thao tác truy vấn như tìm kiếm hoặc thông qua các trang web.

6 Model Chứa resources - lưu trữ toàn bộ dữ liệu của ứng dụng Bộ phận này là một cầu nối giữa 2 thành phần bên dưới là View và Controller

7.2 Giao diện trang danh sách rượu:

7.3 Giao diện trang danh sách sản phẩm đặc biệt

7.4 Giao diện trang phụ kiện

7.5 Giao diện trang khuyến mãi

7.6 Giao diện trang tin tức

7.7 Giao diện trang chi tiết tin tức

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

7.9 Giao diện trang giỏ hàng

7.10 Giao diện trang thanh toán

7.11 Giao diện trang đăng nhập

7.12 Giao diện trang cá nhân

7.13 Giao diện chi tiết đơn hàng (user)

7.15 Giao diện tra cứu đơn hàng

7.16 Giao diện quản lý sản phẩm

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

7.18 Giao diện thêm, chỉnh sửa sản phẩm

7.19 Giao diện quản lý hóa đơn

7.20 Giao diện chi tiết hóa đơn

7.21 Giao diện chỉnh sửa địa chỉ nhận hàng

7.22 Giao diện chỉnh sửa giỏ hàng (Bước 1)

7.23 Giao diện chỉnh sửa giỏ hàng (Bước 2)

7.24 Giao diện chỉnh sửa trạng thái đơn hàng

7.25 Giao diện tạo đơn hàng (Bước 1)

7.26 Giao diện tạo đơn hàng ( Bước 2)

7.27 Giao diện tạo đơn hàng (Bước 3)

7.28 Giao diện xác nhận thanh toán

7.29 Giao diện quản lý voucher

7.30 Giao diện chi tiết voucher

7.31 Giao diện sửa, xóa voucher

7.32 Giao diện quản lý bài viết

7.33 Giao diện thêm, chỉnh sửa bài viết

7.34 Giao diện quản lý banner

7.2 Giao diện chi tiết banner

7.3 Giao diện quản lý người dùng

7.4 Giao diện chỉnh sửa, thêm người dùng

7.6 Giao diện chọn khoảng thời gian

7.7 Giao diện tùy chỉnh khoảng thời gian

Link ảnh drive: https://drive.google.com/drive/folders/1GN9bynCk6oyQz1AnmAd0FItJ9Oj23FBo

Chương 4: Tổng kết

Nhóm đã áp dụng thành công ReactJS để phát triển ứng dụng web, đồng thời sử dụng Redux-thunk cho quản lý trạng thái, giúp tối ưu hóa hiệu suất Ngoài ra, việc sử dụng NodeJS cũng được triển khai hiệu quả trong dự án này.

ReactJS, nhóm cũng đã có thể làm việc với MongoDb và Firebase storage để quản lý dữ liệu của ứng dụng

Nhóm không chỉ tích lũy kiến thức và kinh nghiệm về ReactJS mà còn mở rộng hiểu biết về nghiệp vụ thông qua nghiên cứu ứng dụng Nhờ đó, nhóm tự tin phát triển các dự án khác sử dụng công nghệ này, đặc biệt là ReactJS.

Source code của đồ án được nhóm quản lý ở 2 đường dẫn github sau:

- https://github.com/hacThe/LuxyWine-FE

- https://github.com/hacThe/LuxyWine-BE

- Một số quy trình nghiệp vụ trong khâu quản lý còn chưa được hoàn thiện

- Giao diện chưa thực sự tối ưu cho nhiều thiết bị, responsive chỉ mang tính tương đối

- Chưa test kĩ các tính năng

- Hoàn thành đầy đủ, chi tiết các vấn đề nghiệp vụ trọng tâm

- Chỉnh sửa giao diện responsive hoàn hảo cho tất cả các thiết bị

- Thực hiện các nghiệp vụ Digital Maketting, tối ưu hóa các công cụ tìm kiếm cho trang web

4.1 Đối với người sử dụng:

Giao diện : https://luxy-wine-7ijtn2uzl-hacthe.vercel.app/trang-chu

Tài khoản admin: hienthe.473@gmail.com / a11111111 Đường dẫn quản lý: https://luxy-wine-7ijtn2uzl-hacthe.vercel.app/quan-ly/dashboard

4.2 Đối với lập trình viên:

− Clone repository: https://github.com/hacThe/LuxyWine-FE

− Tạo thư mục env với nội dung

− Cài đặt các thư viện: npm install

− Khởi chạy ứng dụng: npm start

− Clone repository: https://github.com/hacThe/LuxyWine-BE

− Tạo thư mục env với nội dung:

− MONGODB_URI=mongodb+srv://admin:

FbMg02FyxIUfB0HX@luxywine.f1fdn.mongodb.net/myFirstDatabase?retr yWrites=true&w=majority

− Cài đặt các thư viện: npm install

− Khởi chạy ứng dụng: npm start

5 Bảng phân công công việc

STT Tên công việc Thành viên

1 Chuẩn bị, lên kế hoạch x x

2 Khảo sát, đặc tả yêu cầu x x

6 Chức năng người dùng (Front end) x

7 Chức năng quản lý (Front end) x

9 Kiểm tra và sửa lỗi x x

10 Viết và tổng hợp báo cáo x x

Tỷ lệ công việc phân công 50% 50%

Ngày đăng: 16/06/2022, 20:31

HÌNH ẢNH LIÊN QUAN

Sơ đồ hoạt động đăng nhập - Tìm hiểu công nghệ react xây dựng website thương mại điện tử (báo cáo cuối kì đồ án 1)
Sơ đồ ho ạt động đăng nhập (Trang 38)
Sơ đồ hoạt động thêm sản phẩm vào giỏ hàng - Tìm hiểu công nghệ react xây dựng website thương mại điện tử (báo cáo cuối kì đồ án 1)
Sơ đồ ho ạt động thêm sản phẩm vào giỏ hàng (Trang 39)
Sơ đồ hoạt động đặt hàng - Tìm hiểu công nghệ react xây dựng website thương mại điện tử (báo cáo cuối kì đồ án 1)
Sơ đồ ho ạt động đặt hàng (Trang 39)
Sơ đồ hoạt động xem sản phẩm - Tìm hiểu công nghệ react xây dựng website thương mại điện tử (báo cáo cuối kì đồ án 1)
Sơ đồ ho ạt động xem sản phẩm (Trang 40)
Sơ đồ hoạt động thêm sản phẩm mới - Tìm hiểu công nghệ react xây dựng website thương mại điện tử (báo cáo cuối kì đồ án 1)
Sơ đồ ho ạt động thêm sản phẩm mới (Trang 41)
Sơ đồ hoạt động xem/ sửa đơn hàng - Tìm hiểu công nghệ react xây dựng website thương mại điện tử (báo cáo cuối kì đồ án 1)
Sơ đồ ho ạt động xem/ sửa đơn hàng (Trang 43)
Sơ đồ hoạt động xóa sản phẩm - Tìm hiểu công nghệ react xây dựng website thương mại điện tử (báo cáo cuối kì đồ án 1)
Sơ đồ ho ạt động xóa sản phẩm (Trang 44)
Sơ đồ hoạt động xem/ xóa tài khoản - Tìm hiểu công nghệ react xây dựng website thương mại điện tử (báo cáo cuối kì đồ án 1)
Sơ đồ ho ạt động xem/ xóa tài khoản (Trang 45)

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

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

TÀI LIỆU LIÊN QUAN

w