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

Xây dựng website nhà sách

93 5 0

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

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Xây Dựng Website Nhà Sách
Tác giả Trương Trần Gia Hưng, Trần Hoàng Long
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 khóa luận tốt nghiệp
Năm xuất bản 2023
Thành phố Tp. Hồ Chí Minh
Định dạng
Số trang 93
Dung lượng 8,93 MB

Cấu trúc

  • Phần 1 MỞ ĐẦU (10)
    • 1.1. TÍNH CẤP THIẾT CỦA ĐỀ TÀI (6)
    • 1.2. MỤC ĐÍCH ĐỀ TÀI (10)
    • 1.3. PHÂN TÍCH NHỮNG CÔNG TRÌNH CÓ LIÊN QUAN (6)
    • 1.4. KẾT QUẢ DỰ KIẾN ĐẠT ĐƯỢC (0)
  • Phần 2 NỘI DUNG (12)
  • Chương 1: CƠ SỞ LÝ THUYẾT (12)
    • 1.1. JAVA (6)
    • 1.2. TYPESCRIPT (6)
    • 1.3. SPRING BOOT (6)
    • 1.4. ANGULAR (6)
  • Chương 2: PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG (14)
    • 2.1. CHỨC NĂNG HỆ THỐNG (6)
    • 2.2. THIẾT KẾ HỆ THỐNG (6)
      • 2.2.1. Đặc tả use case (15)
      • 2.2.2. Sơ đồ chức năng (use case diagram) (47)
      • 2.2.3. Sơ đồ class (48)
      • 2.2.4. Sơ đồ DFD (48)
      • 2.2.5. Sơ đồ ERD (49)
      • 2.2.6. Sơ đồ sequence (49)
  • Phần 3 KẾT LUẬN (61)
    • 3.1. KẾT QUẢ ĐẠT ĐƯỢC (61)
    • 3.2. ƯU ĐIỂM - NHƯỢC ĐIỂM (6)
    • 2.1. Ưu điểm (87)
    • 2.2. Nhược điểm (87)
    • 3.3. HƯỚNG PHÁT TRIỂN (7)
  • PHỤ LỤC (0)
    • 2.2.6.1. Sơ đồ Sequence Đăng nhập (49)
    • 2.2.6.2. Sơ đồ Sequence Đăng ký (50)
    • 2.2.6.3. Sơ đồ Sequence Tìm kiếm (50)
    • 2.2.6.4. Sơ đồ Sequence Thêm vào giỏ hàng (51)
    • 2.2.6.5. Sơ đồ Sequence Chi tiết sách (52)
    • 2.2.6.6. Sơ đồ Sequence Đặt hàng (53)
    • 2.2.6.7. Sơ đồ Sequence Đổi mật khẩu (53)
    • 2.2.6.8. Sơ đồ Sequence Xem lịch sử mua hàng (53)
    • 2.2.6.9. Sơ đồ Sequence Hủy đơn hàng (54)
    • 2.2.6.10. Sơ đồ Sequence Chỉnh sửa thông tin cá nhân (54)
    • 2.2.6.11. Sơ đồ Sequence Viết đánh giá cho sản phẩm đã nhận (54)
    • 2.2.6.12. Sơ đồ Sequence Thêm địa chỉ trong sổ địa chỉ (55)
    • 2.2.6.13. Sơ đồ Sequence Cập nhật địa chỉ trong sổ địa chỉ (55)
    • 2.2.6.14. Sơ đồ Sequence Thêm sách (55)
    • 2.2.6.15. Sơ đồ Sequence Cập nhật sách (56)
    • 2.2.6.16. Sơ đồ Sequence Xóa sách (56)
    • 2.2.6.17. Sơ đồ Sequence Thêm nhà xuất bản (57)
    • 2.2.6.18. Sơ đồ Sequence Cập nhật nhà xuất bản (57)
    • 2.2.6.19. Sơ đồ Sequence Xóa nhà xuất bản (58)
    • 2.2.6.20. Sơ đồ Sequence Phản hồi đánh giá sản phẩm (58)
    • 2.2.6.21. Sơ đồ Sequence Xác nhận đơn hàng (59)
    • 2.2.6.22. Sơ đồ Sequence Thêm tài khoản nhân viên (59)
    • 2.2.6.23. Sơ đồ Sequence Cập nhật tài khoản nhân viên (60)
    • 2.2.6.24. Sơ đồ Sequence Xóa tài khoản nhân viên (60)
    • 2.2.6.25. Sơ đồ Sequence Xem thống kê doanh thu (60)

Nội dung

CƠ SỞ LÝ THUYẾT

ANGULAR

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

[1] Trang web tham khảo 1: https://nhasachphuongnam.com/vi/

[2] Trang web tham khảo 2: https://www.fahasa.com/

[3] Trang web tham khảo 3: https://tiki.vn/

[4] Trang web tham khảo 4: https://shopee.vn/

[5] Tài liệu môn Thiết kế phần mềm hướng đối tượng

[6] Tài liệu môn kiểm thử phần mềm

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

1 20/2/2023 - 5/3/2023 Phân tích công trình có liên quan

2 6/3/2023 - 19/3/2023 Tìm hiểu cơ sở lý thuyết cần thiết cho đề tài

4 10/4/2023 - 2/7/2023 Xây dựng hệ thống

5 3/7/2023 - 9/7/2023 Kiểm thử toàn bộ hệ thống và chỉnh sửa hệ thống dựa theo kết quả kiểm thử

Kiểm thử lần cuối và chỉnh sửa lần cuối

Người viết đề cương Ý kiến của giáo viên hướng dẫn

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

PHIẾU NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN 1

PHIẾU NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN 2

LỜI CẢM ƠN 3 ĐỀ CƯƠNG LUẬN VĂN TỐT NGHIỆP 4

1.1 TÍNH CẤP THIẾT CỦA ĐỀ TÀI 8

1.3 PHÂN TÍCH NHỮNG CÔNG TRÌNH CÓ LIÊN QUAN 8

1.4 KẾT QUẢ DỰ KIẾN ĐẠT ĐƯỢC 8

Chương 1: CƠ SỞ LÝ THUYẾT 10

Chương 2: PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG 12

2.2.2 Sơ đồ chức năng (use case diagram) 45

DANH MỤC TÀI LIỆU THAM KHẢO 86

1.1 TÍNH CẤP THIẾT CỦA ĐỀ TÀI

Với sự phát triển mạnh mẽ của Việt Nam trong lĩnh vực công nghệ, việc ứng dụng công nghệ vào đời sống và kinh doanh ngày càng gia tăng Bán hàng online trở thành xu hướng phổ biến, mang lại tiện lợi và tiết kiệm thời gian cho người tiêu dùng Trong đó, sách đang trở thành một trong những sản phẩm được ưa chuộng nhất hiện nay.

Nhằm thúc đẩy văn hóa đọc và khuyến khích việc đọc sách, nhóm đã phát triển một website quản lý nhà sách, cho phép buôn bán sách trực tuyến Website này mang đến giao diện thân thiện, hỗ trợ nhân viên nhà sách trong việc quản lý và giúp khách hàng dễ dàng đặt mua sách.

1.3 PHÂN TÍCH NHỮNG CÔNG TRÌNH CÓ LIÊN QUAN

Qua việc thu thập và phân tích thông tin từ các trang web như nhasachphuongnam.com, fahasa.com, tiki.vn và shopee.vn, nhóm chúng tôi đã thu được nhiều dữ liệu hữu ích để hỗ trợ quá trình phát triển sản phẩm này.

Các trang web sách thường có giao diện hấp dẫn với banner quảng cáo cho các sách giảm giá và sách nổi bật Trang chủ được chia thành nhiều hạng mục như sách nổi bật, sách mới và sách được đánh giá cao, cùng với một tab riêng để phân loại sách theo thể loại.

