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

Báo cáo phân tích xây dựng website bán sách bằng java và mysql chuẩn seo 2025 Đồ Án website bán sách

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

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

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Xây Dựng Website Bán Sách
Tác giả Vũ Duy Khánh, Nguyễn Gia Hiển
Người hướng dẫn TS. Đào Thị Thúy Quỳnh
Trường học Học Viện Công Nghệ Bưu Chính Viễn Thông
Chuyên ngành Công Nghệ Thông Tin
Thể loại Đồ án
Năm xuất bản 2024
Thành phố Hà Nội
Định dạng
Số trang 68
Dung lượng 7,45 MB
File đính kèm website ban sach java.zip (7 MB)

Cấu trúc

  • 1. Lý do chọn đề tài (13)
  • 2. Đối tượng nghiên cứu và phạm vi nghiên cứu (13)
  • 3. Kết quả thực hiện (14)
  • 4. Kết cấu của báo cáo (15)
  • CHƯƠNG 1: CƠ SỞ LÝ THUYẾT (16)
    • 1.1 Thư viện Reactjs (0)
      • 1.1.1 Khái niệm (16)
      • 1.1.2 Ưu điểm của reactjs (0)
    • 1.2 Ngôn ngữ lập trình java (0)
      • 1.2.1 Khái niệm (17)
      • 1.2.2 Ưu điểm của ngôn ngữ java (17)
    • 1.3 Sping framework (0)
      • 1.3.1 Khái niệm (17)
      • 1.3.2 Ưu điểm của spring framework (19)
    • 1.4 Restful Api (0)
      • 1.4.1 Khái niệm (18)
      • 1.4.2 Cách thức hoạt động (20)
      • 1.5.1 Khái niệm (20)
      • 1.5.2 Ưu điểm của mysql (21)
    • 1.6 Elasticsearch (0)
      • 1.6.1 Khái niệm (0)
      • 1.6.2 Ưu điểm của elasticsearch (0)
      • 1.6.3 So sánh elasticsearch và mysql (0)
    • 1.7 Các công nghệ khác (0)
      • 1.7.1 Xác thực tài khoản google (0)
      • 1.7.2 Cổng thanh toán momo (0)
    • 1.8 Kết chương (0)
  • CHƯƠNG 2: PHÂN TÍCH YÊU CẦU VÀ THIẾT KẾ HỆ THỐNG (15)
    • 2.1 Tổng quan về nghiệp vụ (23)
    • 2.2 Phân tích yêu cầu chức năng (24)
      • 2.2.1 Tổng quan hệ thống (24)
      • 2.2.2 Đặc tả usecase (24)
    • 2.3 Phân tích yêu cầu phi chức năng (33)
      • 2.3.1 Yêu cầu bảo mật (33)
      • 2.3.2 Yêu cầu hiệu năng (34)
    • 2.4 Phân tích biểu đồ lớp (36)
    • 2.5 Phân tích biểu đồ tuần tự (42)
      • 2.5.1 Biểu đồ tuần tự đăng ký (42)
      • 2.5.2 Biểu đồ tuần tự đăng nhập (43)
      • 2.5.3 Sơ đồ tuần tự đăng tin (0)
      • 2.5.4 Biểu đồ tuần tự thêm danh mục (44)
      • 2.5.5 Biểu đồ tuần tự thêm bài viết (0)
      • 2.5.7 Biểu đồ tuần tự mở khóa tài khoản (0)
      • 2.5.8 Biểu đồ cập nhật trạng thái tin đăng (46)
      • 2.5.9 Biểu đồ tuần tự thống kê doanh thu (46)
      • 2.5.10 Biểu đồ tuần tự tìm kiếm bất động sản (0)
      • 2.5.11 Biểu đồ tuần tự xóa danh mục (47)
      • 2.5.12 Biểu đồ tuần tự nạp tiền vào tài khoản (0)
    • 2.6 Thiết kế hệ thống (49)
      • 2.6.1 database (0)
      • 2.6.2 Elasticsearch (0)
    • 2.7 kết chuơng (50)
  • CHƯƠNG 3: CÀI ĐẶT VÀ THỬ NGHIỆM HỆ THỐNG (15)
    • 3.1 Kiến trúc hệ thống và môi trường triển khai (51)
      • 3.1.1 Kiến trúc hệ thống (51)
      • 3.2.1 Môi trường triển khai ứng dụng (51)
    • 3.2 Thử nghiệm và đánh giá (52)
      • 3.2.1 Giao diện cho người dùng chưa đăng nhập (52)
      • 3.2.2 Giao diện cho người dùng đã đăng nhập (56)
      • 3.2.3 Giao diện cho quản trị viên (58)
    • 3.3 Kết chương (64)
  • CHƯƠNG 4: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN (15)
    • 4.1 Kết luận (65)
    • 4.2 Các hạn chế (65)
    • 4.3 Hướng phát triền (66)
  • TÀI LIỆU THAM KHẢO (67)

