1. Trang chủ
  2. » Giáo Dục - Đào Tạo

xây dựng website thương mại điện tử với spring boot và angular

127 0 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 Thương Mại Điện Tử Với Spring Boot Và Angular
Tác giả Lê Nguyễn Trường Giang
Người hướng dẫn ThS. Nguyễn Minh Đạo
Trường học Trường Đại Học Sư Phạm Kỹ Thuật Thành Phố Hồ Chí Minh
Chuyên ngành Công Nghệ Thông Tin
Thể loại Đồ Án Tốt Nghiệp
Năm xuất bản 2024
Thành phố Thành Phố Hồ Chí Minh
Định dạng
Số trang 127
Dung lượng 10,62 MB

Cấu trúc

  • PHẦN 1. MỞ ĐẦU (23)
    • 1. Lý do chọn đề tài (23)
    • 2. Phạm vi và đối tượng của đề tài (23)
    • 3. Về mặt thiết bị và phần mềm (24)
    • 4. Yêu cầu về phần mềm (24)
      • 4.1. Phần dành cho người quản lý (chủ cửa hàng) (24)
      • 4.2. Phần dành cho khách hàng (25)
  • PHẦN 2: NỘI DUNG (26)
  • CHƯƠNG 1: CƠ SỞ LÝ THUYẾT (26)
    • 1.1. SPRING FRAMEWORK (26)
      • 1.1.1. Giới thiệu về Spring Framework (26)
      • 1.1.2. Nguyên tắc IoC và DI (26)
      • 1.1.3. Chức năng chính của Spring Framework (26)
      • 1.1.4. Giới thiệu về Spring Boot (26)
      • 1.1.5. Tính năng nổi bật của Spring Boot (27)
      • 1.1.6. Sự kết hợp giữa Spring Framework và Spring Boot (27)
    • 1.2. ANGULAR FRAMEWORK (27)
    • 1.3. MYSQL (28)
    • 1.4. API (30)
  • CHƯƠNG 2: MÔ HÌNH HÓA YÊU CẦU VÀ THIẾT KẾ CƠ SỞ DỮ LIỆU (0)
    • 2.1. Mô hình hệ thống (32)
    • 2.2. Yêu cầu hệ thống (32)
      • 2.2.1. Sơ đồ Usecase (32)
      • 2.2.2. Mô tả Usecase (33)
    • 2.3. ERD ClassDiagram (54)
      • 2.3.1. Sơ đồ ERD (54)
      • 2.3.2. Mô tả Entity (55)
    • 2.4. Sequence diagram (60)
  • CHƯƠNG 3: THIẾT KẾ GIAO DIỆN (81)
    • 3.1. Header and Menu (81)
    • 3.2. Trang chủ (84)
    • 3.3. Footer (86)
    • 3.4. Giới thiệu và Liên hệ (86)
    • 3.5. Danh sách sản phẩm (88)
    • 3.6. Đăng nhập và đăng ký (89)
    • 3.7. Giỏ hàng (91)
    • 3.8. Thanh toán (92)
    • 3.9. Chi tiết sản phẩm (92)
    • 3.10. Danh sách sản phẩm yêu thích (94)
    • 3.11. Trang thông tin cá nhân và lịch sử đặt hàng (95)
    • 3.12. Trang chi tiết đơn hàng và đánh giá khi đặt thành công (95)
    • 3.13. Trang dashboard (96)
    • 3.15. Quản lý đơn hàng (98)
    • 3.16. Quản lý sản phẩm (99)
    • 3.17. Quản lý loại sản phẩm (101)
    • 3.18. Thống kê đánh giá và bình luận (103)
    • 3.19. Thống kê danh mục bán chạy (103)
    • 3.20. Thống kê sản phẩm bán chạy (104)
    • 3.21. Thống kê hàng tồn kho (104)
    • 3.22. Thông báo về đơn hàng và thao tác thông tin admin (104)
  • CHƯƠNG 4: CÀI ĐẶT MÔI TRƯỜNG (107)
    • 4.1. Công cụ (107)
    • 4.2. Công nghệ (107)
    • 4.3. Các bước cài đặt phần mềm và môi trường (107)
  • PHẦN 3:KẾT LUẬN (123)
    • 1. KẾT QUẢ ĐẠT ĐƯỢC (123)
      • 1.1 Kiến thức học được (123)
      • 1.2 Chương trình đã đạt được (123)
    • 2. ƯU ĐIỂM (3)
    • 3. NHƯỢC ĐIỂM (124)
    • 4. HƯỚNG PHÁT TRIỂN (124)

Nội dung

 Bắt validated cho các field tại form đăng kí đăng nhập và khi nhập số lượng tại giỏ hàng cho sản phẩm  Hiển thị các sản phẩm bán chạy nhất, sản phẩm mới nhất, sản phẩm thịnh thành  X

NỘI DUNG

1.1.1 Giới thiệu về Spring Framework:

Spring là một framework lập trình ứng dụng Java, chú trọng vào việc giảm độ phức tạp của phát triển ứng dụng và tăng khả năng mở rộng

Xuất hiện để giải quyết những hạn chế của Java EE và thúc đẩy các nguyên tắc như

"Inversion of Control" (IoC) và "Dependency Injection" (DI)

1.1.2 Nguyên tắc IoC và DI

IoC chuyển quyền kiểm soát của việc tạo và quản lý đối tượng từ ứng dụng tới Spring Container

DI là quá trình cung cấp các đối tượng (dependencies) cho một đối tượng khác, giúp giảm sự rối bời trong mã nguồn và tăng tái sử dụng mã

1.1.3 Chức năng chính của Spring Framework

IoC Container quản lý các đối tượng (beans) và giải quyết các phụ thuộc

AOP hỗ trợ lập trình hướng khía cạnh để tách biệt các quản lý phổ quát từ logic ứng dụng cụ thể

Data Access cung cấp mô hình truy cập dữ liệu linh hoạt và hỗ trợ JDBC, ORM, JPA Transaction Management quản lý giao dịch để đảm bảo tính toàn vẹn dữ liệu

1.1.4 Giới thiệu về Spring Boot:

Spring Boot là một dự án con của Spring, hướng đến việc tạo ra các ứng dụng Java Mục tiêu là giảm độ phức tạp cấu hình và tăng tốc độ phát triển.

CƠ SỞ LÝ THUYẾT

SPRING FRAMEWORK

1.1.1 Giới thiệu về Spring Framework:

Spring là một framework lập trình ứng dụng Java, chú trọng vào việc giảm độ phức tạp của phát triển ứng dụng và tăng khả năng mở rộng

Xuất hiện để giải quyết những hạn chế của Java EE và thúc đẩy các nguyên tắc như

"Inversion of Control" (IoC) và "Dependency Injection" (DI)

1.1.2 Nguyên tắc IoC và DI

IoC chuyển quyền kiểm soát của việc tạo và quản lý đối tượng từ ứng dụng tới Spring Container

DI là quá trình cung cấp các đối tượng (dependencies) cho một đối tượng khác, giúp giảm sự rối bời trong mã nguồn và tăng tái sử dụng mã

1.1.3 Chức năng chính của Spring Framework

IoC Container quản lý các đối tượng (beans) và giải quyết các phụ thuộc

AOP hỗ trợ lập trình hướng khía cạnh để tách biệt các quản lý phổ quát từ logic ứng dụng cụ thể

Data Access cung cấp mô hình truy cập dữ liệu linh hoạt và hỗ trợ JDBC, ORM, JPA Transaction Management quản lý giao dịch để đảm bảo tính toàn vẹn dữ liệu

1.1.4 Giới thiệu về Spring Boot:

Spring Boot là một dự án con của Spring, hướng đến việc tạo ra các ứng dụng Java Mục tiêu là giảm độ phức tạp cấu hình và tăng tốc độ phát triển

1.1.5 Tính năng nổi bật của Spring Boot:

Tự động cấu hình: Không cần cấu hình rườm rà, Spring Boot cung cấp giải pháp mặc định giúp giảm công việc cấu hình

Embedded Server: Tích hợp sẵn các máy chủ như Tomcat, Jetty, giúp việc triển khai và chạy ứng dụng trở nên đơn giản

Dependency Management: Quản lý các phiên bản của thư viện tự động thông qua Maven hoặc Gradle

Spring Boot Starter: Cung cấp các bộ khởi đầu để nhanh chóng bắt đầu với các loại ứng dụng cụ thể

1.1.6 Sự kết hợp giữa Spring Framework và Spring Boot:

Spring Boot giúp giảm độ phức tạp cấu hình và tăng tốc độ phát triển trong khi vẫn giữ được sức mạnh của Spring Framework

Tích hợp tốt với các dự án Spring có sẵn, đồng thời mang lại sự linh hoạt và dễ triển khai.

ANGULAR FRAMEWORK

Angular là một framework phát triển web mã nguồn mở được phát triển bởi đội ngũ Angular của Google Dưới đây là một tổng quan về Angular:

Kiến Trúc và Ngôn Ngữ: TypeScript: Angular sử dụng TypeScript, một superset của JavaScript với kiểu dữ liệu tĩnh, để phát triển ứng dụng TypeScript giúp giảm lỗi và tăng tính rõ ràng của mã nguồn

Component-Based Architecture: Angular ứng dụng mô hình kiến trúc dựa trên các thành phần (components) Mỗi thành phần đại diện cho một phần của giao diện người dùng và có thể chứa logic, template, và kiểu dữ liệu

Two-Way Data Binding: Angular cung cấp cơ chế "two-way data binding" giữa view và model, tức là thay đổi trạng thái ở một nơi sẽ tự động cập nhật ở nơi khác và ngược lại

Dependency Injection: Angular sử dụng Dependency Injection để quản lý và cung cấp các đối tượng (services) cho các thành phần một cách hiệu quả

Routing: Angular có một hệ thống định tuyến (routing) mạnh mẽ, cho phép quản lý và điều hướng giữa các trang của ứng dụng một cách dễ dàng

Forms: Angular hỗ trợ các tính năng mạnh mẽ cho việc xử lý và kiểm soát biểu mẫu (forms) trong ứng dụng

HTTP Client: Angular cung cấp một HTTP client để gửi các yêu cầu HTTP và xử lý các phản hồi từ máy chủ

Testing: Angular tích hợp sẵn các công cụ và thư viện cho việc kiểm thử, bao gồm Unit Testing và End-to-End Testing

Môi Trường Phát Triển: Angular có các công cụ môi trường phát triển (CLI - Command Line Interface) giúp tạo và quản lý dự án Angular một cách hiệu quả