Các trang web cung cấp nhiều tính năng hữu ích như tìm kiếm sách, xem chi tiết sản phẩm, thêm vào giỏ hàng, thực hiện mua hàng, đánh giá sản phẩm, kiểm tra lịch sử mua hàng, quản lý thông tin cá nhân và nhiều lựa chọn thanh toán linh hoạt.

Các tác vụ quản lý và thanh toán bao gồm quản lý sách, theo dõi đánh giá, xử lý đơn hàng và thống kê số lượng mua bán theo tháng và năm.

1.4 KẾT QUẢ DỰ KIẾN ĐẠT ĐƯỢC

Xây dựng một trang web với các chức năng cơ bản nhằm hỗ trợ người dùng khi truy cập vào nhà sách bao gồm: đăng nhập và đăng ký tài khoản, tìm kiếm sách, xem chi tiết thông tin sách, đánh giá sản phẩm, quản lý giỏ hàng, đặt hàng, và quản lý tài khoản cá nhân để xem và chỉnh sửa thông tin.

Quản lý đơn hàng bao gồm việc xem lịch sử đặt hàng, hủy đơn đặt hàng và theo dõi tình trạng đơn hàng Ngoài ra, người dùng có thể thêm sách yêu thích, quản lý sách, thay đổi mật khẩu và quản lý tài khoản cá nhân Hệ thống cũng cho phép người dùng quản lý đánh giá sách và thống kê doanh thu hiệu quả.

Chương 1: CƠ SỞ LÝ THUYẾT

Java là một ngôn ngữ lập trình bậc cao, hướng đối tượng, nổi bật với tính bảo mật mạnh mẽ và được xem như một nền tảng độc lập Được phát triển bởi Sun Microsystems dưới sự dẫn dắt của James Gosling và ra mắt vào năm 1995, Java hoạt động trên nhiều hệ điều hành như Windows, Mac và các phiên bản khác của UNIX Các đặc điểm nổi bật của Java bao gồm: hướng đối tượng, nền tảng độc lập, tính đơn giản, bảo mật, kiến trúc trung lập, khả năng di động, mạnh mẽ, thông dịch, hiệu năng cao, phân tán và năng động.

Java được sử dụng trong nhiều lĩnh vực khác nhau:

- Desktop App như media player, acrobat reader, antivirus,…

- Web App như javatpoint.com, irctc.co.in,…

- Enterprise App như một vài ứng dụng về xử lý các nghiệp vụ ngân hàng,…

- Thiết bị Mobile như các ứng dụng IOS hay Android

JavaScript là ngôn ngữ lập trình phổ biến cho việc tạo trang web tương tác, giúp website trở nên sống động khi được tích hợp vào HTML Nó thực hiện các Client-Side Script từ phía người dùng cũng như phía máy chủ (Node.js), góp phần tạo ra các trang web động.

TypeScript là một dự án mã nguồn mở do Microsoft phát triển, được xem là phiên bản nâng cao của JavaScript nhờ vào tính năng kiểu tĩnh và hỗ trợ lập trình hướng đối tượng Nó có thể được sử dụng để phát triển ứng dụng cho cả client-side (như Angular2) và server-side (như NodeJS).

TypeScript mang lại nhiều lợi ích vượt trội, bao gồm khả năng phát triển dự án lớn một cách dễ dàng, sự đa dạng trong lựa chọn framework, hỗ trợ các tính năng mới nhất của JavaScript, và đặc biệt là tính chất mã nguồn mở.

Spring Boot là một phần mở rộng của Spring Framework, giúp lập trình viên đơn giản hóa quá trình cấu hình phức tạp mà Spring yêu cầu Dự án này được phát triển bằng ngôn ngữ Java, nằm trong hệ sinh thái của Spring Framework.

Spring Framework là một framework mã nguồn mở dành cho nền tảng Java, nổi bật với kích thước nhỏ gọn và hiệu suất cao Nhờ vào sự nhẹ nhàng trong quá trình vận hành, Spring giúp việc phát triển ứng dụng web trở nên nhanh chóng và hiệu quả hơn.

Angular là một framework JavaScript do Google phát triển, chuyên dùng để xây dựng các ứng dụng đơn trang (SPA) bằng JavaScript, HTML và TypeScript Framework này cung cấp nhiều tính năng tích hợp như animation, dịch vụ HTTP, và các chức năng như auto-complete, navigation, toolbar, và menus Mã nguồn được viết bằng TypeScript sẽ được biên dịch thành JavaScript và hiển thị tương tự trong trình duyệt.

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

THIẾT KẾ HỆ THỐNG

[1] Trang web tham khảo 1: https://nhasachphuongnam.com/vi/

[2] Trang web tham khảo 2: https://www.fahasa.com/

[3] Trang web tham khảo 3: https://tiki.vn/

[4] Trang web tham khảo 4: https://shopee.vn/

[5] Tài liệu môn Thiết kế phần mềm hướng đối tượng

[6] Tài liệu môn kiểm thử phần mềm

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

1 20/2/2023 - 5/3/2023 Phân tích công trình có liên quan

2 6/3/2023 - 19/3/2023 Tìm hiểu cơ sở lý thuyết cần thiết cho đề tài

4 10/4/2023 - 2/7/2023 Xây dựng hệ thống

5 3/7/2023 - 9/7/2023 Kiểm thử toàn bộ hệ thống và chỉnh sửa hệ thống dựa theo kết quả kiểm thử

Kiểm thử lần cuối và chỉnh sửa lần cuối

Người viết đề cương Ý kiến của giáo viên hướng dẫn

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

PHIẾU NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN 1

PHIẾU NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN 2

LỜI CẢM ƠN 3 ĐỀ CƯƠNG LUẬN VĂN TỐT NGHIỆP 4

1.1 TÍNH CẤP THIẾT CỦA ĐỀ TÀI 8

1.3 PHÂN TÍCH NHỮNG CÔNG TRÌNH CÓ LIÊN QUAN 8

1.4 KẾT QUẢ DỰ KIẾN ĐẠT ĐƯỢC 8

Chương 1: CƠ SỞ LÝ THUYẾT 10

Chương 2: PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG 12

2.2.2 Sơ đồ chức năng (use case diagram) 45

DANH MỤC TÀI LIỆU THAM KHẢO 86

1.1 TÍNH CẤP THIẾT CỦA ĐỀ TÀI

Với sự phát triển nhanh chóng của Việt Nam trong lĩnh vực công nghệ, việc ứng dụng công nghệ vào cuộc sống ngày càng trở nên phổ biến, đặc biệt trong kinh doanh Bán hàng online đã trở thành xu hướng chủ đạo cho các cửa hàng, mang lại tiện lợi và tiết kiệm thời gian cũng như chi phí cho người tiêu dùng Trong đó, sách là một trong những mặt hàng được ưa chuộng nhất hiện nay.

Nhằm thúc đẩy văn hóa đọc và khuyến khích việc đọc sách, nhóm đã phát triển một website quản trị nhà sách, cho phép buôn bán sách trực tuyến Website này mang đến giao diện thân thiện, hỗ trợ nhân viên nhà sách trong việc quản lý và giúp khách hàng dễ dàng đặt mua sách.

1.3 PHÂN TÍCH NHỮNG CÔNG TRÌNH CÓ LIÊN QUAN

Qua việc thu thập và phân tích thông tin từ các trang web như nhasachphuongnam.com, fahasa.com, tiki.vn và shopee.vn, nhóm chúng tôi đã thu được nhiều dữ liệu quý giá để hỗ trợ cho quá trình phát triển sản phẩm này.

Các trang web sách thường hiển thị banner quảng cáo cho các sách giảm giá và sách nổi bật được ưa chuộng Trang chủ được phân chia thành các hạng mục như sách nổi bật, sách mới và sách được đánh giá cao, bên cạnh đó còn có tab riêng để phân loại sách theo thể loại.

Các trang web cung cấp nhiều tính năng hữu ích như tìm kiếm sách, xem chi tiết sản phẩm, thêm sách vào giỏ hàng, thực hiện giao dịch mua hàng, đánh giá sản phẩm, theo dõi lịch sử mua hàng và quản lý thông tin cá nhân, cùng với nhiều lựa chọn thanh toán linh hoạt.