Nội dung

Công nghệ thông tin ngày càng phát triển, đóng góp một phần quan trọng cho kinh tế – văn hóa – xã hội, thúc đẩy mọi mặt của xã hội phát triển. Internet hiện nay cũng không còn là phương tiện quý hiếm mà đang ngày càng trở thành một công cụ đắc lực trợ giúp con người trong công cuộc chuyển đổi số. Hiện nay, nhu cầu mua sắm trực tuyến ngày càng tăng cao nhờ vào sự phát triển vượt bậc của công nghệ và mạng Internet. Thương mại điện tử không chỉ đóng vai trò quan trọng trong đời sống hàng ngày mà còn trở thành một lĩnh vực kinh doanh tiềm năng với thị trường ngày càng mở rộng. Người tiêu dùng ngày nay thường ưu tiên sự tiện lợi và nhanh chóng khi mua sắm, điều này thúc đẩy sự phát triển của các trang thương mại điện tử nói chung và các website bán sách nói riêng. Trước đây, việc mua sách thường yêu cầu người mua phải đến trực tiếp các cửa hàng để xem và lựa chọn sản phẩm, điều này tiêu tốn không ít thời gian và công sức, đặc biệt là với những người bận rộn. Tuy nhiên, với sự hỗ trợ của Internet, việc mua sắm trở nên thuận tiện hơn bao giờ hết. Chỉ cần một thiết bị kết nối mạng, người dùng có thể dễ dàng tìm kiếm, so sánh giá cả và đặt hàng các sản phẩm sách từ bất kỳ đâu. Từ những lý do trên, em quyết định chọn đề tài “Xây dựng website bán sách”. Đề tài này nhằm mục tiêu tạo ra một trang web hỗ trợ người dùng dễ dàng tìm kiếm, lựa chọn và đặt mua sách, đồng thời giúp người bán có kênh phân phối hiệu quả, tăng doanh thu và mở rộng thị trường.

Kết quả thực hiện

Mục tiêu của đồ án là đạt được hiểu biết sâu sắc về các nghiệp vụ người dùng thực hiện trên trang web thương mại điện tử Thông qua việc nghiên cứu và phân tích nhu cầu người dùng, đồ án sẽ xác định các yếu tố quan trọng cần tích hợp vào website, từ đó tối ưu hóa trải nghiệm người dùng và đảm bảo tính thân thiện cũng như hiệu quả.

Kết quả dự kiến của dự án bao gồm việc nắm vững Restful API và các tính năng cơ bản của framework Spring Boot, kết hợp với AngularJS, nhằm tạo ra sự mượt mà cho website Mục tiêu của đồ án là áp dụng kiến thức đã học để xây dựng một website thương mại điện tử mạnh mẽ và linh hoạt.

Kết quả dự kiến của đồ án là triển khai thành công website trên nhiều môi trường, chủ yếu sử dụng framework Spring Boot và AngularJS Đồ án nhằm tạo ra một sản phẩm ổn định với giao diện thân thiện và tích hợp các tính năng mạnh mẽ, đáp ứng đầy đủ nhu cầu của người sử dụng.

Kết cấu của báo cáo

Để những đóng góp của đồ án đạt hiệu quả tối ưu nhất, đồ án sẽ được triển khai và diễn giải theo 4 chương theo mô tả dưới đây:

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

Chương này sẽ cung cấp cái nhìn tổng quan về ngôn ngữ lập trình JavaScript và Java, cùng với các framework Spring và AngularJS Chúng ta sẽ khám phá những ưu điểm nổi bật khi sử dụng các framework này, cũng như khái quát về Restful API trong Spring Framework.

Chương 2: Phân tích yêu cầu và Thiết kế hệ thống

Chương này sẽ trình bày các chức năng của website, bao gồm các usecase cụ thể, kịch bản chi tiết cho từng usecase, và biểu đồ tuần tự minh họa cho các chức năng của website.

Thiết kế hệ thống sẽ đi sâu vào phân tích biểu đồ hoạt động cho từng chức năng và thiết cơ sở dữ liệu của hệ thống

Chương 3: Cài đặt và thử nghiệm hệ thống

Chương 3 sẽ trình bày chi tiết về kiến trúc hệ thống và môi trường triển khai, đồng thời giới thiệu giao diện của hệ thống cùng với các màn hình tương ứng cho từng chức năng.

Chương 4: Kết luận và hướng phát triển

Chương cuối sẽ đưa ra nhận xét về những điều đã làm được và cần cải thiện cho hệ thống và đưa ra hướng phát triển trong tương lai.