Hệ Thống Module: Angular sử dụng khái niệm module để chia ứng dụng thành các phần độc lập, giúp quản lý mã nguồn và tái sử dụng thành phần

Thư Viện và Cộng Đồng: Angular có một cộng đồng lớn và tích hợp với nhiều thư viện và công cụ bên thứ ba, giúp nâng cao hiệu suất và tính năng của ứng dụng.

MYSQL

MySQL là một hệ quản trị cơ sở dữ liệu (DBMS) quan hệ mã nguồn mở phổ biến Dưới đây là một tổng quan về MySQL:

 MySQL là một hệ quản trị cơ sở dữ liệu quan hệ (RDBMS) phát triển và duy trì bởi Oracle Corporation

 MySQL sử dụng ngôn ngữ truy vấn SQL (Structured Query Language) để tương tác với cơ sở dữ liệu Đặc Điểm Chính:

 Mã Nguồn Mở: MySQL là phần mềm mã nguồn mở, điều này có nghĩa là người dùng có thể tải về, sử dụng và tùy chỉnh mã nguồn của nó miễn phí

 Phổ Biến và Ổn Định: MySQL được sử dụng rộng rãi trên toàn cầu và thường được chọn lựa cho các dự án web và ứng dụng do tính ổn định và hiệu suất tốt

 Hỗ Trợ Đa Nền Tảng: MySQL có sẵn trên nhiều hệ điều hành như Windows, Linux, MacOS, và nhiều nền tảng khác nhau

Ngôn Ngữ Truy Vấn SQL:

 SQL là ngôn ngữ được sử dụng để truy vấn, cập nhật và quản lý cơ sở dữ liệu

 MySQL sử dụng SQL để tương tác với dữ liệu, bao gồm các câu lệnh SELECT, INSERT, UPDATE, DELETE

Quản Lý Người Dùng và Phân Quyền:

 MySQL hỗ trợ quản lý người dùng và phân quyền mạnh mẽ

 Người quản trị có thể xác định quyền truy cập cụ thể của mỗi người dùng đối với các bảng và dữ liệu

Tính Năng ACID: MySQL duy trì tính chất ACID (Atomicity, Consistency, Isolation, Durability), đảm bảo tính toàn vẹn và đồng nhất của dữ liệu trong quá trình xử lý giao dịch

Hiệu Suất và Tối Ưu Hóa: MySQL cung cấp các công cụ tối ưu hóa truy vấn và quản lý hiệu suất để đảm bảo hệ thống hoạt động mượt mà

Hỗ Trợ Lập Trình: MySQL có các API hỗ trợ nhiều ngôn ngữ lập trình như Java, Python, PHP, C++, và nhiều ngôn ngữ khác

Community và Hỗ Trợ: MySQL có một cộng đồng lớn và chủ động, cung cấp tài liệu, diễn đàn, và hỗ trợ từ cộng đồng sử dụng

MySQL là một giải pháp cơ sở dữ liệu mạnh mẽ và linh hoạt, phù hợp cho nhiều loại ứng dụng từ nhỏ đến lớn Việc hiểu rõ về cách sử dụng MySQL trong các dự án Java, đặc

API

API, viết tắt của "Application Programming Interface," là một tập hợp các quy tắc và công cụ cho phép các phần mềm khác tương tác với một ứng dụng, dịch vụ hoặc hệ thống API giúp kết nối và tương tác giữa các thành phần khác nhau của phần mềm, đồng thời cung cấp một cách chuẩn để truy cập và sử dụng các chức năng cụ thể Dưới đây là một số khái niệm chính liên quan đến API:

 Là điểm kết nối đến một dịch vụ hoặc ứng dụng thông qua API

 Mỗi endpoint thường liên quan đến một chức năng cụ thể, như đăng nhập, lấy dữ liệu, hoặc thực hiện một hành động nào đó

HTTP Methods (Phương thức HTTP):

 API sử dụng các phương thức HTTP như GET, POST, PUT, DELETE để thực hiện các thao tác khác nhau

 Ví dụ, phương thức GET được sử dụng để lấy dữ liệu từ một nguồn, trong khi phương thức POST được sử dụng để gửi dữ liệu mới lên server

 Request là thông điệp mà một ứng dụng gửi đến API để yêu cầu một hoặc nhiều hành động

 Response là phản hồi từ API sau khi nó đã xử lý request, thường chứa dữ liệu được yêu cầu hoặc thông báo về trạng thái của thao tác

 Là một kiến trúc thiết kế phần mềm cho các hệ thống phân tán

 Sử dụng các nguyên tắc như trạng thái biểu diễn, tương tác không trạng thái, và tài nguyên có thể được quản lý và truy cập thông qua các URL

 Authorization quyết định quyền truy cập của người dùng đó đối với các tài

Documentation: Cung cấp hướng dẫn sử dụng API, bao gồm các endpoint, phương thức, tham số, và các thông tin khác để giúp người phát triển sử dụng API một cách hiệu quả

SDK (Software Development Kit) và API Keys:

 SDK là một bộ công cụ giúp người phát triển tích hợp dễ dàng với một API

 API Keys thường được sử dụng để xác định và quản lý quyền truy cập của người dùng đến API

API chủ yếu đóng vai trò quan trọng trong việc kết nối và tương tác giữa các ứng dụng và dịch vụ khác nhau trên Internet.

MÔ HÌNH HÓA YÊU CẦU VÀ THIẾT KẾ CƠ SỞ DỮ LIỆU

Mô hình hệ thống

- Mô hình phát triển dự án hướng đến đó là mô hình thác nước

- Lý do chọn mô hình:

+ Các chức năng được xây dựng nhanh chóng và rõ ràng, dễ quản lý theo các sprint + Dễ dàng bổ sung, thay đổi yêu cầu.

Yêu cầu hệ thống

Hình 2.1:Use case phía shop của hệ thống

Hình 2.2:Use case phía Manage của hệ thống

2.2.2 Mô tả Usecase: a Danh sách Usecase

Bảng 2 1: Bảng danh sách use case hệ thống

1 UC1 Đăng nhập Cho phép người dùng đăng nhập vào

Website để thực hiện một số chức năng

2 UC2 Thao tác cá nhân Các thao tác của người dùng dùng để tương tác với các thông tin cá nhân

3 UC2.1 Đăng xuất Cho phép người dùng đã đăng nhập đăng xuất ra khỏi hệ thống Website

4 UC2.2 Đổi mật khẩu Cho phép người dùng đã đăng nhập có thể đổi mật khẩu cá nhân của mình

5 UC2.3 Xem thông tin cá nhân

Cho phép người dùng đã đăng nhập xem thông tin cá nhân của mình

6 UC2.4 Cập nhật thông tin cá nhân

Cho phép người dùng đã đăng nhập chỉnh sửa thông tin cá nhân của mình

7 UC2.5.1 Xem danh sách đơn hàng đã đặt

Cho phép người dùng đã đăng nhập xem đơn hàng đã đặt của mình

UC2.5.2 Hủy đơn hàng Cho phép người dùng đã đăng nhập hủy đơn hàng đang trong quá trình xác nhận

9 UC2.5.3 Đánh giá và bình luận

Cho phép người dùng đã đăng nhập có thể đánh giá và bình luận các sản phẩm trong đơn hàng đã được chuyển giao và thanh toán thành công

10 UC2.5.4 Xem chi tiết đơn hàng

Cho phép người dùng đã đăng nhập có thể xem chi tiết các sản phẩm trong đơn hàng mình đã đặt

Chứa các chức năng cho phép người dùng tương tác với website

12 UC3.1 Thêm sản phẩm vào yêu thích

Cho phép người dùng có thể thêm các sản phẩm vào danh sách yêu thích cá nhân

13 UC3.2 Xem chi tiết sản phẩm

Cho phép người dùng có thể xem thông tin chi tiết của sản phẩm

14 UC3.3 Xem danh sách sản phẩm

Cho phép người dùng xem các sản phẩm có trên trang chủ website

15 UC3.3.1 Liệt kê sản phẩm theo loại

Cho phép người dùng xem danh sách sản phẩm theo loại sản phẩm

16 UC3.3.2 Liệt kê sản phẩm theo đánh giá

Cho phép người dùng xem danh sách sản phẩm theo đánh giá người dùng

17 UC3.3.3 Liệt kê sản phẩm theo ký tự

Cho phép người dùng xem danh sách sản phẩm theo ký tự từ a - Z

18 UC3.4 Giỏ hàng Cung cấp người dùng 1 giỏ hàng cá nhân

19 UC3.4.1 Thêm sản phẩm vào giỏ hàng

Cho phép người dùng thêm các sản phẩm được chọn vào giỏ hàng

20 UC3.4.2 Cập nhật số lượng sản phẩm

Cho phép người dùng sửa đổi số lượng sản phẩm trong giỏ hàng

21 UC3.4.3 Xóa sản phẩm khỏi giỏ hàng

Cho phép người dùng loại bỏ sản phẩm đã chọn ra khỏi giỏ hàng

22 UC3.4.4 Đặt hàng Cho phép người dùng đặt hàng từ xa

23 UC3.4.4.1 Xác nhận đơn hàng

Cho phép người dùng xác nhận muốn đặt hàng

24 UC3.4.4.2 Xem chi tiết đơn hàng vừa đặt

Cho phép người dùng xem lại thông tin đơn hàng vừa xác nhận đặt hàng

25 UC4 Thao tác quản lý Chứa các chức năng giúp người quản lý tốt trang website bán hàng

Cho phép xem danh sách sản phẩm, thể loại sản phẩm, khách hàng, đơn hàng, đánh giá

27 UC4.2 Tìm kiếm Cho phép tìm kiếm sản phẩm, thể loại sản phẩm, khách hàng, đơn hàng,

28 UC4.3 Thêm mới Cho phép thêm mới sản phẩm, thể loại sản phẩm

29 UC4.4 Cập nhật Cho cập nhật thông tin sản phẩm, thể loại sản phẩm

30 UC4.5 Xem thông tin Cho phép xem thông tin chi tiết các sản phẩm, thể loại sản phẩm

31 UC4.6 Xóa Cho phép xóa sản phẩm, thể loại sản phẩm

32 UC5 Thống kê Chứa các chức năng giúp quản lý dễ nhận biết trạng thái kinh doanh của website

33 UC5.1 Thống kê doanh thu

Chức năng cho phép xem doanh thu của website

34 UC5.2 Thống kê kho hàng

Cho phép xem tình trạng các sản phẩm có trong website

35 UC5.3 Thống kê khách hàng Cho phép xem khách hàng của website

36 UC5.4 Thống kê đánh giá