Quản lý và thanh toán bao gồm các tác vụ quan trọng như quản lý sách, đánh giá sản phẩm, theo dõi đơn hàng và thống kê số lượng mua bán theo tháng và năm.

1.4 KẾT QUẢ DỰ KIẾN ĐẠT ĐƯỢC

Xây dựng một trang web với các chức năng cơ bản nhằm hỗ trợ người dùng khi truy cập vào nhà sách, bao gồm các tính năng như đăng nhập, đăng ký, tìm kiếm sách, xem chi tiết sách, đánh giá sản phẩm, giỏ hàng, đặt hàng và quản lý tài khoản cá nhân để người dùng có thể xem và chỉnh sửa thông tin của mình.

Quản lý đơn hàng, theo dõi lịch sử đặt hàng và hủy đơn, thêm sách yêu thích, đổi mật khẩu, cùng với việc quản lý sách, tài khoản và đánh giá là những chức năng quan trọng Ngoài ra, thống kê doanh thu cũng là một yếu tố cần thiết để nắm bắt hiệu quả kinh doanh.

Chương 1: CƠ SỞ LÝ THUYẾT

Java là một ngôn ngữ lập trình bậc cao, hướng đối tượng, nổi bật với khả năng bảo mật mạnh mẽ và được coi là một nền tảng độc lập Được phát triển bởi Sun Microsystems dưới sự dẫn dắt của James Gosling, Java ra mắt vào năm 1995 và hoạt động trên nhiều hệ điều hành như Windows, Mac và các phiên bản khác của UNIX Những đặc điểm nổi bật của Java bao gồm tính hướng đối tượng, tính độc lập với nền tảng, sự đơn giản, bảo mật, kiến trúc trung lập, khả năng di động, tính mạnh mẽ, phương thức thông dịch, hiệu suất cao, khả năng phân tán và sự năng động.

Java được sử dụng trong nhiều lĩnh vực khác nhau:

- Desktop App như media player, acrobat reader, antivirus,…

- Web App như javatpoint.com, irctc.co.in,…

- Enterprise App như một vài ứng dụng về xử lý các nghiệp vụ ngân hàng,…

- Thiết bị Mobile như các ứng dụng IOS hay Android

JavaScript là ngôn ngữ lập trình phổ biến cho việc phát triển các trang web tương tác, được tích hợp vào HTML để tăng tính sống động cho website Nó thực hiện vai trò quan trọng trong việc chạy các script phía Client-Side và Server-Side (Node.js), giúp tạo ra các trang web động và cải thiện trải nghiệm người dùng.

TypeScript là một dự án mã nguồn mở do Microsoft phát triển, được xem như phiên bản nâng cao của JavaScript nhờ vào việc bổ sung kiểu tĩnh và lớp hướng đối tượng Nó có thể được sử dụng để phát triển ứng dụng cho cả client-side (như Angular2) và server-side (như NodeJS).

TypeScript mang lại nhiều lợi ích nổi bật, bao gồm khả năng phát triển dễ dàng cho các dự án lớn, sự đa dạng trong lựa chọn framework, hỗ trợ các tính năng mới nhất của JavaScript và tính chất mã nguồn mở.

Spring Boot là một phần mở rộng của Spring Framework, giúp lập trình viên đơn giản hóa quy trình cấu hình phức tạp mà Spring yêu cầu Được phát triển bằng ngôn ngữ Java, Spring Boot thuộc hệ sinh thái Spring framework, mang lại sự tiện lợi và hiệu quả cho việc xây dựng ứng dụng.

Spring Framework là một framework mã nguồn mở cho nền tảng Java, nổi bật với kích thước nhỏ gọn và hiệu suất cao Nhờ vào tính năng nhẹ và trong suốt trong quá trình chạy, Spring giúp việc phát triển ứng dụng web trở nên dễ dàng và hiệu quả hơn.

Angular là một framework JavaScript do Google phát triển, chuyên dùng để xây dựng các ứng dụng Single Page Application (SPA) bằng JavaScript, HTML và TypeScript Framework này cung cấp nhiều tính năng tích hợp như animation, dịch vụ HTTP, cùng với các chức năng như auto-complete, điều hướng, thanh công cụ và menu Mã nguồn được viết bằng TypeScript sẽ được biên dịch thành JavaScript và hiển thị tương tự trong trình duyệt.

Chương 2: PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG

Bảng Chức năng hệ thống

Khách 1 Xem chi tiết sách

2 Tìm kiếm và lọc sách theo tiêu chí

Khách hàng 1 Xem chi tiết sách

2 Tìm kiếm và lọc sách theo tiêu chí

6 Xem lịch sử mua hàng

8 Chỉnh sửa thông tin giỏ hàng (thêm sách, thay đổi số lượng sách mua, loại bỏ sách khỏi giỏ hàng)

9 Chỉnh sửa thông tin đặt hàng (chỉnh sửa địa chỉ giao hàng, thông tin người nhận hàng, phương thức thanh toán)

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

12 Viết đánh giá cho sản phẩm

13 Thêm sách vào mục sách yêu thích

14 Quản lý sổ địa chỉ

Nhân viên 1 Đăng nhập tài khoản

3 Thêm, xem chi tiết, xóa, cập nhật thông tin sách

4 Thêm, xóa, cập nhật thông tin nhà xuất bản

5 Xem, phản hồi, xóa đánh giá sản phẩm

6 Xem, cập nhật trạng thái đơn hàng

Admin 1 Đăng nhập tài khoản

3 Xóa, cập nhật tài khoản khách hàng

4 Thêm, xóa, cập nhật tài khoản nhân viên

5 Thêm, xóa, cập nhật tài khoản admin

6 Xem thống kê doanh thu nhà sách

Bảng đặc tả use case Đăng nhập

Use Case Name Đăng nhập

Description Được sử dụng khi người dùng muốn sử dụng một số dịch vụ từ trang web Actor(s) Khách hàng, nhân viên, admin

Trigger Người dùng muốn đăng nhập vào trang web

Pre-Condition(s) - Tài khoản người dùng đã được tạo sẵn

- Tài khoản người dùng đã được phân quyền

- Thiết bị của người dùng đã được kết nối internet khi thực hiện đăng nhập

- Người dùng đã truy cập trang chủ của trang web

Post-Condition(s) - Người dùng đăng nhập trang web thành công

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

Basic Flow 1 Người dùng chọn nút Đăng nhập trên header

2 Hệ thống chuyển hướng sang trang đăng nhập

3 Người dùng nhập tên tài khoản, mật khẩu và chọn nút đăng nhập

4 Hệ thống xác thực thông tin đăng nhập thành công và cho phép người dùng sử dụng thêm một số tính năng

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

Alternative Flow 3a Người dùng chọn đăng nhập bằng google và thực hiện đăng nhập vào tài khoản google

Exception Flow 4a Hệ thống xác thực thông tin đăng nhập không thành công và hiển thị thông báo

4a1 Người dùng chọn quay về trang chủ

4a2 Người dùng chọn nút đăng ký Use Case tiếp tục Use Case HNL_002

NFR1.1-1: Mật khẩu của người dùng phải được hash bằng MD5

NFR1.1-2: Email được nhập phải theo đúng định dạng email NFR1.1-3: Các ô email, mật khẩu không được để trống

Bảng đặc tả use case Đăng ký

Use Case Name Đăng ký

Description Được sử dụng khi người dùng muốn tạo tài khoản để sử dụng các dịch vụ của trang web

Trigger Người dùng muốn tạo tài khoản

Pre-Condition(s) - Thiết bị của người dùng đã được kết nối internet khi thực hiện đăng nhập

- Người dùng đã truy cập trang chủ của trang web Post-Condition(s) - Người dùng tạo tài khoản thành công

- Trang web hiện thông báo đăng ký thành công

Basic Flow 1 Người dùng chọn nút Đăng nhập trên header

2 Hệ thống chuyển hướng sang trang đăng nhập