CƠ SỞ LÝ THUYẾT

Sping framework

Angular là một framework mã nguồn mở cho phát triển ứng dụng web, được xây dựng bằng TypeScript Với mô hình thành phần, Angular cung cấp cấu trúc rõ ràng và khả năng tái sử dụng mã nguồn hiệu quả Framework này tích hợp nhiều tính năng nổi bật như ràng buộc dữ liệu, quản lý thư viện, và hệ thống điều hướng thân thiện Ngoài ra, công cụ Angular CLI hỗ trợ lập trình viên trong việc khởi tạo và quản lý dự án một cách nhanh chóng.

Angular không chỉ giúp xây dựng giao diện người dùng mà còn cho phép mở rộng để tích hợp hiệu quả với các API RESTful và dịch vụ backend.

Angular hỗ trợ chuyển đổi mã TypeScript sang JavaScript một cách tối ưu trước khi trình duyệt tải trang, điều này giúp nâng cao hiệu suất và giảm thiểu thời gian tải ứng dụng.

Angular có Router Module, cho phép điều hướng giữa các thành phần mà không cần tải lại toàn bộ trang

1.3 Ngôn ngữ lập trình java

Java là một ngôn ngữ lập trình thuần hướng đối tượng, được ứng dụng trong phát triển phần mềm cho desktop, mobile, trang web và game Ban đầu, Java được thiết kế cho lập trình nhúng và phát triển phần mềm cho sản phẩm gia dụng Hiện nay, Java đã trở thành một công cụ phổ biến trên mọi nền tảng, đặc biệt trong các lĩnh vực yêu cầu bảo mật cao như ngân hàng và chính phủ.

Java là một ngôn ngữ lập trình đa nền tảng, cho phép các ứng dụng chạy mượt mà trên nhiều hệ điều hành khác nhau như Windows, macOS, Linux, Windows Server và cả thiết bị di động.

Kết chương

4 Kết cấu của báo cáo Để những đóng góp của đồ án đạt hiệu quả tối ưu nhất, đồ án sẽ được triển khai và diễn giải theo 4 chương theo mô tả dưới đây:

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

Chương này sẽ cung cấp cái nhìn tổng quan về ngôn ngữ lập trình JavaScript và Java, đồng thời giới thiệu về Spring Framework và AngularJS Bài viết sẽ nêu rõ các ưu điểm của việc sử dụng những framework này, cũng như khái quát về RESTful API trong Spring Framework.

PHÂN TÍCH YÊU CẦU VÀ THIẾT KẾ HỆ THỐNG

Tổng quan về nghiệp vụ

Hệ thống có 3 tác nhân chính là người dùng đã đăng nhập tài khoản, người dùng chưa đăng ký tài khoản(vãng lai), quản trị viên

Người dùng vãng lai là những người truy cập hệ thống mà chưa thực hiện đăng nhập hoặc đăng ký Khi họ hoàn tất quá trình đăng ký và đăng nhập thành công, họ sẽ trở thành người dùng chính thức của hệ thống Trong thời gian là người dùng vãng lai, họ chỉ có thể xem sản phẩm và thực hiện đăng ký tài khoản.

Tác nhân thứ 2: Người dùng hệ thống khác với người dùng vãng lai ở chỗ có thể đặt hàng, quản tài khoản, quản lý giỏ hàng,….

Quản trị viên đóng vai trò quan trọng trong việc quản lý toàn bộ hệ thống, bao gồm các chức năng như quản lý danh mục, sản phẩm, đơn hàng và tài khoản.

Phân tích yêu cầu chức năng

Hình 1: Biểu đồ usecase tổng quát của hệ thống

Use case name Đăng ký tài khoản

Description Usecase cho phép Người dùng đăng ký tài khoản tại website

Pre-condition Người dùng chưa có tài khoản trên hệ thống

Post condition Đăng ký thành công

1 Người dùng chọn chức năng đăng ký

2 Hệ thống hiển thị form đăng ký

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

5 Hệ thống kiểm tra tính hợp lệ và đầy đủ của các trường Người dùng nhập

6 Hệ thống kiểm tra email tồn tại hay không

7 Hệ thống chuyển đến trang xác thực tài khoản

5a Hệ thống thông báo lỗi: “vui lòng điền đầy đủ thông tin” nếu nhập thiếu một trong các trường trên”

6a Hệ thống thông báo lỗi: “Email đã được sử dụng”

Bảng 1: Đặc tả usecase đăng ký

Use case name Đăng nhập

Description Usecase cho phép người dùng, quản trị viên đăng nhập vào hệ thống để sử dụng các chức năng cần thiết Actor Người dùng, quản trị viên

