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/