3 Người dùng chọn nút Đăng ký

4 Hệ thống chuyển hướng sang trang Đăng ký

5 Người dùng nhập thông tin tài khoản và chọn nút đăng ký

6 Hệ thống xác thực thông tin thành công

7 Hệ thống tạo tài khoản thành công

8 Hệ thống hiện thông báo đăng ký thành công

9 Hệ thống chuyển hướng sang trang Đăng nhập Alternative Flow

Exception Flow 6a Hệ thống xác thực thông tin đăng ký không thành công và hiển thị thông báo

6a1 Người dùng chọn quay về trang chủ

6a2 Người dùng chọn nút đăng nhập Use Case tiếp tục Use Case HNL_001 ở bước 3

NFR1.2-1: Mật khẩu của người dùng phải được hash bằng MD5

NFR1.2-2: Số điện thoại được nhập phải theo đúng định dạng: chỉ gồm 10 số

NFR1.2-3: Email được nhập phải theo đúng định dạng email NFR1.2-4: Các ô email, mật khẩu, số điện thoại, họ, tên không được để trống

NFR1.2-5: Email được nhập không được trùng với email của tài khoản đã tồn tại trong cơ sở dữ liệu

Bảng đặc tả use case Thêm tài khoản admin

Use Case Name Thêm tài khoản admin

Description Được sử dụng khi muốn thêm tài khoản admin cho hệ thống

Trigger Admin muốn thêm tài khoản admin

Pre-Condition(s) - Admin đã đăng nhập vào trang quản lý tài khoản

- Thiết bị của admin đã được kết nối internet khi thực hiện đăng nhập

Post-Condition(s) - Tài khoản admin mới được thêm vào

- Hệ thống hiện thông báo thêm tài khoản thành công

Basic Flow 1 Admin chọn tab quản lý tài khoản admin

2 Hệ thống chuyển hướng đến trang quản lý admin

3 Admin chọn nút “Thêm admin”

4 Hệ thống hiện ra form thêm tài khoản

5 Admin nhập thông tin tài khoản admin và chọn nút “Thêm”

6 Hệ thống xác thực thông tin tài khoản

7 Hệ thống hiện thông báo thêm thành công Alternative Flow

Exception Flow 6a Hệ thống xác thực thông tin tài khoản không hợp lệ và hiển thị thông báo

NFR1.1-1: Mật khẩu của tài khoản admin phải được hash bằng MD5

Bảng đặc tả usecase Thêm tài khoản nhân viên

Use Case Name Thêm tài khoản nhân viên

Description Được sử dụng khi muốn thêm tài khoản nhân viên cho hệ thống

Trigger Admin muốn thêm tài khoản nhân viên

Pre-Condition(s) - Admin đã đăng nhập vào trang quản lý tài khoản

- Thiết bị của admin đã được kết nối internet khi thực hiện đăng nhập

Post-Condition(s) - Tài khoản nhân viên mới được thêm vào

- Hệ thống hiện thông báo thêm tài khoản thành công

Basic Flow 1 Admin chọn tab quản lý tài khoản nhân viên

2 Hệ thống chuyển hướng đến trang quản lý nhân viên

3 Admin chọn nút “Thêm nhân viên”

4 Hệ thống hiện ra form thêm tài khoản

5 Admin nhập thông tin tài khoản nhân viên và chọn nút

6 Hệ thống xác thực thông tin tài khoản

7 Hệ thống hiện thông báo thêm thành công Alternative Flow

Exception Flow 6a Hệ thống xác thực thông tin tài khoản không hợp lệ và hiển thị thông báo

NFR1.1-1: Mật khẩu của tài khoản nhân viên phải được hash bằng MD5

Bảng đặc tả use case Thêm hàng vào giỏ

Use Case Name Thêm hàng vào giỏ

Description Được sử dụng khi người dùng muốn thêm sản phẩm vào giỏ hàng

Trigger Người dùng muốn thêm hàng của giỏ

Pre-Condition(s) - Người dùng đã đăng nhập thành công và được chuyển hướng đến trang chủ

- Thiết bị của người dùng đã được kết nối internet khi thực hiện đăng nhập

Post-Condition(s) - Người dùng thêm hàng vào giỏ thành công

- Trang web hiện thông báo thêm hàng vào giỏ thành công

Basic Flow 1 Người dùng chọn 1 sản phẩm mình muốn thêm vào giỏ hàng trên trang chủ

2 Người dùng nhập số lượng sản phẩm cần thêm vào giỏ vào ô nhập số lượng

3 Người dùng chọn nút Thêm vào giỏ hàng

4 Sản phẩm được thêm vào giỏ hàng của người dùng thành công

5 Hệ thống hiện thông báo Thêm hàng vào giỏ thành công Alternative Flow 2a Tăng số lượng sản phẩm thêm vào giỏ bằng nút +

2b Giảm số lượng sản phẩm thêm vào giỏ bằng nút -

Exception Flow 4a Hệ thống thêm sản phẩm vào giỏ hàng của người dùng thất bại do số lượng sản phẩm không hợp lệ 4a1 Người dùng quay lại trang chủ

Business Rules BR1.1-1 Số lượng sản phẩm thêm vào giỏ phải là số nguyên

KẾT LUẬN

ƯU ĐIỂM - NHƯỢC ĐIỂM

[1] Trang web tham khảo 1: https://nhasachphuongnam.com/vi/

[2] Trang web tham khảo 2: https://www.fahasa.com/

[3] Trang web tham khảo 3: https://tiki.vn/

[4] Trang web tham khảo 4: https://shopee.vn/

[5] Tài liệu môn Thiết kế phần mềm hướng đối tượng

[6] Tài liệu môn kiểm thử phần mềm

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

1 20/2/2023 - 5/3/2023 Phân tích công trình có liên quan

2 6/3/2023 - 19/3/2023 Tìm hiểu cơ sở lý thuyết cần thiết cho đề tài

4 10/4/2023 - 2/7/2023 Xây dựng hệ thống

5 3/7/2023 - 9/7/2023 Kiểm thử toàn bộ hệ thống và chỉnh sửa hệ thống dựa theo kết quả kiểm thử

Kiểm thử lần cuối và chỉnh sửa lần cuối

Người viết đề cương Ý kiến của giáo viên hướng dẫn

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

PHIẾU NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN 1

PHIẾU NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN 2

LỜI CẢM ƠN 3 ĐỀ CƯƠNG LUẬN VĂN TỐT NGHIỆP 4

1.1 TÍNH CẤP THIẾT CỦA ĐỀ TÀI 8

1.3 PHÂN TÍCH NHỮNG CÔNG TRÌNH CÓ LIÊN QUAN 8

1.4 KẾT QUẢ DỰ KIẾN ĐẠT ĐƯỢC 8

Chương 1: CƠ SỞ LÝ THUYẾT 10

Chương 2: PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG 12

2.2.2 Sơ đồ chức năng (use case diagram) 45

DANH MỤC TÀI LIỆU THAM KHẢO 86

1.1 TÍNH CẤP THIẾT CỦA ĐỀ TÀI

Với sự phát triển mạnh mẽ của Việt Nam trong lĩnh vực công nghệ, việc ứng dụng công nghệ vào đời sống và kinh doanh ngày càng trở nên phổ biến Bán hàng online đã trở thành xu hướng chủ đạo cho các cửa hàng, mang lại sự tiện lợi và tiết kiệm thời gian cũng như chi phí cho người tiêu dùng Trong số các sản phẩm được ưa chuộng, sách đang chiếm ưu thế trong thị trường bán hàng trực tuyến hiện nay.

Nhằm khuyến khích văn hóa đọc và thúc đẩy việc đọc sách, nhóm đã phát triển một website quản trị nhà sách, cho phép buôn bán sách trực tuyến Website này cung cấp giao diện thân thiện, hỗ trợ nhân viên nhà sách trong việc quản lý và giúp khách hàng dễ dàng đặt mua sách.