Pre-condition Người dùng đã có tài khoản trên hệ thống

Post condition Đăng nhập thành công

Flow 1 Người dùng, quản trị viên chọn chức năng đăng nhập

2 Hệ thống hiển thị form đăng nhập

3 Người dùng, quản trị viên, nhân viên nhập Email và Mật khẩu

4 Người dùng, quản trị viên, nhân viên nhấn nút Đăng nhập

5 Hệ thống kiểm tra email và mật khẩu có chính xác hay không

6 Hệ thống chuyển đến trang phù hợp với loại tài khoản Exception 5a Hệ thống thông báo lỗi: “Đăng nhập thất bại”

Bảng 2: Đặc tả usecase đăng nhập

Use case name Đặt hàng

Description Usecase cho phép người dùng đặt hàng

Pre-condition Người dùng đã đăng nhập thành công

Post condition Đặt hàng thành công

1 Người dùng chọn chức năng đặt hàng

2 Hệ thống hiển thị form đặt hàng

3 Người dùng nhập đầy đủ các thông tin cần thiết

4 Người dùng nhấn nút Xác nhận đặt hàng

5 Hệ thống kiểm tra tín hợp lệ của các thông tin

6 Hệ thống xác nhận đặt hàng thành công

5a Hệ thống thông báo lỗi “Vui lòng điền đầy đủ thông tin” nếu nhập thiếu một trong các trường trên

6a Hệ thống thông báo lỗi “Số lượng sản phẩm không đủ” nếu nhập thiếu một trong các trường trên

Bảng 3: Đặc tả usecase đặt hàng

Description Usecase cho phép người dùng bình luận sản phẩm

Pre-condition Người dùng đã đăng nhập

Post condition Bình luận thành công

1 Khách hang chọn 1 sản phẩm bất kì nào đó

2 Hệ thống hiển thị chi tiết sản phẩm và khung bình luận

3 Khách hàng nhập bình luận của mình

4 Khách hàng nhấn nút gửi

5 Hệ thống hiển thị bình luận của khách hàng vừa nhập Exception

Bảng 4: Đặc tả usecase bình luận

Use case name Thêm giỏ hàng

Description Usecase cho phép khách hàng thêm sản phẩm vào giỏ hàng

Người dùng cần đăng nhập và chọn một sản phẩm trước khi nhấn nút thêm vào giỏ hàng Sau khi thực hiện thao tác này, giỏ hàng sẽ được cập nhật thành công với sản phẩm đã chọn.

1 Khách hàng chọn một sản phẩm bất kì nào đó

2 Hệ thống h iển thị chi tiếtsản phẩm và nút thêm giỏ hàng

3 Khách hàng nhấn nút thêm giỏ hàng

4 Hệ thống thêm sản phẩm vừa chọn vào giỏ hàng

Bảng 5: Đặc tả usecase thêm giỏ hàng

Use case name Quản lý đơn hàng đã đặt của người dùng

Description Usecase cho phép người dùng xem, hủy đơn hàng

Pre-condition Người dùng sau khi đăng nhập thành công và truy cập vào trang quản lý đơn hàng Post condition Hệ thống cập nhật đơn hàng.

1 Người dùng chọn 1 đơn hàng đã đặt bất kỳ

2 Người dùng chọn chức năng hủy đơn

3 Hệ thống hủy đơn vừa chọn

Exception 3a Hệ thống thông báo lỗi: “Đơn hàng không thể hủy”

Bảng 6: Đặc tả usecase quản lý đơn hàng của người dùng

Use case name Quản lý đơn hàng của quản trị viên

Description Usecase cho phép quản trị viên cập nhật trạng thái đơn hàng

Pre-condition Quản trị viên sau khi đăng nhập thành công và truy cập vào trang quản lý đơn hàng Post condition Hệ thống cập nhật tin đăng.

1 Quản trị viên chọn chức năng cập nhật trạng thái

2 Hệ thống hiển thị trạng thái có thể cập nhật

3 Quản trị viên chọn xác nhận cập nhật

Bảng 7: Đặc tả usecase quản lý đơn hàng của quản trị viên

Use case name Quản lý danh mục

Description Usecase cho phép quản trị viên thêm, sửa, xóa danh mục

Sau khi quản trị viên đăng nhập thành công và truy cập vào trang quản lý danh mục, hệ thống sẽ cập nhật danh sách danh mục một cách tự động.

1 Quản trị viên chọn chức năng cập nhật hoặc tạo mới

2 Hệ thống hiển thị form cập nhật hoặc tạo mới danh mục

3 Quản trị viên nhập đầy đủ thông tin danh mục

4 Quản trị viên nhấn nút thêm mới hoặc cập nhật danh mục