Cho phép xem các đánh giá, phản hồi của khách hàng với cửa hàng

37 UC5.5 Thống kê đơn hàng Cho phép xem các đơn hàng đã được đặt

38 UC5.5.1 Xác nhận đơn hàng

Cho phép quản lý thao tác với các đơn hàng ở trạng thái chờ xử lý b Mô tả Usecase b.1 UC1 Đăng nhập

Bảng 2 2: Bảng mô tả use case đăng nhập

Tên Đăng nhập Code UC1

Mô tả Cho phép người dùng đăng nhập vào hệ thống

Khách viến thăm/ Chủ cửa hàng Trigger Người dùng nhấn nút đăng nhập

Pre-condition Người dùng chưa đăng nhập vào hệ thống

Post condition Chuyển tới trang mặc định với chức vụ tương ứng b.2 UC2.1 Đăng xuất

Bảng 2 3: Bảng mô tả use case đăng xuất

Tên Đăng xuất Code UC2.1

Mô tả Cho phép người dùng đăng xuát ra khỏi hệ thống

Actor Khách hàng/ Chủ cửa hàng Trigger Người dùng nhấn nút đăng xuất

Pre-condition Người dùng đã đăng nhập vào hệ thống

Post condition Chuyển tới trang chủ b.3 UC02.2 Đổi mật khẩu

Bảng 2 4:: Bảng mô tả use case đổi mật khẩu

Tên Đổi mật khẩu Code UC2.2

Mô tả Cho phép người dùng thay đổi mất khẩu cá nhân

Actor Khách hàng/ chủ cửa hàng Trigger Người dùng chọn nút đổi mật khẩu

Pre-condition Người dùng đã đăng nhập vào hệ thống

Hiền thị form đổi mật khẩu Thông báo nếu đổi mật khẩu thành công b.4 UC2.3 Xem thông tin cá nhân

Bảng 2 5: Bảng mô tả use case xem thông tin cá nhân

Tên Xem thông tin cá nhân Code UC2.3

Mô tả Cho phép người dùng xem thông tin cá nhân

Actor Khách hàng/ chủ cửa hàng Trigger Người dùng nhấn vào thẻ thông tin cá nhân

Pre-condition Người dùng đã đăng nhập vào hệ thống

Post condition Hiển thị form thông tin cá nhân b.5 UC2.4 Cập nhật thông tin cá nhân

Bảng 2 6: Bảng mô tả use case cập nhật thông tin cá nhân

Tên Cập nhật thông tin cá nhân Code UC2.4

Mô tả Cho phép người dùng thay đổi thông tin cá nhân

Khách hàng/ Chủ cửa hàng Trigger Người dùng nhấn vào nút cập nhật thông tin cá nhân

Pre-condition Người dùng đã đăng nhập vào hệ thống

Post condition Thay đổi và lưu các thông tin vừa cập nhật rồi thông báo thay đổi thông tin cá nhân thành công b.6 UC2.5.1 Xem danh sách đơn hàng đã đặt

Bảng 2 7: Bảng mô tả use case đơn hàng đã đặt

Tên Xem danh sách đơn hàng đã đặt Code UC2.5

Mô tả Cho phép người dùng xem danh sách đơn hàng đã đặt của mình

Trigger Người dùng nhấn vào thẻ đơn hàng đã đặt

Pre-condition Người dùng đã đăng nhập vào hệ thống và đã đặt hàng

Post condition Di chuyển đến trang đơn hàng đã đặt và hiển thị danh sách đơn hàng đã đặt b.7 UC2.5.2 Hủy đơn hàng

Bảng 2 8: Bảng mô tả use case hủy đơn hàng

Tên Hủy đơn hàng Code UC2.5.2

Cho phép người dùng hủy đơn hàng đã đặt của mình trước khi cửa hàng xác nhận đơn hàng

Trigger Người dùng nhấn chọn đơn hàng và nhấn vào nút hủy đơn

Pre-condition Người dùng đã đăng nhập vào hệ thống và có đơn hàng đang chờ xử lý

Post condition Hủy đơn hàng ở trạng thái chờ xử lý và chuyển đổi trạng thái đơn hàng thành hủy b.8 UC2.5.3 Đánh giá và bình luận

Bảng 2 9: Bảng mô tả use case đánh giá và bình luận

Tên Đánh giá và bình luận Code UC2.5.3

Mô tả Cho phép người dùng đánh giá sản phẩm trong các đơn hàng đã đặt của mình ở trạng thái đã thanh toán/ đã giao hàng

Trigger Người dùng nhấn nút đánh giá sản phẩm trong đơn hàng

Pre-condition Người dùng đã đăng nhập vào hệ thống và chọn đơn hàng đã thành toán/ đã giao hàng

Post condition Hiển thị form đánh giá và bình luận về sản phẩm b.9 UC2.5.4 Xem chi tiết đơn hàng

Bảng 2 10: Bảng mô tả use case xem chi tiết đơn hàng

Tên Xem chi tiết đơn hàng Code UC2.5.4

Cho phép người dùng xem chi tiết các sản phẩm có trong đơn hàng đã đặt

Trigger Người dùng nhấp chọn vào nút xem chi tiết hóa đơn

Pre-condition Người dùng đã đăng nhập vào hệ thống và đã đặt hàng

Post condition Hiển thị form chứa các thông tin về đơn hàng đã chọn b.10 UC3.1 Thêm sản phẩm vào yêu thích

Bảng 2 11: Bảng mô tả use case yêu thích

Thêm sản phẩm vào yêu thích Code

Cho phép người dùng đã đăng nhập thêm các sản phẩm vào danh sách sản phẩm yêu thích của mình

Trigger Người dùng nhấp chọn nút yêu thích trên sản phẩm

Pre-condition Người dùng đã đăng nhập vào hệ thống

Post condition Thông báo sản phẩm đã được thêm vào danh sách yêu thích b.11 UC3.2 Xem chi tiết sản phẩm

Bảng 2 12: Bảng mô tả use case xem chi tiết sản phẩm

Tên Xem chi tiết sản phẩm Code UC3.2

Mô tả Cho phép người dùng xem chi tiết thông tin của sản phẩm

Actor Khách hàng/ khách viến thăm Trigger Người dùng nhấp chọn vào sản phẩm

Post condition Di chuyển đến trang thông tin của sản phẩm b.12 UC3.3 Xem danh sách sản phẩm

Bảng 2 13: Bảng mô tả use case danh sách sản phẩm

Tên Xem danh sách sản phẩm Code UC3.3

Mô tả Cho phép người dùng xem danh sách tất cả sản phẩm của website

Khách hàng/ khách viến thăm Trigger Người dùng truy cập vào trang chủ website

Post condition Hiển thị tất cả các sản phẩm của website lên trang chủ b.13 UC3.3.1 Liệt kê sản phẩm theo loại

Bảng 2 14: Bảng mô tả use case liệt kê sản phẩm theo loại

Liệt kê sản phẩm theo loại Code

Mô tả Cho phép người dùng xem danh sách tất cả sản phẩm theo thể loại đã chọn

Actor Khách hàng/ khách viến thăm Trigger Người dùng chọn sắp xếp theo loại sản phẩm

Post condition Hiển thị tất cả các sản phẩm thuộc thể loại vừa đã chọn b.14 UCUC3.3.2 Liệt kê sản phẩm theo đánh giá

Bảng 2 15: Bảng mô tả use case liệt kê sản phẩm theo đánh giá

Tên Liệt kê sản phẩm theo đánh giá Code UC3.3.2

Mô tả Cho phép người dùng xem danh sách tất cả sản phẩm sắp xếp theo đánh giá

Actor Khách hàng/ khách viến thăm Trigger Người dùng chọn sắp xếp theo đánh giá

Post condition Hiển thị tất cả các sản phẩm được sắp xếp theo đánh giá b.15 UC3.3.3 Liệt kê sản phẩm theo ký tự

Bảng 2 16: Bảng mô tả use case liệt kê sản phảm theo ký tự

Liệt kê sản phẩm theo ký tự Code

Mô tả Cho phép người dùng xem danh sách tất cả sản phẩm sắp xếp theo ký tự

Actor Khách hàng/ khách viến thăm Trigger Người dùng chọn sắp xếp theo ký tự

Post condition Hiển thị tất cả các sản phẩm được sắp xếp theo ký tự b.16 UC3.4 Giỏ hàng

Bảng 2 17: Bảng mô tả use case giỏ hàng

Tên Giỏ hàng Code UC3.4

Mô tả Cung cấp cho người dùng một giỏ hàng online

Khách hàng/ khách viến thăm Trigger Người dùng truy cập vào website

Post condition Hiển thị thông tin giỏ hàng trên thanh menu b.16 UC3.4.1 Thêm sản phẩm vào giỏ hàng

Bảng 2 18: Bảng mô tả use case thêm sản phẩm vào giỏ hàng

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

Mô tả Cho phép người dùng thêm sản phẩm vào giỏ hàng

Actor Khách hàng/ khách viến thăm Trigger Người dùng nhấn vào nút giỏ hàng trên sản phẩm

Post condition Thông báo sản phẩm đã được thêm vào giỏ hàng b.18 UC3.4.2 Cập nhật số lượng sản phẩm

Bảng 2 19: Bảng mô tả use case cập nhật số lượng sản phẩm

Tên Cập nhật số lượng sản phẩm Code UC3.4.2

Mô tả Cho phép người dùng sửa số lượng sản phẩm trong giỏ hàng

Khách hàng/ khách viến thăm Trigger Người dùng chọn thay đổi số lượng của sản phẩm trong giỏ

Pre-condition Đã thêm ít nhất một sản phẩm vào giỏ hàng

Post condition Cập nhật lại số lượng của sản phẩm trong giỏ hàng b.19 UC3.4.3 Xóa sản phẩm ra khỏi giỏ hàng

Bảng 2 20: Bảng mô tả use case xóa sản phẩm khỏi giỏ hàng

Xóa sản phẩm ra khỏi giỏ hàng Code

Mô tả Cho phép người dùng loại bỏ sản phẩm ra khỏi giỏ hàng

Actor Khách hàng/ khách viến thăm Trigger Người dùng nhấn vào nút xóa khỏi giỏ hàng

Pre-condition Đã thêm ít nhất một sản phẩm vào giỏ hàng

Post condition Loại bỏ sản phẩm ra khỏi giỏ hàng và cập nhật lại giỏ hàng hiện tại b.20 UC3.4.4 Đặt hàng

Bảng 2 21: Bảng mô tả use case đặt hàng

Tên Đặt hàng Code UC3.4.4

Mô tả Cho phép người dùng đặt hàng online