1.3 PHÂN TÍCH NHỮNG CÔNG TRÌNH CÓ LIÊN QUAN

Qua việc thu thập và phân tích thông tin từ các trang web như nhasachphuongnam.com, fahasa.com, tiki.vn và shopee.vn, nhóm chúng tôi đã thu được nhiều dữ liệu hữu ích để hỗ trợ cho quá trình phát triển sản phẩm này.

Các trang web sách thường nổi bật với banner quảng cáo cho các sách giảm giá và sách bán chạy Trang chủ được tổ chức rõ ràng với các danh mục như sách nổi bật, sách mới và sách được đánh giá cao, cùng với một tab riêng để phân loại sách theo thể loại.

Các trang web cung cấp nhiều tính năng hữu ích, bao gồm khả năng tìm kiếm sách, xem chi tiết sản phẩm, thêm sách vào giỏ hàng và thực hiện mua hàng Người dùng cũng có thể đánh giá sản phẩm, xem lịch sử mua hàng và quản lý thông tin cá nhân, cùng với nhiều lựa chọn thanh toán linh hoạt.

Quản lý và thanh toán hiệu quả bao gồm các tác vụ như quản lý sách, đánh giá sản phẩm, theo dõi đơn hàng và thống kê số lượng mua bán hàng tháng, hàng năm.

1.4 KẾT QUẢ DỰ KIẾN ĐẠT ĐƯỢC

Xây dựng một trang web với các chức năng cơ bản nhằm hỗ trợ người dùng khi truy cập nhà sách trực tuyến, bao gồm tính năng đăng nhập, đăng ký, tìm kiếm sách, xem chi tiết sách, đánh giá sản phẩm, giỏ hàng, đặt hàng và quản lý tài khoản cá nhân để người dùng có thể xem và chỉnh sửa thông tin của mình.

Quản lý đơn hàng bao gồm các chức năng như xem lịch sử đặt hàng, hủy đơn, thêm sách yêu thích, và đổi mật khẩu Bên cạnh đó, người dùng cũng có thể quản lý sách, tài khoản, và đánh giá sản phẩm, cùng với việc theo dõi thống kê doanh thu hiệu quả.

Chương 1: CƠ SỞ LÝ THUYẾT

Java là một ngôn ngữ lập trình bậc cao, hướng đối tượng, nổi bật với khả năng bảo mật mạnh mẽ và được xem như một nền tảng Được phát triển bởi Sun Microsystems dưới sự dẫn dắt của James Gosling và ra mắt vào năm 1995, Java tương thích với nhiều hệ điều hành như Windows, Mac và các phiên bản khác nhau của UNIX Các đặc điểm nổi bật của Java bao gồm tính hướng đối tượng, nền tảng độc lập, đơn giản, bảo mật, kiến trúc trung lập, khả năng di động, tính mạnh mẽ, thông dịch, hiệu năng cao, khả năng phân tán và tính năng năng động.

Java được sử dụng trong nhiều lĩnh vực khác nhau:

- Desktop App như media player, acrobat reader, antivirus,…

- Web App như javatpoint.com, irctc.co.in,…

- Enterprise App như một vài ứng dụng về xử lý các nghiệp vụ ngân hàng,…

- Thiết bị Mobile như các ứng dụng IOS hay Android

JavaScript là ngôn ngữ lập trình phổ biến cho việc tạo trang web tương tác, giúp làm cho website trở nên sống động hơn khi được tích hợp vào HTML Với vai trò là một phần quan trọng của trang web, JavaScript thực thi các script từ phía người dùng và máy chủ (Node.js), tạo ra những trang web động và hấp dẫn.

TypeScript là một dự án mã nguồn mở do Microsoft phát triển, được xem là phiên bản nâng cao của JavaScript nhờ vào tính năng kiểu tĩnh và hỗ trợ lập trình hướng đối tượng Nó có thể được sử dụng để phát triển các ứng dụng chạy trên client-side như Angular2 và server-side như NodeJS.

TypeScript mang lại nhiều lợi ích, bao gồm khả năng phát triển dự án lớn một cách dễ dàng, đa dạng framework để lựa chọn, hỗ trợ các tính năng mới nhất của JavaScript, và đặc biệt là mã nguồn mở.

Spring Boot là một phần mở rộng của Spring Framework, giúp lập trình viên đơn giản hóa quá trình cấu hình phức tạp mà Spring yêu cầu Dự án này được phát triển bằng ngôn ngữ Java trong hệ sinh thái của Spring Framework.

Spring Framework là một framework mã nguồn mở cho nền tảng Java, mang lại hiệu suất cao cho việc phát triển ứng dụng web Với kích thước nhỏ gọn và nhẹ, Spring giúp tối ưu hóa quá trình chạy ứng dụng, từ đó nâng cao hiệu quả phát triển.

Angular là một framework JavaScript do Google phát triển, giúp xây dựng các ứng dụng đơn trang (SPA) bằng JavaScript, HTML và TypeScript Framework này cung cấp nhiều tính năng tích hợp như animation, dịch vụ HTTP, và các thành phần giao diện như auto-complete, navigation, toolbar và menus Mã nguồn được viết bằng TypeScript sẽ được biên dịch thành JavaScript và hiển thị tương tự trong trình duyệt.

Chương 2: PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG

Bảng Chức năng hệ thống

Khách 1 Xem chi tiết sách

2 Tìm kiếm và lọc sách theo tiêu chí

Khách hàng 1 Xem chi tiết sách

2 Tìm kiếm và lọc sách theo tiêu chí

6 Xem lịch sử mua hàng

8 Chỉnh sửa thông tin giỏ hàng (thêm sách, thay đổi số lượng sách mua, loại bỏ sách khỏi giỏ hàng)

9 Chỉnh sửa thông tin đặt hàng (chỉnh sửa địa chỉ giao hàng, thông tin người nhận hàng, phương thức thanh toán)

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

12 Viết đánh giá cho sản phẩm

13 Thêm sách vào mục sách yêu thích

14 Quản lý sổ địa chỉ

Nhân viên 1 Đăng nhập tài khoản

3 Thêm, xem chi tiết, xóa, cập nhật thông tin sách

4 Thêm, xóa, cập nhật thông tin nhà xuất bản

5 Xem, phản hồi, xóa đánh giá sản phẩm

6 Xem, cập nhật trạng thái đơn hàng

Admin 1 Đăng nhập tài khoản

3 Xóa, cập nhật tài khoản khách hàng

4 Thêm, xóa, cập nhật tài khoản nhân viên

5 Thêm, xóa, cập nhật tài khoản admin

6 Xem thống kê doanh thu nhà sách

Bảng đặc tả use case Đăng nhập

Use Case Name Đăng nhập

Description Được sử dụng khi người dùng muốn sử dụng một số dịch vụ từ trang web Actor(s) Khách hàng, nhân viên, admin

Trigger Người dùng muốn đăng nhập vào trang web

Pre-Condition(s) - Tài khoản người dùng đã được tạo sẵn

- Tài khoản người dùng đã được phân quyền

- Thiết bị của người dùng đã được kết nối internet khi thực hiện đăng nhập

- Người dùng đã truy cập trang chủ của trang web

Post-Condition(s) - Người dùng đăng nhập trang web thành công

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

Basic Flow 1 Người dùng chọn nút Đăng nhập trên header

2 Hệ thống chuyển hướng sang trang đăng nhập

3 Người dùng nhập tên tài khoản, mật khẩu và chọn nút đăng nhập

4 Hệ thống xác thực thông tin đăng nhập thành công và cho phép người dùng sử dụng thêm một số tính năng

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

Alternative Flow 3a Người dùng chọn đăng nhập bằng google và thực hiện đăng nhập vào tài khoản google

Exception Flow 4a Hệ thống xác thực thông tin đăng nhập không thành công và hiển thị thông báo

4a1 Người dùng chọn quay về trang chủ

4a2 Người dùng chọn nút đăng ký Use Case tiếp tục Use Case HNL_002

NFR1.1-1: Mật khẩu của người dùng phải được hash bằng MD5