5 Hệ thống kiểm tra tính hợp lệ của danh mục

6 Hệ thống chuyển về trang hiển thị danh sách danh mục

7 Quản trị viên chọn chức năng xóa

8 Hệ thống xóa danh mục vừa chọn Exception

5a Hệ thống thông báo lỗi: “Không được bỏ trống trường dữ liệu”

8a Hệ thống thông báo lỗi: “Không thể xóa danh mục này”Bảng 8: Đặc tả usecase quản lý danh mục

Use case name Quản lý khách hàng

Description Usecase cho phép quản trị viên thêm, xóa, sửa khách hàng

Sau khi quản trị viên đăng nhập thành công và truy cập vào trang quản lý khách hàng, hệ thống sẽ tự động cập nhật danh sách khách hàng.

1 Quản trị viên chọn chức năng tạo mới người dùng

2 Hệ thống hiển thị form tạo mới người dùng

3 Quản trị viên nhập đầy đủ thông tin của người dùng

4 Quản trị viên nhấn nút thêm mới người dùng

5 Hệ thống kiểm tra email đã tồn tại hay chưa

6 Hệ thống chuyển về trang hiển thị danh sách người dùng

7 Quản trị viên chọn chức năng xóa người dùng

8 Hệ thống xóa người dùng khỏi hệ thống Exception 5a Hệ thống thông báo lỗi: “Email đã được sử dụng”

Bảng 9: Đặc tả usecase quản lý tài khoản

Use case name Quản lý đánh giá

Description Usecase cho phép quản trị viên xóa đánh giá

Sau khi quản trị viên đăng nhập thành công và truy cập vào trang quản lý đánh giá, hệ thống sẽ cập nhật danh sách đánh giá sản phẩm.

Flow 7 Quản trị viên chọn chức năng xóa đánh giá

8 Hệ thống xóa đánh giá vừa chọn

Bảng 10: Đặc tả usecase quản lý đánh giá

Use case name Quản lý sản phẩm

Description Usecase cho phép quản trị viên thêm, sửa, xóa sản phẩm

Sau khi quản trị viên đăng nhập thành công và truy cập vào trang quản lý sản phẩm, hệ thống sẽ tự động cập nhật danh sách sản phẩm.

1 Quản trị viên chọn chức năng cập nhật hoặc tạo mới

2 Hệ thống hiển thị form cập nhật hoặc tạo mới sản phẩm

3 Quản trị viên nhập đầy đủ thông tin của sản phẩm

4 Quản trị viên nhấn nút thêm mới hoặc cập nhật sản phẩm

5 Hệ thống kiểm tra tính hợp lệ của sản phẩm

6 Hệ thống chuyển về trang hiển thị danh sách sản phẩm

7 Quản trị viên chọn chức năng xóa

8 Hệ thống xóa sản phẩm vừa chọn Exception 5a Hệ thống thông báo lỗi: “Không được bỏ trống trường dữ liệu” xóa”

Bảng 11: Đặc tả usecase quản lý sản phẩm

Phân tích yêu cầu phi chức năng

2.3.1 Yêu cầu bảo mật Đối với những yêu cầu về bảo mật, đồ án sẽ tập trung vào hai hình thức chính đó là bảo mật theo sự phân quyền và bảo mật qua việc mã hóa mật khẩu khi người dùng đăng nhập.

Quản trị viên và người dùng sẽ có quyền truy cập vào các chức năng cơ bản tương ứng với vai trò của mình, đảm bảo rằng người dùng không thể sử dụng các chức năng của quản trị viên và ngược lại Tuy nhiên, trong một số trường hợp cụ thể, như quản lý thông tin tài khoản người dùng và thông tin đơn hàng, quản trị viên có thể truy cập các chức năng này để quản lý trang web hiệu quả và xử lý các yêu cầu của người dùng khi cần thiết.

An toàn bảo mật thông tin là yêu cầu quan trọng trên trang web này Người dùng cần thực hiện bước đăng nhập để bảo vệ thông tin cá nhân, ngăn chặn các cuộc tấn công mạng có thể đánh cắp dữ liệu hoặc xâm phạm trang web.

Trang web được thiết kế để phục vụ người sử dụng cơ bản, với các chức năng thiết yếu như xem sản phẩm, tìm kiếm, thêm sản phẩm vào giỏ hàng, quản lý giỏ hàng và đặt hàng Người dùng có thể dễ dàng truy cập và thực hiện các thao tác cần thiết Đối với quản trị viên, họ có trách nhiệm quản lý toàn bộ thông tin trên website, bao gồm quản lý tài khoản khách hàng, sản phẩm, danh mục, cũng như thống kê và đơn hàng.