Trigger Người dùng nhấn vào nút đặt hàng

Pre-condition Người dùng đã đăng nhập và có sản phẩm trong giỏ hàng

Post condition Hiển thị form xác nhận đặt hàng b.21 UC3.4.4.1 Xác nhận đơn hàng

Bảng 2 22: Bảng mô tả use case xác nhận đơn hàng

Tên Xác nhận đơn hàng Code UC3.4.4.1

Mô tả Cho phép người dùng xác nhận mình muốn đặt hàng online

Người dùng nhấn vào nút đặt hàng trong thông báo xác nhận đặt hàng

Pre-condition Người dùng đã nhấn nút đặt hàng trong giỏ hàng

Post condition Thông báo đặt hàng thành công và di chuyển đến form thông tin chi tiết đơn hàng đã đặt b.22 UC3.4.4.2 Xem chi tiết đơn hàng vừa đặt

Bảng 2 23: Bảng mô tả use case xem chi tiết đơn hàng

Xem chi tiết đơn hàng vừa đặt Code

Mô tả Cho phép người dùng xem thông tin chi tiết đơn hàng vừa đặt

Trigger Người dùng đã xác nhận đặt hàng

Pre-condition Người dùng đã nhấn nút đặt hàng trong xác nhận đơn hàng

Post condition Hiển thị thông tin tất cả các sản phẩm mà người dùng đã đặt trong đơn hàng cũng như thông tin đơn hàng đã đặt b.23 UC4.1 Xem danh sách

Bảng 2 24: Bảng mô tả use case xem danh sách

Tên Xem danh sách Code UC4.1

Mô tả Cho phép người dùng xem danh sách sản phẩm, loại sản phẩm, khách hàng, đơn hàng, đánh giá và bình luận

Trigger Người dùng chọn loại danh sách mà mình muốn xem

Pre-condition Người dùng đã đăng nhập với vai trò là quản lý/ chủ cửa hàng

Post condition Hiển thị thông tin tất cả các sản phẩm mà người dùng đã đặt trong đơn hàng cũng như thông tin đơn hàng đã đặt b.24 UC4.2 Tìm kiếm

Tên Tìm kiếm Code UC4.2

Mô tả Cho phép người dùng tìm kiếm các sản phẩm, loại sản phẩm, khách hàng, đơn hàng

Actor Chủ cửa hàng Trigger Nhập tên muốn tìm kiếm

Pre-condition Người dùng đã đăng nhập với vai trò là quản lý/ chủ cửa hàng

Post condition Hiển thị danh sách thể loại có chứa tên thứ mình muốn tìm b.25 UC4.3 Thêm mới

Bảng 2 25: Bảng mô tả use case thêm mới

Tên Thêm mới Code UC4.3

Mô tả Dùng thêm mới một sản phẩm hoặc thể loại sản phẩm

Trigger Nhấn vào nút thêm mới trong form thêm mới

Pre-condition Người dùng đã đăng nhập với vai trò là quản lý/ chủ cửa hàng

Kiểm tra nội dung thông tin mình vừa thêm Nếu đúng thông báo “thêm mới thành công”

Nếu sai thông báo “thêm mới thất bại” b.26 UC4.4 Cập nhật

Bảng 2 26: Bảng mô tả use case cập nhật

Tên Cập nhật Code UC4.4

Mô tả Cho phép người dùng chỉnh sửa thông tin của sản phẩm hoặc thể loại sản phẩm

Trigger Nhấn vào nút cập nhật trong form chỉnh sửa

Pre-condition Người dùng đã đăng nhập với vai trò là quản lý/ chủ cửa hàng

Kiểm tra nội dung thông tin mình vừa chỉnh sửa Nếu đúng thông báo “cập nhật thành công”

Nếu sai thông báo “cập nhật thất bại” b.27 UC4.5 Xem thông tin

Bảng 2 27: Bảng mô tả use case xem thông tin

Tên Xem thông tin Code UC4.5

Mô tả Cho phép người dùng xem thông tin chi tiết của sản phẩm, thể loại sản phẩm, khách hàng, các đơn hàng, đánh giá và bình luận

Actor Chủ cửa hàng Trigger Nhấn vào thẻ muốn xem

Pre-condition Người dùng đã đăng nhập với vai trò là quản lý/ chủ cửa hàng

Post condition Hiển thị form thông tin chi tiết của thẻ mình nhấn vào b.28 UC4.6 Xóa

Bảng 2 28: Bảng mô tả use case xóa

Mô tả Cho phép người dùng vô hiệu hóa sản phẩm, thể loại sản phẩm, khách hàng, các đơn hàng, đánh giá và bình luận

Chọn một thẻ và nhấn vào nút vô hiệu hóa/ xóa

Pre-condition Người dùng đã đăng nhập với vai trò là quản lý/ chủ cửa hàng

Post condition Thông báo xác nhận muốn vô hiệu hóa, nếu có vô hiệu hóa sản phẩm b.29 UC5 Thống kê

Bảng 2 29: Bảng mô tả use case thống kê

Tên Thống kê Code UC5

Mô tả Cho phép người dùng xem các báo cáo của cửa hàng giúp quản lý việc mua bán một cách thuận lợi và cách cải thiện

Actor Chủ cửa hàng Trigger Chọn mục thống kê

Pre-condition Người dùng đã đăng nhập với vai trò là quản lý/ chủ cửa hàng

Post condition Hiển thị trang mặc định thống kê với số liệu là ngày hiện tại b.30 UC5.1 Thống kê doanh thu

Bảng 2 30: Bảng mô tả use case thống kê doanh thu

Tên Thống kê doanh thu Code UC5.1

Mô tả Cho phép người dùng xem các báo cáo doanh thu của cửa hàng

Actor Chủ cửa hàng Trigger Chọn mục thống kê doanh thu

Pre-condition Người dùng đã đăng nhập với vai trò là quản lý/ chủ cửa hàng

Post condition Hiển thị trang thống kê doanh thu với số liệu là ngày hiện tại b.31 UC5.2 Xem thống kê kho hàng

Bảng 2 31: Bảng mô tả use case thống kê kho hàng

Tên Thống kê kho hàng Code UC5.2

Mô tả Cho phép người dùng xem báo cáo kho hàng của cửa hàng

Actor Chủ cửa hàng Trigger Chọn mục thống kê kho hàng

Pre-condition Người dùng đã đăng nhập với vai trò là quản lý/ chủ cửa hàng

Post condition Hiển thị trang thống kê kho hàng ở thời điểm hiện tại b.32 UC5.3 Thống kê khách hàng

Bảng 2 32: Bảng mô tả use case thống kê khách hàng

Tên Thống kê khách hàng Code UC5.3

Mô tả Cho phép người dùng xem danh sách khách hàng của cửa hàng

Actor Chủ cửa hàng Trigger Chọn mục danh sách khách hàng

Pre-condition Người dùng đã đăng nhập với vai trò là quản lý/ chủ cửa hàng

Post condition Hiển thị trang danh sách khách hàng của cừa hàng b.33 UC5.4 Thống kê đánh giá

Bảng 2 33: Bảng mô tả use case thống kê đánh giá

Tên Thống kê đánh giá Code UC5.4

Mô tả Cho phép người dùng xem đánh giá phản hồi của khách hàng

Actor Chủ cửa hàng Trigger Chọn mục thống kê đánh giá

Pre-condition Người dùng đã đăng nhập với vai trò là quản lý/ chủ cửa hàng

Post condition Hiển thị danh sách các sản phẩm đã được khách hàng đánh giá b.34 UC5.5 Thống kê đơn hàng

Bảng 2 34: Bảng mô tả use case thống kê đơn hàng

Tên Thống kê đơn hàng Code UC5.5

Mô tả Cho phép người dùng xem các đơn hàng của cửa hàng

Actor Chủ cửa hàng Trigger Chọn mục thống kê đơn hàng

Pre-condition Người dùng đã đăng nhập với vai trò là quản lý/ chủ cửa hàng

Post condition Hiển thị danh sách các đơn hàng của cửa hàng b.35 UC5.5.1 Quản lý đơn hàng

Bảng 2 35: Bảng mô tả use case quản lý đơn hàng

Tên Quản lý đơn hàng Code UC5.5.1

Mô tả Cho phép người dùng tương tác với các đơn hàng của khách hàng

Trigger Chọn vào các nút xử lý của đơn hàng

Pre-condition Người dùng đã đăng nhập với vai trò là quản lý/ chủ cửa hàng

Post condition Hiển thị thông báo xác nhận của cửa hàng theo nội dung xử lý và gửi mail thông báo đến khách hàng

ERD ClassDiagram

1 User_id bigint AI PK Mã user

3 Email varchar(255) Email người dùng

5 Image varchar(255) Ảnh đại diện

6 Name varchar(255) Họ và tên người dùng

8 Phone varchar(255) Số điện thoại

9 Register_date date Ngày đăng ký

1 Product_id bigint AI PK Mã sản phẩm

4 Entered_date date Ngày thêm

5 Image varchar(255) Ảnh sản phẩm

6 Name varchar(255) Tên sản phẩm

10 Category_id Bigint Mã thể loại của sản phẩm

1 Cart_id bigint AI PK Mã giỏ hàng

3 User_id bigint Mã người sở hữu

4 Address varchar(255) Địa chỉ người sở hữu

5 Phone varchar(255) Số điện thoại người sở hữu d Cart Detail:

1 Cart_detail_id bigint AI

Mã giỏ hàng chi tiết

2 Quantity int Số lượng sản phẩm

3 Product_id bigint Mã sản phẩm được thêm vào giỏ

4 Cart_id bigint Mã giỏ hàng người sở hữu

5 Price double Giá sản phẩm e Category:

1 Category_id bigint AI PK Mã thể loại sản phẩm

2 Category_name varchar(255) Tên thể loại sản phẩm f Yêu thích:

2 Product_id bigint Mã sản phẩm yêu thích

3 User_id bigint Mã người dùng yêu thích sản phẩm g Order:

1 Orders_id bigint AI PK Mã đơn hàng

2 Address varchar(255) Địa chỉ người đặt hàng

3 Amount double Tổng tiền của đơn hàng

4 Order_date date Ngày đặt hàng

5 Phone varchar(255) Số điện thoại người đặt hàng

7 User_id bigint Mã người đặt hàng h Order Detail:

1 Order_detail_id bigint AI

Mã đơn hàng chi tiết

2 Price double Giá sản phẩm lúc bán

3 Quantity int Số lượng sản phẩm được đặt

4 Order_id bigint Mã đơn hàng được đặt