NFR1.1-2: Email được nhập phải theo đúng định dạng email NFR1.1-3: Các ô email, mật khẩu không được để trống

Bảng đặc tả use case Đăng ký

Use Case Name Đăng ký

Description Được sử dụng khi người dùng muốn tạo tài khoản để sử dụng các dịch vụ của trang web

Trigger Người dùng muốn tạo tài khoản

Pre-Condition(s) - Thiết bị của người dùng đã được kết nối internet khi thực hiện đăng nhập

- Người dùng đã truy cập trang chủ của trang web Post-Condition(s) - Người dùng tạo tài khoản thành công

- Trang web hiện thông báo đăng ký thành công

Basic Flow 1 Người dùng chọn nút Đăng nhập trên header

2 Hệ thống chuyển hướng sang trang đăng nhập

3 Người dùng chọn nút Đăng ký

4 Hệ thống chuyển hướng sang trang Đăng ký

5 Người dùng nhập thông tin tài khoản và chọn nút đăng ký

6 Hệ thống xác thực thông tin thành công

7 Hệ thống tạo tài khoản thành công

8 Hệ thống hiện thông báo đăng ký thành công

9 Hệ thống chuyển hướng sang trang Đăng nhập Alternative Flow

Exception Flow 6a Hệ thống xác thực thông tin đăng ký không thành công và hiển thị thông báo

6a1 Người dùng chọn quay về trang chủ

6a2 Người dùng chọn nút đăng nhập Use Case tiếp tục Use Case HNL_001 ở bước 3

NFR1.2-1: Mật khẩu của người dùng phải được hash bằng MD5

NFR1.2-2: Số điện thoại được nhập phải theo đúng định dạng: chỉ gồm 10 số

NFR1.2-3: Email được nhập phải theo đúng định dạng email NFR1.2-4: Các ô email, mật khẩu, số điện thoại, họ, tên không được để trống

NFR1.2-5: Email được nhập không được trùng với email của tài khoản đã tồn tại trong cơ sở dữ liệu

Bảng đặc tả use case Thêm tài khoản admin

Use Case Name Thêm tài khoản admin

Description Được sử dụng khi muốn thêm tài khoản admin cho hệ thống

Trigger Admin muốn thêm tài khoản admin

Pre-Condition(s) - Admin đã đăng nhập vào trang quản lý tài khoản

- Thiết bị của admin đã được kết nối internet khi thực hiện đăng nhập

Post-Condition(s) - Tài khoản admin mới được thêm vào

- Hệ thống hiện thông báo thêm tài khoản thành công

Basic Flow 1 Admin chọn tab quản lý tài khoản admin

2 Hệ thống chuyển hướng đến trang quản lý admin

3 Admin chọn nút “Thêm admin”

4 Hệ thống hiện ra form thêm tài khoản

5 Admin nhập thông tin tài khoản admin và chọn nút “Thêm”

6 Hệ thống xác thực thông tin tài khoản

7 Hệ thống hiện thông báo thêm thành công Alternative Flow

Exception Flow 6a Hệ thống xác thực thông tin tài khoản không hợp lệ và hiển thị thông báo

NFR1.1-1: Mật khẩu của tài khoản admin phải được hash bằng MD5

Bảng đặc tả usecase Thêm tài khoản nhân viên

Use Case Name Thêm tài khoản nhân viên

Description Được sử dụng khi muốn thêm tài khoản nhân viên cho hệ thống

Trigger Admin muốn thêm tài khoản nhân viên

Pre-Condition(s) - Admin đã đăng nhập vào trang quản lý tài khoản

- Thiết bị của admin đã được kết nối internet khi thực hiện đăng nhập

Post-Condition(s) - Tài khoản nhân viên mới được thêm vào

- Hệ thống hiện thông báo thêm tài khoản thành công

Basic Flow 1 Admin chọn tab quản lý tài khoản nhân viên

2 Hệ thống chuyển hướng đến trang quản lý nhân viên

3 Admin chọn nút “Thêm nhân viên”

4 Hệ thống hiện ra form thêm tài khoản

5 Admin nhập thông tin tài khoản nhân viên và chọn nút

6 Hệ thống xác thực thông tin tài khoản

7 Hệ thống hiện thông báo thêm thành công Alternative Flow

Exception Flow 6a Hệ thống xác thực thông tin tài khoản không hợp lệ và hiển thị thông báo

NFR1.1-1: Mật khẩu của tài khoản nhân viên phải được hash bằng MD5

Bảng đặc tả use case Thêm hàng vào giỏ

Use Case Name Thêm hàng vào giỏ

Description Được sử dụng khi người dùng muốn thêm sản phẩm vào giỏ hàng

Trigger Người dùng muốn thêm hàng của giỏ

Pre-Condition(s) - Người dùng đã đăng nhập thành công và được chuyển hướng đến trang chủ

- Thiết bị của người dùng đã được kết nối internet khi thực hiện đăng nhập

Post-Condition(s) - Người dùng thêm hàng vào giỏ thành công

- Trang web hiện thông báo thêm hàng vào giỏ thành công

Basic Flow 1 Người dùng chọn 1 sản phẩm mình muốn thêm vào giỏ hàng trên trang chủ

2 Người dùng nhập số lượng sản phẩm cần thêm vào giỏ vào ô nhập số lượng

3 Người dùng chọn nút Thêm vào giỏ hàng

4 Sản phẩm được thêm vào giỏ hàng của người dùng thành công

5 Hệ thống hiện thông báo Thêm hàng vào giỏ thành công Alternative Flow 2a Tăng số lượng sản phẩm thêm vào giỏ bằng nút +

2b Giảm số lượng sản phẩm thêm vào giỏ bằng nút -

Exception Flow 4a Hệ thống thêm sản phẩm vào giỏ hàng của người dùng thất bại do số lượng sản phẩm không hợp lệ 4a1 Người dùng quay lại trang chủ

Business Rules BR1.1-1 Số lượng sản phẩm thêm vào giỏ phải là số nguyên

Ưu điểm

Trang web cung cấp đầy đủ các chức năng cần thiết cho khách hàng, bao gồm xem thông tin sản phẩm, tìm kiếm và lọc sản phẩm, quản lý giỏ hàng, đặt hàng, xem lịch sử đơn hàng, hủy đơn hàng, xem thông tin cá nhân, đổi mật khẩu, cũng như thêm và xem danh sách sách yêu thích.

Trang web hỗ trợ nhân viên trong việc quản lý và thống kê nhà sách, bao gồm các chức năng như quản lý sách, quản lý nhà xuất bản, quản lý đơn hàng, quản lý đánh giá sách và quản lý tài khoản.

Áp dụng công nghệ hiện đại như Spring Boot và Angular, bài viết này nhấn mạnh việc sử dụng kiến thức từ môn thiết kế phần mềm hướng đối tượng và kiểm thử phần mềm vào sản phẩm Ngoài ra, ứng dụng API của Giao hàng nhanh (GHN) được tích hợp để tính phí vận chuyển và dự kiến ngày giao hàng.

Có chức năng xuất file excel thống kê

Có thể đăng nhập bằng tài khoản google

Có thể thanh toán bằng Momo.

HƯỚNG PHÁT TRIỂN

[1] Trang web tham khảo 1: https://nhasachphuongnam.com/vi/

[2] Trang web tham khảo 2: https://www.fahasa.com/

[3] Trang web tham khảo 3: https://tiki.vn/

[4] Trang web tham khảo 4: https://shopee.vn/

[5] Tài liệu môn Thiết kế phần mềm hướng đối tượng

[6] Tài liệu môn kiểm thử phần mềm

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

1 20/2/2023 - 5/3/2023 Phân tích công trình có liên quan

2 6/3/2023 - 19/3/2023 Tìm hiểu cơ sở lý thuyết cần thiết cho đề tài

4 10/4/2023 - 2/7/2023 Xây dựng hệ thống

5 3/7/2023 - 9/7/2023 Kiểm thử toàn bộ hệ thống và chỉnh sửa hệ thống dựa theo kết quả kiểm thử