Hệ thống sẽ được thiết kế dựa trên các yêu cầu về vận hành, bảo mật và chức năng đã được nêu Những chức năng cơ bản của hệ thống sẽ được trình bày chi tiết trong các phần tiếp theo của đồ án.

Trong hệ thống web hiện đại, thiết kế và phát triển cần chú trọng đến tính ổn định, khả năng mở rộng và hiệu quả xử lý Đồ án này áp dụng kiến trúc RESTful API để xây dựng backend với Spring Boot, kết hợp với JavaScript và framework Angular cho phát triển frontend, thay thế cho mô hình MVC truyền thống.

Hệ thống backend sẽ được thiết kế theo chuẩn RESTful API, đảm bảo tính phân tán và khả năng mở rộng, cho phép frontend và backend hoạt động độc lập, từ đó dễ dàng bảo trì và nâng cấp Để đáp ứng lượng truy cập lớn trên các trang web thương mại điện tử, hệ thống cần có khả năng chịu tải cao, xử lý nhanh chóng các request của khách hàng Việc tối ưu hóa tìm kiếm sản phẩm là rất quan trọng, đặc biệt khi người dùng yêu cầu tìm kiếm với nhiều tiêu chí phức tạp như lọc theo giá và danh mục sản phẩm Hệ thống sẽ xây dựng các chỉ mục tối ưu cho dữ liệu, giúp người dùng tìm kiếm nhanh chóng ngay cả khi khối lượng dữ liệu lớn.

Giao diện người dùng sẽ được xây dựng bằng html, css kết hợp với ngôn ngữ javascript dựa trên framework angular, một framework mạnh mẽ giúp tạo ra

Hệ thống cần đảm bảo khả năng chịu tải, xử lý hiệu quả các yêu cầu đồng thời từ nhiều người dùng.

Việc tối ưu hóa cơ sở dữ liệu sẽ được thực hiện để đảm bảo truy vấn nhanh chóng.

Spring Boot cung cấp các cơ chế quản lý kết nối, caching và xử lý bất đồng bộ, giúp tối ưu hóa hiệu suất ứng dụng khi phải xử lý lượng truy cập lớn.

AJAX và tương tác người dùng đóng vai trò quan trọng trong việc cải thiện trải nghiệm người dùng Tại phía frontend, các yêu cầu đến backend được thực hiện thông qua AJAX qua REST API, cho phép giao diện người dùng phản hồi nhanh chóng mà không cần tải lại toàn bộ trang Điều này mang lại sự mượt mà và hiệu quả cho người dùng.

Dự án này áp dụng kiến trúc RESTful API để đảm bảo tính linh hoạt và khả năng mở rộng, thay vì sử dụng mô hình MVC Hiệu suất backend được tối ưu hóa thông qua Spring Boot cùng với cơ sở dữ liệu được thiết kế hợp lý Để nâng cao trải nghiệm người dùng, dự án kết hợp Angular, AJAX và các kỹ thuật tải nội dung tiên tiến.

Phân tích biểu đồ lớp

Sau đây là chi tiết thông tin của các lớp

STT Tên lớp Mô tả

1 AppRole Lớp AppRole chứa tên các quyền trong hệ thống

2 Cart Chứa thông tin giỏ hàng của khách hàng

3 CartDetail Chứa danh sách sản phẩm trong giỏ hàng của khách hàng hàng

6 Notification Chứa các thông báo cho quản trị viên

7 Order Chứa danh sách đơn hàng của khách hàng

8 OrderDetail Chứa danh sách đơn hàng chi tiết

9 Product Chứa danh sách các sản phẩm sách

10 Rate Chứa danh sách nội dung bình luận của sản phẩm

11 User Chứa danh sách các tài khoản của hệ thống

Bảng 12: Mô tả các lớp trong hệ thống

Bảng thuộc tính lớp AppRole

Tên thuộc tính Ý nghĩa id Khóa chính name Tên quyền

Bảng 13: Bảng thuộc tính AppRole

Bảng thuộc tính lớp Category

Tên thuộc tính Ý nghĩa categoryId Khóa chính, tự động tăng khi thêm dữ liệu categoryName Tên danh mục

Bảng 14: Bảng thuộc tính lớp Category

Tên thuộc tính Ý nghĩa cartId Khóa chính, tự động tăng khi thêm dữ liệu

Amount Tổng tiền giỏ hàng address Địa chỉ phone Số điện thoại

Bảng 15: Bảng thuộc tính lớp Cart

Bảng thuộc tính lớp CartDetail

Tên thuộc tính Ý nghĩa cartDetailId Khóa chính, tự động tăng khi thêm dữ liệu quantity Số lượng price Giá tiền product Sản phẩm cart Giỏ hàng

Bảng 16: Bảng thuộc tính lớp CartDetail