5 Product_id bigint Mã sản phẩm được đặt i App_roles:

1 Id int AI PK Mã chức vụ

2 Name varchar(20) Tên chức vụ i User_roles:

1 user_id bigint PK Mã người dùng

2 role_id int PK Mã chức vụ của người dùng

Sequence diagram

Hình 2 4: Sequence diagram đăng ký

Hình 2 5: Sequence diagram đăng nhập

2.4 3 Sequence diagram thêm sản phẩm vào giỏ hàng

2.4 4 Sequence diagram thêm sản phẩm vào danh sách yêu thích

Hình 2 7: Sequence diagram thêm sản phẩm vào danh sách yêu thích

2.4 5 Sequence diagram tìm kiếm sản phẩm

Hình 2 8: Sequence diagram tìm kiếm sản phẩm

2.4 6 Sequence diagram xóa sản phẩm khỏi giỏ hàng

2.4 7 Sequence diagram xóa sản phẩm khỏi danh sách yêu thích

Hình 2 10: Sequence diagram xóa sản phẩm khỏi danh sách yêu thích

2.4 8 Sequence diagram hiển thị tất cả sản phẩm

Hình 2 11: Sequence diagram hiển thị tất cả sản phẩm

2.4 9 Sequence diagram hiển thị danh mục sản phẩm

2.4 10 Sequence diagram hiển thị sản phẩm theo danh mục

Hình 2 13: Sequence diagram hiển thị sản phẩm theo danh mục

2.4 11 Sequence diagram hiển thị sản phẩm thịnh hành

Hình 2 14: Sequence diagram hiển thị sản phẩm thịnh hành

2.4 12 Sequence diagram hiển thị sản phẩm bán chạy nhất

Hình 2 15: Sequence diagram hiển thị sản phẩm bán chạy nhất

2.4 13 Sequence diagram hiển thị sản phẩm mới nhất

Hình 2 16: Sequence diagram hiển thị sản phẩm mới nhất

2.4 14 Sequence diagram hiển thị sản phẩm liên quan

2.4 15 Sequence diagram hiển thị chi tiết sản phẩm

Hình 2 18: Sequence diagram hiển thị chi tiết sản phẩm

2.4 16 Sequence diagram hiển thị đánh giá sản phẩm

Hình 2 19: Sequence diagram hiển thị đánh giá sản phẩm

Hình 2 20: Sequence diagram đặt hàng

2.4 18 Sequence diagram hiển thị tất cả đơn hàng

Hình 2 21: Sequence diagram hiển thị tất cả đơn hàng

2.4 19 Sequence diagram chi tiết đơn hàng

Hình 2 22: Sequence diagram chi tiết đơn hàng

2.4 20 Sequence diagram đánh giá đơn hàng

Hình 2 23: Sequence diagram đánh giá đơn hàng

2.4 21 Sequence diagram hủy đơn hàng

Hình 2 24: Sequence diagram hủy đơn hàng

2.4 22 Sequence diagram thống kê theo tháng

Hình 2 25: Sequence diagram thống kê theo tháng

2.4 23 Sequence diagram thống kê theo năm

Hình 2 26: Sequence diagram thống kê theo năm

2.4 24 Sequence diagram thống kê doanh thu theo tháng

Hình 2 27: Sequence diagram thống kê doanh thu theo tháng

2.4 25 Sequence diagram thống kê doanh thu theo năm

Hình 2 28: Sequence diagram thống kê doanh thu theo năm

2.4 26 Sequence diagram hiển thị thông báo

Hình 2 29: Sequence diagram hiển thị thông báo

2.4 27 Sequence diagram thống kê tồn kho

Hình 2 30: Sequence diagram thống kê tồn kho

2.4 28 Sequence diagram thống kê sản phẩm bán chạy theo danh mục

Hình 2 31: Sequence diagram thống kê sản phẩm bán chạy theo danh mục

2.4 29 Sequence diagram thống kê sản phẩm bán chạy nhất

Hình 2 32: Sequence diagram thống kê sản phẩm bán chạy nhất

2.4 30 Sequence diagram hiển thị danh sách khách hàng

Hình 2 33: Sequence diagram hiển thị danh sách khách hàng

2.4 31 Sequence diagram thêm tài khoản

Hình 2 34: Sequence diagram thêm tài khoản

2.4 32 Sequence diagram chỉnh sửa thông tin tài khoản

Hình 2 35: Sequence diagram chỉnh sửa thông tin tài khoản

2.4 33 Sequence diagram xóa tài khoản

Hình 2 36: Sequence diagram xóa tài khoản

2.4 34 Sequence diagram hiển thị danh sách sản phẩm

Hình 2 37: Sequence diagram hiển thị danh sách sản phẩm

2.4 35 Sequence diagram thêm sản phẩm

Hình 2 38: Sequence diagram thêm sản phẩm

2.4 36 Sequence diagram chỉnh sửa thông tin sản phẩm

Hình 2 39: Sequence diagram chỉnh sửa thông tin sản phẩm

2.4 37 Sequence diagram xóa sản phẩm

Hình 2 40: Sequence diagram xóa sản phẩm

2.4 38 Sequence diagram hiển thị danh sách danh mục sản phẩm

Hình 2 41: Sequence diagram hiển thị danh sách danh mục sản phẩm

2.4 39 Sequence diagram thêm danh mục sản phẩm

Hình 2 42: Sequence diagram thêm danh mục sản phẩm

2.4 40 Sequence diagram chỉnh sửa danh mục sản phẩm

Hình 2 43: Sequence diagram chỉnh sửa danh mục sản phẩm

2.4 41 Sequence diagram xóa danh mục sản phẩm

Hình 2 44: Sequence diagram xóa danh mục sản phẩm

2.4 42 Sequence diagram hiển thị danh sách đơn hàng

Hình 2 45: Sequence diagram hiển thị danh sách đơn hàng

2.4 43 Sequence diagram xác nhận vận chuyển đơn hàng

Hình 2 46: Sequence diagram xác nhận vận chuyển đơn hàng

2.4 44 Sequence diagram xác nhận đã hoàn thành đơn

Hình 2 47: Sequence diagram xác nhận đã hoàn thành đơn

2.4 45 Sequence diagram hiển thị danh sách đánh giá

Hình 2 48: Sequence diagram hiển thị danh sách đánh giá

THIẾT KẾ GIAO DIỆN

Header and Menu

Hình 3 1:Thiết kế giao diện menu and header

Trang chủ

Hình 3 2: Thiết kế giao diện trang chủ

Footer

Hình 3 3:Thiết kế giao diện footer

Giới thiệu và Liên hệ

Hình 3 4:Thiết kế giao diện giới thiệu và lên hệ

Danh sách sản phẩm

Hình 3 5:Thiết kế giao diện danh sách sản phẩm

Đăng nhập và đăng ký

Hình 3 6:Thiết kế giao diện đăng nhập

Hình 3 7:Thiết kế giao diện đăng ký

Giỏ hàng

Hình 3 8:Thiết kế giao diện giỏ hàng

Thanh toán

Hình 3 9:Thiết kế giao diện thanh toán

Chi tiết sản phẩm

Hình 3 10:Thiết kế giao diện chi tiết sản phẩm

- Đánh giá và sản phẩm liên quan:

Hình 3 11:Thiết kế giao diện đánh giá và sản phẩm liên quan

Trang thông tin cá nhân và lịch sử đặt hàng

Hình 3 13:Thiết kế giao diện thông tin cá nhân và lịch sử đơn hàng

Trang chi tiết đơn hàng và đánh giá khi đặt thành công

Hình 3 14:Thiết kế giao diện chi tiết đơn hàng và đánh giá

Trang dashboard

Hình 3 15:Thiết kế giao diện Dashboard

Hình 3 16:Thiết kế giao diện quản lý khách hàng

- Chỉnh sửa thông tin khách hàng cụ thể:

Quản lý đơn hàng

Hình 3 17:Thiết kế giao diện quản lý đơn hàng

- Các tác vụ xử lí với đơn hàng

Quản lý sản phẩm

Hình 3 18:Thiết kế giao diện quản lý sản phẩm

- Chỉnh sửa sản phẩm cụ thể:

Quản lý loại sản phẩm

Hình 3 19:Thiết kế giao diện quản lý loại sản phẩm

- Chỉnh sửa loại sản phẩm:

Thống kê đánh giá và bình luận

Hình 3 20:Thiết kế giao diện thống kê

Thông báo về đơn hàng và thao tác thông tin admin

Hình 3 21:Thiết kế giao diện thông báo

- Chỉnh sửa thông tin admin:

Hình 3 22:Thiết kế giao diện chỉnh sửa thông tin admin

CÀI ĐẶT MÔI TRƯỜNG

Công cụ

 IDE: IntelliJ , Visual Studio Code

 Quản lý database: MySQL Workbench

Công nghệ

 Angular Framework: xây dựng Frontend

 Spring Framework: xây dựng Backend

 MySQL: sử dụng làm database.

Các bước cài đặt phần mềm và môi trường

a Hướng dẫn cài đặt IntelliJ IDE

Truy cập vào đường dẫn download IntelliJ của JetBrains