Kiểm thử lần cuối và chỉnh sửa lần cuối

Người viết đề cương Ý kiến của giáo viên hướng dẫn

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

PHIẾU NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN 1

PHIẾU NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN 2

LỜI CẢM ƠN 3 ĐỀ CƯƠNG LUẬN VĂN TỐT NGHIỆP 4

1.1 TÍNH CẤP THIẾT CỦA ĐỀ TÀI 8

1.3 PHÂN TÍCH NHỮNG CÔNG TRÌNH CÓ LIÊN QUAN 8

1.4 KẾT QUẢ DỰ KIẾN ĐẠT ĐƯỢC 8

Chương 1: CƠ SỞ LÝ THUYẾT 10

Chương 2: PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG 12

2.2.2 Sơ đồ chức năng (use case diagram) 45

DANH MỤC TÀI LIỆU THAM KHẢO 86

1.1 TÍNH CẤP THIẾT CỦA ĐỀ TÀI

Với sự phát triển nhanh chóng của Việt Nam trong những năm gần đây, đặc biệt trong lĩnh vực công nghệ, việc ứng dụng công nghệ vào đời sống và kinh doanh ngày càng gia tăng Bán hàng online đã trở thành xu hướng phổ biến cho các cửa hàng, mang lại tiện lợi, tiết kiệm thời gian và chi phí cho người tiêu dùng Trong đó, sách đang trở thành một thể loại được ưa chuộng hiện nay.

Nhằm thúc đẩy văn hóa đọc và khuyến khích việc đọc sách, nhóm đã phát triển một website quản trị nhà sách phục vụ cho việc buôn bán sách trực tuyến Website này mang đến giao diện thân thiện, giúp nhân viên nhà sách quản lý hiệu quả và hỗ trợ khách hàng trong việc đặt mua sách một cách dễ dàng.

1.3 PHÂN TÍCH NHỮNG CÔNG TRÌNH CÓ LIÊN QUAN

Qua việc thu thập và phân tích thông tin từ các trang web như nhasachphuongnam.com, fahasa.com, tiki.vn và shopee.vn, nhóm chúng tôi đã thu được nhiều dữ liệu hữu ích để hỗ trợ cho quá trình phát triển sản phẩm này.

Các trang web sách thường có giao diện hấp dẫn với banner quảng cáo cho các sách giảm giá và sách nổi bật Trang chủ được tổ chức rõ ràng, chia thành các hạng mục như sách nổi bật, sách mới và sách được đánh giá cao Ngoài ra, còn có một tab riêng để phân loại sách theo thể loại, giúp người dùng dễ dàng tìm kiếm.

Các trang web cung cấp nhiều tính năng hữu ích như tìm kiếm sách, xem chi tiết sản phẩm, thêm vào giỏ hàng và thực hiện giao dịch mua hàng Người dùng có thể đánh giá sản phẩm, xem lịch sử mua hàng và quản lý thông tin cá nhân Ngoài ra, các trang cũng hỗ trợ nhiều lựa chọn thanh toán linh hoạt để đáp ứng nhu cầu của khách hàng.

Quản lý và thanh toán bao gồm nhiều tác vụ quan trọng như quản lý sách, theo dõi đánh giá, quản lý đơn hàng, và thống kê số lượng mua bán theo tháng và năm.

1.4 KẾT QUẢ DỰ KIẾN ĐẠT ĐƯỢC

Xây dựng một trang web nhà sách với các chức năng cơ bản như đăng nhập, đăng ký, tìm kiếm sách, xem chi tiết sách, đánh giá sản phẩm, giỏ hàng, đặt hàng và quản lý tài khoản cá nhân sẽ hỗ trợ người dùng tối ưu trong việc mua sắm trực tuyến.

Quản lý đơn hàng, theo dõi lịch sử đặt hàng và hủy đơn, thêm sách yêu thích, đổi mật khẩu, quản lý sách, tài khoản và đánh giá, cùng với thống kê doanh thu là những chức năng quan trọng trong hệ thống.

Chương 1: CƠ SỞ LÝ THUYẾT

Java là một ngôn ngữ lập trình bậc cao, hướng đối tượng với khả năng bảo mật mạnh mẽ, đồng thời được coi là một nền tảng độc lập Được phát triển bởi Sun Microsystems dưới sự dẫn dắt của James Gosling và ra mắt vào năm 1995, Java có thể hoạt động trên nhiều hệ điều hành như Windows, Mac và các phiên bản khác nhau của UNIX Các đặc điểm nổi bật của Java bao gồm tính hướng đối tượng, nền tảng độc lập, sự đơn giản, bảo mật, kiến trúc trung lập, khả năng di động, tính mạnh mẽ, khả năng thông dịch, hiệu suất cao, tính phân tán và sự năng động.

Java được sử dụng trong nhiều lĩnh vực khác nhau:

- Desktop App như media player, acrobat reader, antivirus,…

- Web App như javatpoint.com, irctc.co.in,…

- Enterprise App như một vài ứng dụng về xử lý các nghiệp vụ ngân hàng,…

- Thiết bị Mobile như các ứng dụng IOS hay Android

JavaScript là ngôn ngữ lập trình phổ biến cho việc tạo trang web tương tác, được tích hợp vào HTML để tăng tính năng động cho website Nó thực hiện các script phía client và server (Node.js), giúp tạo ra các trang web động.

TypeScript là một dự án mã nguồn mở do Microsoft phát triển, được xem như phiên bản nâng cao của JavaScript nhờ vào việc bổ sung kiểu tĩnh và lớp hướng đối tượng Ngôn ngữ này có thể được sử dụng để phát triển các ứng dụng chạy trên client-side, như Angular2, cũng như server-side với NodeJS.

TypeScript mang lại nhiều lợi ích, bao gồm khả năng phát triển dự án lớn một cách dễ dàng, sự đa dạng trong lựa chọn framework, hỗ trợ đầy đủ các tính năng mới nhất của JavaScript, và đặc biệt là tính chất mã nguồn mở.

Spring Boot là một phần mở rộng của Spring Framework, giúp lập trình viên loại bỏ các bước cấu hình phức tạp mà Spring yêu cầu Dự án này được phát triển bằng ngôn ngữ Java trong hệ sinh thái của Spring Framework.

Spring Framework là một framework ứng dụng mã nguồn mở cho nền tảng Java, nổi bật với kích thước nhỏ gọn và hiệu suất cao Nhờ vào tính nhẹ và trong suốt, Spring giúp tối ưu hóa quá trình phát triển ứng dụng web, mang lại trải nghiệm tốt hơn cho lập trình viên.

Angular là một framework JavaScript do Google phát triển, chuyên dùng để xây dựng các ứng dụng Single Page Application (SPA) bằng JavaScript, HTML và TypeScript Framework này tích hợp nhiều tính năng hữu ích như animation, dịch vụ HTTP, và các chức năng như tự động hoàn thành, điều hướng, thanh công cụ và menu Mã nguồn được viết bằng TypeScript sẽ được biên dịch thành JavaScript và hiển thị tương tự trong trình duyệt.

Chương 2: PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG

Bảng Chức năng hệ thống

Khách 1 Xem chi tiết sách

2 Tìm kiếm và lọc sách theo tiêu chí

Khách hàng 1 Xem chi tiết sách

2 Tìm kiếm và lọc sách theo tiêu chí

6 Xem lịch sử mua hàng

8 Chỉnh sửa thông tin giỏ hàng (thêm sách, thay đổi số lượng sách mua, loại bỏ sách khỏi giỏ hàng)

9 Chỉnh sửa thông tin đặt hàng (chỉnh sửa địa chỉ giao hàng, thông tin người nhận hàng, phương thức thanh toán)

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

12 Viết đánh giá cho sản phẩm

13 Thêm sách vào mục sách yêu thích

14 Quản lý sổ địa chỉ

Nhân viên 1 Đăng nhập tài khoản