Bảng thuộc tính lớp Favorite

Tên thuộc tính Ý nghĩa favoriteId Khóa chính, tự động tăng khi thêm dữ liệu user Tài khoản product Sản phẩm

Bảng 17: Bảng thuộc tính lớp Favorite

Tên thuộc tính Ý nghĩa id Khóa chính, tự động tăng khi thêm dữ liệu message Nội dung thông báo time Thời gian thông báo status Trạng thái thông báo

Bảng 18: Bảng thuộc tính lớp Notification

Bảng thuộc tính lớp Order

Các thuộc tính của đơn hàng bao gồm: ordersId là khóa chính và tự động tăng khi có dữ liệu mới; orderDate ghi lại ngày đặt hàng; amount thể hiện tổng tiền của đơn hàng; address là địa chỉ nhận hàng; phone là số điện thoại của người nhận; status cho biết trạng thái hiện tại của đơn hàng; và user là tài khoản khách hàng.

Bảng 19: Bảng thuộc tính lớp Order

Bảng thuộc tính lớp OrderDetail

Tên thuộc tính Ý nghĩa orderDetailId Khóa chính, tự động tăng khi thêm dữ liệu quantity Số lượng đặt price Giá tiền khi đặt product Sản phẩm order Đơn hàng

Bảng 20: Bảng thuộc tính lớp OrderDetail

Bảng thuộc tính lớp Product

The product attributes include a unique product ID that serves as the primary key and auto-increments with each data addition The product name identifies the item, while the quantity reflects the remaining stock The price indicates the cost of the product, and the discount shows any applicable reductions An image represents the product visually, accompanied by a description that provides further details The entered date marks when the product was created, and the status indicates its current condition Additionally, the sold attribute tracks the quantity sold, and the category classifies the product within a specific group.

Bảng 21: Bảng thuộc tính lớp Product

Bảng thuộc tính lớp Rate

Trong bài viết này, chúng ta sẽ khám phá các thuộc tính quan trọng trong cơ sở dữ liệu Đầu tiên, thuộc tính "id" được sử dụng làm khóa chính và tự động tăng khi có dữ liệu mới được thêm vào Tiếp theo, "rating" thể hiện đánh giá sao của người dùng, trong khi "comment" chứa nội dung bình luận của họ "rateDate" ghi lại ngày đánh giá, và cuối cùng, "orderDetail" cung cấp chi tiết về đơn hàng liên quan.

Bảng 22: Bảng thuộc tính lớp Rate

Bảng thuộc tính lớp User

The article outlines key attributes for user data management, including userId as the primary key that auto-increments with new entries, name for the user's full name, email for communication, password for account security, phone for contact information, address for location details, gender for personal identification, image for profile representation, registerDate for the account creation date, status to indicate account activity, token for login authentication, and roles to define user permissions.

Bảng 23: Bảng thuộc tính lớp User

Phân tích biểu đồ tuần tự

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

Hình 3: Sơ đồ tuần tự đăng ký tài khoản

2.5.2 Biểu đồ tuần tự đăng nhập

Hình 4: Sơ đồ tuần tự đăg nhập

2.5.3 Sơ đồ tuần tự đặt hàng

Hình 5: Sơ đồ tuần tự đặt hàng

2.5.4 Biểu đồ tuần tự thêm danh mục

2.5.6 Biểu đồ tuần tự xóa tài khoản

Hình 7: Biểu đồ tuần tự xóa tài khoản

2.5.8 Biểu đồ cập nhật trạng thái đơn hàng

Hình 8: Biểu đồ cập nhật trạng thái đơn hàng

2.5.9 Biểu đồ tuần tự thống kê doanh thu

2.5.10 Biểu đồ tuần tự tìm kiếm sản phẩm

Hình 10: Biểu đồ tuần tự tìm kiếm sản phẩm

2.5.11 Biểu đồ tuần tự xóa danh mục

Hình 11: Biểu đồ tuần tự xóa danh mục

2.5.12 Biểu đồ tuần tự hủy đơn hàng

Hình 12: Biểu đồ tuần tự hủy đơn hàng

Thiết kế hệ thống

Hình 13: Cơ sở dữ liệu hệ thống

Giải thích các mối quan hệ trong bảng

- Bảng app_roles với bảng users quan hệ n-n: 1 quyền có nhiều tài khoản, 1 tài khoản chỉ có nhiều quyền, bảng user_roles là bảng trung gian giữa 2 bảng

- Bảng favorite với bảng users quan hệ 1-n: 1 tài khoản có nhiều yêu thích, 1 yêu thích chỉ thuộc về 1 tài khoản

- Bảng users với bảng cart quan hệ 1-1: 1 tài khoản có 1 giỏ hàng, 1 giỏ hàng chỉ thuộc về 1 tài khoản