(https://www.jetbrains.com/idea/download/)

Thực hiện download phiên bản phù hợp với hệ điều hành, có 2 option lựa chọn (Ultimate và Community) tùy vào mục đích nhu cầu mà lựa chọn phù hợp

Sau khi đã download thành công, tiến hành khởi chạy file setup (nếu download file exe) theo các bước tuần tự

Thực hiện cài đặt thành công, nhấn finish

Hình 4 2: Hoàn tất cài đặt IntelliJ IDE

Hình 4 3: Khởi chạy Inteliij IDE thành công b Hướng dẫn cài đặt Visual Studio Code

Truy cập vào đường dẫn download của VisualStudio

(https://code.visualstudio.com/download)

Thực hiện lựa chọn phiên bản phù hợp với hệ điều hành sau đó download

Hình 4 4: Download Visual Studio Code

Thực hiện khởi chạy file setup (nếu download file exe) và thực hiện theo các bước

Sau khi install thành công, nhấn finish để kết thúc tiến trình

Hình 4 5: Hoàn tất cài đặt Visual Studio Code

Thực hiện cài đặt các extension tùy ý tại mục tìm kiếm extension

Hình 4 6: Khởi chạy thành công VSCode và cài đặt Extension cho VSCode c Hướng dẫn cài đặt MySQL

Truy cập vào mục download của MySQL theo địa chỉ

(https://dev.mysql.com/downloads/installer/)

Lựa chọn phiên bản phù hợp với hệ điều hành và nhu cầu cá nhân và thực hiện download

Sau khi download thành công, thực hiện chạy file setup

Sau khi thực hiện cài đặt thành công, nhấn finish và cửa sổ configuration hiện ra và thực hiện next theo các thông số mặc định

Hình 4 8: Hoàn tất cài đặt MySQL Server

Hình 4 9: Thực hiện cấu hình MySQL Server Đặt username và password cho việc login vào MySQL và thực hiện next

Hình 4 10: Đặt username và password cho MySQL

Khi hoàn tất những bước trên, thì việc configure đã hoàn tất, nhấn finish để kết thúc và truy cập vào MySQL để kiểm tra việc cài đặt

Hình 4 11: Hoàn thành cài đặt d Hướng dẫn setup môi trường databases cho dự án

Sau khi đã thực hiện cài đặt thành công MySQL, tiến hành import databases đã backup cho dự án

Vào phân vùng import database và chọn file sql backup cần import vào database

Hình 4 12: Import database từ file backup

Sau khi thực hiện import thành công, databases đã có trong hệ thống

Sau khi đã import thành công databases, thực hiện setup môi trường kết nối với databases tại backend trong file application.properties

Thực hiện thay đổi các thông số liên quan như username password (là username và password khi login vào MySQL) và tên databases(sau port mysql)

Sau khi các thay đổi có liên quan trên đều được cập nhật thì bây giờ backend đã có thể kết nối với MySQL

Hình 4 13: Kết nối với MySQL Server e Hướng dẫn setup môi trường NodeJS

Truy cập vào mục release của NodeJS để download phiên bản NodeJS phù hợp với dự án (V14.17.3) (https://nodejs.org/en/blog/release/v14.17.3)

Lựa chọn phiên bản cài đặt phù hợp với hệ điều hành cũng như nhu cầu cài đặt

Hình 4 14: Download NodeJS file setup

Sau khi download thành công, thực hiện khởi chạy file cài đặt (nếu download file exe hoặc msi) theo tuần tự

Sau khi install thành công, nhấn finish

Hình 4 15: Hoàn tất cài đặt NodeJS thành công f Hướng dẫn setup môi trường NPM

Lựa chọn NPM version phù hợp với dự án hiện hành (V9.6.2) và thực hiện install npm version trên môi trường command line

Có 2 lựa chọn cho việc triển khai trên tùy vào nhu cầu và mục đích sử dụng, được thể hiện phía dưới

Sau khi thực hiện cài đặt thành công, thực hiện kiểm tra lại version hiện hành của NPM

Hướng dẫn setup môi trường Angular CLI

Thực hiện lựa chọn phiên bản Angular phù hợp với dự án hiện hành (V12.0.5) và thực hiện cài đặt trên môi trường command line

Khởi chạy dòng command sau để cài đặt CLI với phiên bản chỉ định phía sau

Sau khi thực hiện cài đặt thành công, thực hiện kiểm tra lại môi trường Angular

Hình 4 16: Kiểm tra môi trường Angular g Hướng dẫn setup môi trường và khởi chạy dự án phía frontend

Thực hiện cài đặt môi trường node cho phía frontend (Shop, Manage), thông qua môi trường command line tại ngay thư mục chứa source dự án phía frontend như bên dưới cùng với command tương ứng

Sau khi thực hiện thành công việc cài đặt node cho dự án, console hiển thị sẽ tương tự như bên dưới và trong thư mục dự án sẽ xuất hiện thư mục node_module chứa các thư viện, mã nguồn nhúng được cài đặt bởi npm install

Hình 4 17: Cài đặt/cập nhật mã nguồn/thư viện nhúng vào dự án

Sau khi hoàn tất các bước trên, tiến hành khởi chạy frontend thông qua commandline với command như dưới (thuộc phân vùng của Angular CLI), đồng thời lưu ý port dùng để chỉ định port mong muốn khởi chạy frontend phía local truy cập tới để tránh tình trạng xung đột port mặc định làm nhảy random port

Hình 4 18: Khởi chạy phía frontend

LUẬN

ƯU ĐIỂM

4 Đề nghị cho bảo vệ hay không ?

TP Hồ Chí Minh, ngày tháng năm 2024

(Ký và ghi rõ họ tên)

Ngành: Công nghệ Thông tin ĐH SƯ PHẠM KỸ THUẬT TP.HCM

XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập – Tự do – Hạnh phúc ******* PHIẾU NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN

Họ và tên Sinh viên: Lê Nguyễn Trường Giang MSSV: 19110353

Ngành: Công nghệ Thông tin

Tên đề tài: Xây dựng website thương mại điện tử với Spring Boot và Angular

Họ và tên Giáo viên phản biện: TS LÊ VĨNH THỊNH

1 Về nội dung đề tài khối lượng thực hiện:

4 Đề nghị cho bảo vệ hay không ?

TP Hồ Chí Minh, ngày tháng năm 2024

(Ký và ghi rõ họ tên)

Trong quá trình nghiên cứu đề tài, các giảng viên đã luôn hỗ trợ, hướng dẫn em Với tất cả sự kính trọng, em xin được bày tỏ lòng biết ơn đến quý thầy cô đã luôn theo dõi và hướng dẫn trong suốt thời gian thực hiện đề tài Đặc biệt, xin gửi lời cảm ơn chân thành nhất đến thầy Nguyễn Minh Đạo– giáo viên hướng dẫn khóa luận tốt nghiệp – Khoa công nghệ thông tin – Đại học Sư phạm Kỹ thuật

Tp Hồ Chí Minh, đã hướng dẫn, quan tâm, góp ý và luôn đồng hành cùng em trong những giai đoạn khó khăn nhất của đề tài

Với những kinh nghiệm thực tiễn còn thiếu sót và kinh nghiệm chuyên môn còn non yếu, bài báo cáo vẫn có những thiếu sót và hạn chế nhất định Kính mong nhận được những phản hồi, đóng góp ý kiến và chỉ bảo thêm của quý thầy cô để em có thể đạt được những kiến thức hữu ích nhất, nâng cao ý thức để phục vụ cho kỹ năng sau này

Em xin chân thành cảm ơn! ĐỀ CƯƠNG KHÓA LUẬN TỐT NGHIỆP

Họ và tên sinh viên thực hiện: Lê Nguyễn Trường Giang Mã số sinh viên: 19110353 Thời gian làm luận văn: Từ ngày 20/08/2023 đến ngày 20/12/2023

Chuyên ngành: Công nghệ phần mềm

Tên khóa luận: Xây dựng website thương mại điện tử với Spring Boot và Angular

Giáo viên hướng dẫn: Ths Nguyễn Minh Đạo

Nhiệm vụ của luận văn:

 Spring Framework, Angular, API, MYSQL

 Xây dựng cấu trúc dự án theo mô hình MVC Clean Structure

 Sử dụng Spring Framework RESTAPI kết hợp với Angular

 Sử dụng Spring Security, JWT

 Sử dụng Cloudinary Image Server

 Xây dựng các chức năng sau cho website: o Phía Client:

 Đăng nhập, đăng kí, quên mật khẩu, đăng xuất tài khoản

 Bắt validated cho các field tại form đăng kí đăng nhập và khi nhập số lượng tại giỏ hàng cho sản phẩm

 Hiển thị các sản phẩm bán chạy nhất, sản phẩm mới nhất, sản phẩm thịnh thành

 Xem chi tiết sản phẩm, đánh giả của sản phẩm, các sản phẩm có liên quan

 Xem toàn bộ sản phẩm hiện có, xem sản phẩm theo danh mục

 Xem thông tin cá nhân của tài khoản

 Xem lịch sử đơn hàng đã, đang đặt, xem chi tiết của các lịch sử đơn hàng đã, đang đặt

 Hủy đơn hàng nếu shop đang còn trong tình trạng đang xử lí, đánh giá sản phẩm nếu đã nhận hàng thành công

 Thêm, xóa sản phẩm tại mục ưu thích

 Thanh toán cod và online

 Tìm kiếm sản phẩm theo từ khóa, tìm kiếm sản phẩm theo keyup realtime trên thanh search

 Sắp xếp hiện thị sản phẩm theo các tiêu chí tùy chọn

 Gửi email khi đăng kí tài khoản và các tác vụ liên quan đến đơn hàng

 Quản lí thông báo về đơn hàng từ phía Client khi đặt và hủy đơn từ khách realtime, đăng nhập đăng xuất chỉnh sửa thông tin admin

 Quản lý hiện thị với tài khoản người dùng, thêm, xóa, sửa, sắp xếp tăng dần giảm dần theo tiêu chí đầu đề từng cột tại bảng, tìm kiếm theo tiêu chí đầu đề từng cột tại bảng hiển thị danh sách, xuất đơn thống kế theo bảng danh sách hiện tại đang hiển thị, hiển thị phân biệt giới tính bằng màu trên dòng

 Quản lý hiện thị với đơn hàng, thục hiện các tác vụ liên quan về đơn hàng phía admin, sắp xếp tăng dần giảm dần theo tiêu chí đầu đề từng cột tại bảng, tìm kiếm theo tiêu chí đầu đề từng cột tại bảng hiển thị danh sách, xuất đơn thống kế theo bảng danh sách hiện tại đang hiển thị, hiển thị phân biệt trạng thái đơn hàng theo màu trên dòng

 Quản lý hiện thị với sản phẩm, thêm, xóa, sửa, sắp xếp tăng dần giảm dần theo tiêu chí đầu đề từng cột tại bảng, tìm kiếm theo tiêu chí đầu đề từng cột tại bảng hiển thị danh sách, xuất đơn thống kế theo bảng danh sách hiện tại đang hiển thị, hiển thị phân biệt số lượng sản phẩm ở các ngưỡng (đã hết, gần hết, tầm trung, còn nhiều)

 Quản lý hiện thị với danh mục sản phẩm, thêm, xóa, sửa, sắp xếp tăng dần giảm dần theo tiêu chí đầu đề từng cột tại bảng, tìm kiếm theo tiêu chí đầu đề từng cột tại bảng hiển thị danh sách, xuất đơn thống kế theo bảng danh sách hiện tại đang hiển thị

 Quản lý hiện thị với lượt đánh giá, sắp xếp tăng dần giảm dần theo tiêu chí đầu đề từng cột tại bảng, tìm kiếm theo tiêu chí đầu đề từng cột tại bảng hiển thị danh sách, xuất đơn thống kế theo bảng danh sách hiện tại đang hiển thị, hiển thị phân biệt ngưỡng điểm đánh giá bằng màu trên dòng

 Thống kê số lượng khách hàng, đơn hàng mới cần xử lí, doanh thu theo tháng trong năm và năm và biểu đồ hiển thị doanh thu theo năm và tháng trong năm tại dashboard

 Thống kê sản phẩm danh mục bán chạy nhất, sắp xếp tìm kiếm theo tiêu chí đầu đề từng cột tại bảng hiển thị, xuất đơn thống kê theo bảng danh sách hiện tại đang hiển thị, trực quan bằng biểu dồ hiển thị các danh mục sản phẩm bán chạy nhất

 Thống kê sản phẩm bán chạy nhất, sắp xếp tìm kiếm theo tiêu chí đầu đề từng cột tại bảng hiển thị, xuất đơn thống kê theo bảng danh sách hiện tại đang hiển thị, trực quan bằng biểu dồ hiển thị các sản phẩm bán chạy nhất

 Thống kê hàng tồn kho, sắp xếp tìm kiếm theo tiêu chí đầu đề từng cột tại bảng hiển thị, xuất đơn thống kê theo bảng danh sách hiện tại đang hiển thị, trực quan bằng biểu dồ hiển thị hàng tồn kho

STT Thời gian Công việc Ghi chú

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

2 Tuần 3 Phân tích thiết kế hệ thống

3 Tuần 4 Tạo cơ sở dữ liệu

Làm chức năng đăng nhập, đăng xuất, thay đổi mật khẩu, gửi mail, config Security, JWT, Websocket

4 Tuần 5 Coding hoàn thành thêm chức năng cho các actors: Customer

5 Tuần 6 Coding thêm chức năng cho các actors: Admin, Guest

8 Tuần 9 Chỉnh sửa thêm thuộc tính về phần cơ sở dữ liệu

Coding thêm chức năng cho các actors: Admin

9 Tuần 10 Hoàn thành chức năng tìm kiếm sản phẩm, chi tiết sản phẩm, sắp xếp hiển thị sản phẩm theo các tiêu chí, truy xuất hiển thị sản phẩm theo các tiêu chí, phân trang

10 Tuần 11 Hoàn thành các chức năng thêm ưa thích, tùy chỉnh ưa thích, thêm giỏ hàng, tùy chỉnh giỏ, phân trang

11 Tuần 12 Hoàn thiện thêm chức năng quản lý ở admin quản lý sản phẩm, danh mục sản phẩm, quản lí người dùng, phân trang, sắp xếp, xuất hóa đơn

12 Tuần 13 Hoàn thành chức năng thêm sản phẩm vào giỏ hàng, đặt hàng offline Xem lịch sử đặt đơn tại tài khoản, xem chi tiết, hủy đơn, phân trang

13 Tuần 14 Hoàn thành chức năng quản lý đơn hàng, lọc đơn hàng, các tác vụ liên quan đến đơn hàng, phân trang, nhận thông báo, gửi mail, sắp xếp, xuất hóa đơn

Thanh toán Paypal online Hoàn thành dashboard admin Đánh giá sản phẩm sau khi nhận sản phẩm

Hoàn thành chức năng quản lý đánh giá của khách hàng, lọc đánh giá, phân trang sắp xếp, xuất hóa đơn

Quản lý thống kê theo các tiêu chí danh mục bán chạy nhất, sản phẩm bán chạy nhất, hàng tồn kho, sắp xếp, lọc theo đầu mục, xuất hóa đơn

Triển khai ChartJS thể hiện biểu đồ cho các mục về thống kê Chỉnh sửa admin

15 Tuần 18 Kiểm thử fix các lỗi nếu phát sinh Hoàn thiện báo cáo

1 Lý do chọn đề tài 22

2 Phạm vi và đối tượng của đề tài 22

3 Về mặt thiết bị và phần mềm 23

4 Yêu cầu về phần mềm 23

4.1 Phần dành cho người quản lý (chủ cửa hàng): 23

4.2 Phần dành cho khách hàng: 24

CHƯƠNG 1: CƠ SỞ LÝ THUYẾT 25

1.1.1 Giới thiệu về Spring Framework: 25

1.1.2 Nguyên tắc IoC và DI 25

1.1.3 Chức năng chính của Spring Framework 25

1.1.4 Giới thiệu về Spring Boot: 25

1.1.5 Tính năng nổi bật của Spring Boot: 26

1.1.6 Sự kết hợp giữa Spring Framework và Spring Boot: 26

CHƯƠNG 2: MÔ HÌNH HÓA YÊU CẦU VÀ THIẾT KẾ CƠ SỞ DỮ LIỆU 31

2.4 3 Sequence diagram thêm sản phẩm vào giỏ hàng 60

2.4 4 Sequence diagram thêm sản phẩm vào danh sách yêu thích 61

2.4 5 Sequence diagram tìm kiếm sản phẩm 61

2.4 6 Sequence diagram xóa sản phẩm khỏi giỏ hàng 61

2.4 7 Sequence diagram xóa sản phẩm khỏi danh sách yêu thích 62

2.4 8 Sequence diagram hiển thị tất cả sản phẩm 62

2.4 9 Sequence diagram hiển thị danh mục sản phẩm 62

2.4 10 Sequence diagram hiển thị sản phẩm theo danh mục 63

2.4 11 Sequence diagram hiển thị sản phẩm thịnh hành 63

2.4 12 Sequence diagram hiển thị sản phẩm bán chạy nhất 64

2.4 13 Sequence diagram hiển thị sản phẩm mới nhất 64

2.4 15 Sequence diagram hiển thị chi tiết sản phẩm 65

2.4 16 Sequence diagram hiển thị đánh giá sản phẩm 65

2.4 18 Sequence diagram hiển thị tất cả đơn hàng 66

2.4 19 Sequence diagram chi tiết đơn hàng 67

2.4 20 Sequence diagram đánh giá đơn hàng 67

2.4 21 Sequence diagram hủy đơn hàng 68

2.4 22 Sequence diagram thống kê theo tháng 68

2.4 23 Sequence diagram thống kê theo năm 69

2.4 24 Sequence diagram thống kê doanh thu theo tháng 69

2.4 25 Sequence diagram thống kê doanh thu theo năm 70

2.4 26 Sequence diagram hiển thị thông báo 70

2.4 27 Sequence diagram thống kê tồn kho 71

2.4 28 Sequence diagram thống kê sản phẩm bán chạy theo danh mục 71

2.4 29 Sequence diagram thống kê sản phẩm bán chạy nhất 72

2.4 30 Sequence diagram hiển thị danh sách khách hàng 72

2.4 31 Sequence diagram thêm tài khoản 73

2.4 32 Sequence diagram chỉnh sửa thông tin tài khoản 73

2.4 33 Sequence diagram xóa tài khoản 74

2.4 34 Sequence diagram hiển thị danh sách sản phẩm 74

2.4 35 Sequence diagram thêm sản phẩm 75

2.4 36 Sequence diagram chỉnh sửa thông tin sản phẩm 75

2.4 38 Sequence diagram hiển thị danh sách danh mục sản phẩm 76

2.4 39 Sequence diagram thêm danh mục sản phẩm 77

2.4 40 Sequence diagram chỉnh sửa danh mục sản phẩm 77

2.4 41 Sequence diagram xóa danh mục sản phẩm 78

2.4 42 Sequence diagram hiển thị danh sách đơn hàng 78

2.4 43 Sequence diagram xác nhận vận chuyển đơn hàng 79

2.4 44 Sequence diagram xác nhận đã hoàn thành đơn 79

2.4 45 Sequence diagram hiển thị danh sách đánh giá 79

CHƯƠNG 3: THIẾT KẾ GIAO DIỆN 80

3.4 Giới thiệu và Liên hệ 85

3.6 Đăng nhập và đăng ký 88

3.10 Danh sách sản phẩm yêu thích 93

3.11 Trang thông tin cá nhân và lịch sử đặt hàng: 94

3.12 Trang chi tiết đơn hàng và đánh giá khi đặt thành công: 94

3.17 Quản lý loại sản phẩm 100

3.18 Thống kê đánh giá và bình luận 102

3.19 Thống kê danh mục bán chạy 102

3.20 Thống kê sản phẩm bán chạy 103

3.21 Thống kê hàng tồn kho 103

3.22 Thông báo về đơn hàng và thao tác thông tin admin 103

CHƯƠNG 4: CÀI ĐẶT MÔI TRƯỜNG 106

4.3.Các bước cài đặt phần mềm và môi trường 106

1.2 Chương trình đã đạt được 122

Hình 2.1:Use case phía shop của hệ thống 31

Hình 2.2:Use case phía Manage của hệ thống 32

Hình 2 3: Thiết kế sơ đồ ERD 53

Hình 2 3: Sequence diagram đăng ký 59

Hình 2 4: Sequence diagram đăng nhập 60

Hình 2 6: Sequence diagram thêm sản phẩm vào giỏ hàng 60

Hình 2 7: Sequence diagram thêm sản phẩm vào danh sách yêu thích 61

Hình 2 8: Sequence diagram tìm kiếm sản phẩm 61

Hình 2 9: Sequence diagram xóa sản phẩm khỏi giỏ hàng 61

Hình 2 10: Sequence diagram xóa sản phẩm khỏi danh sách yêu thích 62

Hình 2 11: Sequence diagram hiển thị tất cả sản phẩm 62

Hình 2 12: Sequence diagram hiển thị danh mục sản phẩm 62

Hình 2 13: Sequence diagram hiển thị sản phẩm theo danh mục 63

Hình 2 14: Sequence diagram hiển thị sản phẩm thịnh hành 63

Hình 2 15: Sequence diagram hiển thị sản phẩm bán chạy nhất 64

Hình 2 16: Sequence diagram hiển thị sản phẩm mới nhất 64

Hình 2 17: Sequence diagram hiển thị sản phẩm liên quan 64

Hình 2 18: Sequence diagram hiển thị chi tiết sản phẩm 65

Hình 2 19: Sequence diagram hiển thị đánh giá sản phẩm 65

Hình 2 20: Sequence diagram đặt hàng 66

Hình 2 21: Sequence diagram hiển thị tất cả đơn hàng 66

Hình 2 23: Sequence diagram đánh giá đơn hàng 67

Hình 2 24: Sequence diagram hủy đơn hàng 68

Hình 2 25: Sequence diagram thống kê theo tháng 68

Hình 2 26: Sequence diagram thống kê theo năm 69

Hình 2 27: Sequence diagram thống kê doanh thu theo tháng 69

Hình 2 28: Sequence diagram thống kê doanh thu theo năm 70

Hình 2 29: Sequence diagram hiển thị thông báo 70

Hình 2 30: Sequence diagram thống kê tồn kho 71

Hình 2 31: Sequence diagram thống kê sản phẩm bán chạy theo danh mục 71

Hình 2 32: Sequence diagram thống kê sản phẩm bán chạy nhất 72

Hình 2 33: Sequence diagram hiển thị danh sách khách hàng 72

Hình 2 34: Sequence diagram thêm tài khoản 73

Hình 2 35: Sequence diagram chỉnh sửa thông tin tài khoản 73

Hình 2 36: Sequence diagram xóa tài khoản 74

Hình 2 37: Sequence diagram hiển thị danh sách sản phẩm 74

Hình 2 38: Sequence diagram thêm sản phẩm 75

Hình 2 39: Sequence diagram chỉnh sửa thông tin sản phẩm 75

Hình 2 40: Sequence diagram xóa sản phẩm 76

Hình 2 41: Sequence diagram hiển thị danh sách danh mục sản phẩm 76

Hình 2 42: Sequence diagram thêm danh mục sản phẩm 77

Hình 2 43: Sequence diagram chỉnh sửa danh mục sản phẩm 77

Hình 2 44: Sequence diagram xóa danh mục sản phẩm 78

Hình 2 46: Sequence diagram xác nhận vận chuyển đơn hàng 79

Hình 2 47: Sequence diagram xác nhận đã hoàn thành đơn 79

Hình 2 48: Sequence diagram hiển thị danh sách đánh giá 79

Hình 3 1:Thiết kế giao diện menu and header 80

Hình 3 2: Thiết kế giao diện trang chủ 83

Hình 3 3:Thiết kế giao diện footer 85

Hình 3 4:Thiết kế giao diện giới thiệu và lên hệ 85

Hình 3 5:Thiết kế giao diện danh sách sản phẩm 88

Hình 3 6:Thiết kế giao diện đăng nhập 88

Hình 3 7:Thiết kế giao diện đăng ký 89

Hình 3 8:Thiết kế giao diện giỏ hàng 90

Hình 3 9:Thiết kế giao diện thanh toán 91

Hình 3 10:Thiết kế giao diện chi tiết sản phẩm 92

Hình 3 11:Thiết kế giao diện đánh giá và sản phẩm liên quan 92

Hình 3 12:Thiết kế giao diện sản phẩm yêu thích 93

Hình 3 13:Thiết kế giao diện thông tin cá nhân và lịch sử đơn hàng 94

Hình 3 14:Thiết kế giao diện chi tiết đơn hàng và đánh giá 94

Hình 3 15:Thiết kế giao diện Dashboard 95

Hình 3 16:Thiết kế giao diện quản lý khách hàng 95

Hình 3 17:Thiết kế giao diện quản lý đơn hàng 98

Hình 3 18:Thiết kế giao diện quản lý sản phẩm 99

Hình 3 20:Thiết kế giao diện thống kê 102

Hình 3 21:Thiết kế giao diện thông báo 104

Hình 3 22:Thiết kế giao diện chỉnh sửa thông tin admin 105

Hình 4 2: Hoàn tất cài đặt IntelliJ IDE 107

Hình 4 3: Khởi chạy Inteliij IDE thành công 107

Hình 4 4: Download Visual Studio Code 108

Hình 4 5: Hoàn tất cài đặt Visual Studio Code 109

Hình 4 6: Khởi chạy thành công VSCode và cài đặt Extension cho VSCode 109

Hình 4 8: Hoàn tất cài đặt MySQL Server 111

Hình 4 9: Thực hiện cấu hình MySQL Server 111

Hình 4 10: Đặt username và password cho MySQL 112

Hình 4 11: Hoàn thành cài đặt 113

Hình 4 12: Import database từ file backup 114

Hình 4 13: Kết nối với MySQL Server 115

Hình 4 14: Download NodeJS file setup 116

Hình 4 15: Hoàn tất cài đặt NodeJS thành công 117

Hình 4 16: Kiểm tra môi trường Angular 118

Hình 4 17: Cài đặt/cập nhật mã nguồn/thư viện nhúng vào dự án 119

Hình 4 18: Khởi chạy phía frontend 121

Bảng 2 1: Bảng danh sách use case hệ thống 32

Bảng 2 2: Bảng mô tả use case đăng nhập 36

Bảng 2 3: Bảng mô tả use case đăng xuất 36

Bảng 2 4:: Bảng mô tả use case đổi mật khẩu 37

Bảng 2 5: Bảng mô tả use case xem thông tin cá nhân 37

Bảng 2 6: Bảng mô tả use case cập nhật thông tin cá nhân 38

Bảng 2 7: Bảng mô tả use case đơn hàng đã đặt 38

Bảng 2 8: Bảng mô tả use case hủy đơn hàng 39

Bảng 2 9: Bảng mô tả use case đánh giá và bình luận 39

Bảng 2 10: Bảng mô tả use case xem chi tiết đơn hàng 40

Bảng 2 11: Bảng mô tả use case yêu thích 40

Bảng 2 12: Bảng mô tả use case xem chi tiết sản phẩm 40

Bảng 2 13: Bảng mô tả use case danh sách sản phẩm 41

Bảng 2 14: Bảng mô tả use case liệt kê sản phẩm theo loại 41

Bảng 2 15: Bảng mô tả use case liệt kê sản phẩm theo đánh giá 42

Bảng 2 16: Bảng mô tả use case liệt kê sản phảm theo ký tự 42

Bảng 2 17: Bảng mô tả use case giỏ hàng 43

Bảng 2 18: Bảng mô tả use case thêm sản phẩm vào giỏ hàng 43

Bảng 2 19: Bảng mô tả use case cập nhật số lượng sản phẩm 44

Bảng 2 20: Bảng mô tả use case xóa sản phẩm khỏi giỏ hàng 44

Bảng 2 21: Bảng mô tả use case đặt hàng 44

Bảng 2 23: Bảng mô tả use case xem chi tiết đơn hàng 45Bảng 2 24: Bảng mô tả use case xem danh sách 46Bảng 2 25: Bảng mô tả use case thêm mới 47Bảng 2 26: Bảng mô tả use case cập nhật 47Bảng 2 27: Bảng mô tả use case xem thông tin 48Bảng 2 28: Bảng mô tả use case xóa 48Bảng 2 29: Bảng mô tả use case thống kê 48Bảng 2 30: Bảng mô tả use case thống kê doanh thu 50Bảng 2 31: Bảng mô tả use case thống kê kho hàng 50Bảng 2 32: Bảng mô tả use case thống kê khách hàng 50Bảng 2 33: Bảng mô tả use case thống kê đánh giá 51Bảng 2 34: Bảng mô tả use case thống kê đơn hàng 51Bảng 2 35: Bảng mô tả use case quản lý đơn hàng 51

1 Lý do chọn đề tài

NHƯỢC ĐIỂM

Các nghiệp vụ phức tạp chưa làm tới, do công nghệ trải nghiệm lần đầu nên việc học công nghệ để triển khai mất khá nhiều thời gian

Còn đi theo mô hình MVC sẽ làm ảnh hưởng đến hiệu suất nếu lưu lượng truy cập lớn

HƯỚNG PHÁT TRIỂN

Trong thời gian tới đề tài sẽ tiếp tục phát triển:

 Tối ưu giao diện để phù hợp với các trang thiết bị như là Mobile, Tablet

 Thêm các chức năng nhắn tin messenge, chatbot, trả lời đánh giá

 Upversion mới dựa trên Framework xây dựng

 Triển khai thay thế mô hình MVC thành Microservice + API Gateway

[1] Spring Boot, "Spring Boot Docs", 2023 [Online] Available: https://spring.io/projects/spring-boot/

[2] Angular, "Angular Docs", 2023 [Online] Available: https://angular.io/docs

[3] Bootstrap, "Bootstrap Docs", 2023 [Online] Available: https://getbootstrap.com/docs/

[4] Spring Boot Refresh Token with JWT example, "bezkoder", 2023 [Online]

Available: https://www.bezkoder.com/spring-boot-refresh-token-jwt/

[5] Spring Security, "Spring Security Docs", 2023 [Online] Available: https://spring.io/projects/spring-security/

[6] Spring Framework, "Spring Framework Docs", 2023 [Online] Available: https://spring.io/projects/spring-framework/

Ngày đăng: 01/10/2024, 12:19

HÌNH ẢNH LIÊN QUAN

Hình 2.1:Use case phía shop của hệ thống - xây dựng website thương mại điện tử với spring boot và angular
Hình 2.1 Use case phía shop của hệ thống (Trang 32)
Hình 2.2:Use case phía Manage của hệ thống - xây dựng website thương mại điện tử với spring boot và angular
Hình 2.2 Use case phía Manage của hệ thống (Trang 33)
Hình 2. 27: Sequence diagram thống kê doanh thu theo tháng - xây dựng website thương mại điện tử với spring boot và angular
Hình 2. 27: Sequence diagram thống kê doanh thu theo tháng (Trang 70)
Hình 2. 34: Sequence diagram thêm tài khoản - xây dựng website thương mại điện tử với spring boot và angular
Hình 2. 34: Sequence diagram thêm tài khoản (Trang 74)
Hình 2. 36: Sequence diagram xóa tài khoản - xây dựng website thương mại điện tử với spring boot và angular
Hình 2. 36: Sequence diagram xóa tài khoản (Trang 75)
Hình 2. 45: Sequence diagram hiển thị danh sách đơn hàng - xây dựng website thương mại điện tử với spring boot và angular
Hình 2. 45: Sequence diagram hiển thị danh sách đơn hàng (Trang 79)
Hình 3. 15:Thiết kế giao diện Dashboard - xây dựng website thương mại điện tử với spring boot và angular
Hình 3. 15:Thiết kế giao diện Dashboard (Trang 96)
Hình 3. 17:Thiết kế giao diện quản lý đơn hàng - xây dựng website thương mại điện tử với spring boot và angular
Hình 3. 17:Thiết kế giao diện quản lý đơn hàng (Trang 99)
Hình 3. 21:Thiết kế giao diện thông báo - xây dựng website thương mại điện tử với spring boot và angular
Hình 3. 21:Thiết kế giao diện thông báo (Trang 105)
Hình 4. 9: Thực hiện cấu hình MySQL Server - xây dựng website thương mại điện tử với spring boot và angular
Hình 4. 9: Thực hiện cấu hình MySQL Server (Trang 112)
Hình 4. 15: Hoàn tất cài đặt NodeJS thành công - xây dựng website thương mại điện tử với spring boot và angular
Hình 4. 15: Hoàn tất cài đặt NodeJS thành công (Trang 118)

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

TÀI LIỆU LIÊN QUAN

w