3 Thêm, xem chi tiết, xóa, cập nhật thông tin sách

4 Thêm, xóa, cập nhật thông tin nhà xuất bản

5 Xem, phản hồi, xóa đánh giá sản phẩm

6 Xem, cập nhật trạng thái đơn hàng

Admin 1 Đăng nhập tài khoản

3 Xóa, cập nhật tài khoản khách hàng

4 Thêm, xóa, cập nhật tài khoản nhân viên

5 Thêm, xóa, cập nhật tài khoản admin

6 Xem thống kê doanh thu nhà sách

Bảng đặc tả use case Đăng nhập

Use Case Name Đăng nhập

Description Được sử dụng khi người dùng muốn sử dụng một số dịch vụ từ trang web Actor(s) Khách hàng, nhân viên, admin

Trigger Người dùng muốn đăng nhập vào trang web

Pre-Condition(s) - Tài khoản người dùng đã được tạo sẵn

- Tài khoản người dùng đã được phân quyền

- Thiết bị của người dùng đã được kết nối internet khi thực hiện đăng nhập

- Người dùng đã truy cập trang chủ của trang web

Post-Condition(s) - Người dùng đăng nhập trang web thành công

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

Basic Flow 1 Người dùng chọn nút Đăng nhập trên header

2 Hệ thống chuyển hướng sang trang đăng nhập

3 Người dùng nhập tên tài khoản, mật khẩu và chọn nút đăng nhập

4 Hệ thống xác thực thông tin đăng nhập thành công và cho phép người dùng sử dụng thêm một số tính năng

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

Alternative Flow 3a Người dùng chọn đăng nhập bằng google và thực hiện đăng nhập vào tài khoản google

Exception Flow 4a Hệ thống xác thực thông tin đăng nhập không thành công và hiển thị thông báo

4a1 Người dùng chọn quay về trang chủ

4a2 Người dùng chọn nút đăng ký Use Case tiếp tục Use Case HNL_002

NFR1.1-1: Mật khẩu của người dùng phải được hash bằng MD5

NFR1.1-2: Email được nhập phải theo đúng định dạng email NFR1.1-3: Các ô email, mật khẩu không được để trống

Bảng đặc tả use case Đăng ký

Use Case Name Đăng ký

Description Được sử dụng khi người dùng muốn tạo tài khoản để sử dụng các dịch vụ của trang web

Trigger Người dùng muốn tạo tài khoản

Pre-Condition(s) - Thiết bị của người dùng đã được kết nối internet khi thực hiện đăng nhập

- Người dùng đã truy cập trang chủ của trang web Post-Condition(s) - Người dùng tạo tài khoản thành công

- Trang web hiện thông báo đăng ký thành công

Basic Flow 1 Người dùng chọn nút Đăng nhập trên header

2 Hệ thống chuyển hướng sang trang đăng nhập

3 Người dùng chọn nút Đăng ký

4 Hệ thống chuyển hướng sang trang Đăng ký

5 Người dùng nhập thông tin tài khoản và chọn nút đăng ký

6 Hệ thống xác thực thông tin thành công

7 Hệ thống tạo tài khoản thành công

8 Hệ thống hiện thông báo đăng ký thành công

9 Hệ thống chuyển hướng sang trang Đăng nhập Alternative Flow

Exception Flow 6a Hệ thống xác thực thông tin đăng ký không thành công và hiển thị thông báo

6a1 Người dùng chọn quay về trang chủ

6a2 Người dùng chọn nút đăng nhập Use Case tiếp tục Use Case HNL_001 ở bước 3

NFR1.2-1: Mật khẩu của người dùng phải được hash bằng MD5

NFR1.2-2: Số điện thoại được nhập phải theo đúng định dạng: chỉ gồm 10 số

NFR1.2-3: Email được nhập phải theo đúng định dạng email NFR1.2-4: Các ô email, mật khẩu, số điện thoại, họ, tên không được để trống

NFR1.2-5: Email được nhập không được trùng với email của tài khoản đã tồn tại trong cơ sở dữ liệu

Bảng đặc tả use case Thêm tài khoản admin

Use Case Name Thêm tài khoản admin

Description Được sử dụng khi muốn thêm tài khoản admin cho hệ thống

Trigger Admin muốn thêm tài khoản admin

Pre-Condition(s) - Admin đã đăng nhập vào trang quản lý tài khoản

- Thiết bị của admin đã được kết nối internet khi thực hiện đăng nhập

Post-Condition(s) - Tài khoản admin mới được thêm vào

- Hệ thống hiện thông báo thêm tài khoản thành công

Basic Flow 1 Admin chọn tab quản lý tài khoản admin

2 Hệ thống chuyển hướng đến trang quản lý admin

3 Admin chọn nút “Thêm admin”

4 Hệ thống hiện ra form thêm tài khoản

5 Admin nhập thông tin tài khoản admin và chọn nút “Thêm”

6 Hệ thống xác thực thông tin tài khoản

7 Hệ thống hiện thông báo thêm thành công Alternative Flow

Exception Flow 6a Hệ thống xác thực thông tin tài khoản không hợp lệ và hiển thị thông báo

NFR1.1-1: Mật khẩu của tài khoản admin phải được hash bằng MD5

Bảng đặc tả usecase Thêm tài khoản nhân viên

Use Case Name Thêm tài khoản nhân viên

Description Được sử dụng khi muốn thêm tài khoản nhân viên cho hệ thống

Trigger Admin muốn thêm tài khoản nhân viên

Pre-Condition(s) - Admin đã đăng nhập vào trang quản lý tài khoản

- Thiết bị của admin đã được kết nối internet khi thực hiện đăng nhập

Post-Condition(s) - Tài khoản nhân viên mới được thêm vào

- Hệ thống hiện thông báo thêm tài khoản thành công

Basic Flow 1 Admin chọn tab quản lý tài khoản nhân viên

2 Hệ thống chuyển hướng đến trang quản lý nhân viên

3 Admin chọn nút “Thêm nhân viên”

4 Hệ thống hiện ra form thêm tài khoản

5 Admin nhập thông tin tài khoản nhân viên và chọn nút

6 Hệ thống xác thực thông tin tài khoản

7 Hệ thống hiện thông báo thêm thành công Alternative Flow

Exception Flow 6a Hệ thống xác thực thông tin tài khoản không hợp lệ và hiển thị thông báo

NFR1.1-1: Mật khẩu của tài khoản nhân viên phải được hash bằng MD5

Bảng đặc tả use case Thêm hàng vào giỏ

Use Case Name Thêm hàng vào giỏ

Description Được sử dụng khi người dùng muốn thêm sản phẩm vào giỏ hàng

Trigger Người dùng muốn thêm hàng của giỏ

Pre-Condition(s) - Người dùng đã đăng nhập thành công và được chuyển hướng đến trang chủ

- Thiết bị của người dùng đã được kết nối internet khi thực hiện đăng nhập

Post-Condition(s) - Người dùng thêm hàng vào giỏ thành công

- Trang web hiện thông báo thêm hàng vào giỏ thành công

Basic Flow 1 Người dùng chọn 1 sản phẩm mình muốn thêm vào giỏ hàng trên trang chủ

2 Người dùng nhập số lượng sản phẩm cần thêm vào giỏ vào ô nhập số lượng

3 Người dùng chọn nút Thêm vào giỏ hàng

4 Sản phẩm được thêm vào giỏ hàng của người dùng thành công

5 Hệ thống hiện thông báo Thêm hàng vào giỏ thành công Alternative Flow 2a Tăng số lượng sản phẩm thêm vào giỏ bằng nút +

2b Giảm số lượng sản phẩm thêm vào giỏ bằng nút -

Exception Flow 4a Hệ thống thêm sản phẩm vào giỏ hàng của người dùng thất bại do số lượng sản phẩm không hợp lệ 4a1 Người dùng quay lại trang chủ

Business Rules BR1.1-1 Số lượng sản phẩm thêm vào giỏ phải là số nguyên

Ngày đăng: 05/12/2023, 10:00

w