- Bảng carts với bảng cart_details quan hệ 1-n: 1 giỏ hàng có nhiều chi tiết, 1 chi tiết giỏ hàng chỉ thuộc về 1 giỏ hàng

- Bảng product với bảng favorite quan hệ 1-n: 1 sản phẩm có nhiều yêu thích, 1 yêu thích chỉ có 1 sản phẩm

- Bảng orders và bảng order_details quan hệ 1-n: 1 đơn hàng có nhiều chi tiết, 1 chi tiết đơn hàng chỉ thuộc về 1 đơn hàng

- Bảng category với bảng product quan hệ 1-n: 1 danh mục có nhiều sản phẩm, 1 sản phẩm chỉ thuộc 1 danh mục

- Bảng users và bảng rate quan hệ 1-n: 1 tài khoản có nhiều đánh giá, 1 đánh giá chỉ thuộc về 1 tài khoản

- Bảng product và bảng rate quan hệ 1-n: 1 sản phẩm có nhiều đánh giá, 1 đánh giá chỉ thuộc về 1 sản phẩm

- Bảng order_details và bảng rate quan hệ 1-n: 1 order_details có nhiều đánh giá,

1 đánh giá chỉ thuộc về 1 order_details

CÀI ĐẶT VÀ THỬ NGHIỆM HỆ THỐNG

Kiến trúc hệ thống và môi trường triển khai

Hệ thống được thiết kế theo kiến trúc Client-Server, sử dụng HTML, CSS và JavaScript cho phần frontend để phát triển giao diện người dùng, trong khi Spring Boot đảm nhận vai trò backend cung cấp các RESTful API Khi máy khách gửi yêu cầu HTTP đến máy chủ Spring Boot, máy chủ sẽ tiếp nhận và xử lý dữ liệu, sau đó trả kết quả về cho máy khách dưới dạng JSON hoặc các định dạng phù hợp khác Hệ thống hoạt động với một máy chủ backend duy nhất, có khả năng chấp nhận tất cả các yêu cầu hợp lệ từ máy khách, không phân biệt vị trí địa lý.

Server sẽ ghi dữ liệu vào database mysql và elasticsearch khi người dùng có yêu cầu thêm, sửa và xóa dữ liệu

Hình 14: kiến trúc tổng quát hệ thống

3.2.1 Môi trường triển khai ứng dụng

- Ngôn ngữ lập trình backend: java, framework spring boot

- Ngôn ngữ lập trình frontend: javascript, framework angular

- IDE: intellij, visual studio code

- Cơ sở dữ liệu: mysql chạy trên phpmyadmin và mysql workbench

Thử nghiệm và đánh giá

Trong phần Thử nghiệm và đánh giá, đồ án sẽ trình bày các giao diện dành cho người dùng chưa đăng nhập, người dùng đã đăng nhập và giao diện quản trị viên.

3.2.1 Giao diện cho người dùng chưa đăng nhập

Khi người dùng chưa đăng nhập, trang chủ sẽ hiển thị danh sách sản phẩm Khi nhấp vào một sản phẩm, màn hình chi tiết sẽ xuất hiện với các hình ảnh và giao diện khác nhau.

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

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

Hình 17: Giao diện thông tin bình luận

Hình 18: Giao diện tìm kiếm sản phẩm

Hình 19: Giao diện trang tin tức

Hình 20: Giao diện trang đăng nhập

Hình 21: Giao diện trang đăng ký tài khoản

3.2.2 Giao diện cho người dùng đã đăng nhập

Tại đây, người dùng có thể quản lý địa chỉ nhận hàng, đặt hàng, cập nhật mật khẩu, quản lý đơn hàng đã đặt

Hình 22: Giao diện quản lý địa chỉ

Hình 24: Giao diện đổi mật khẩu

Hình 25: Giao diện lịch đặt hàng

3.2.3 Giao diện cho quản trị viên

Quản trị viên có thể quản lý thêm sửa xóa danh mục, bài viết, quản lý tài khoản, sản phẩm, đơn hàng, doanh thu,….

Hình 26: Giao diện trang chủ admin

Hình 28: Giao diện quản lý tài khoản

Hình 29: Giao diện thêm tài khoản

Hình 30: Giao diện quản lý bài viết

Hình 31: Giao diện thêm bài viết

Hình 32: Giao diện quản lý danh mục

Hình 33: Giao diện quản lý sản phẩm

Hình 34: Giao diện quản lý banner

Hình 35: Giao diện quản lý đơn hàng

Hình 36: Giao diện quản lý nhập hàng

Hình 37: Giao diện quản lý khuyến mại

Ngày đăng: 14/03/2025, 17:41

w