Tải bản đầy đủ (.pdf) (87 trang)

Báo cáo phân tích thiết kế hệ thống xây dựng hệ thống bán thiết bị di động (đầy đủ)

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (4.03 MB, 87 trang )

<span class="text_page_counter">Trang 1</span><div class="page_container" data-page="1">

<b>HỌC VIỆN KỸ THUẬT MẬT MÃ </b>

<b>KHOA CƠNG NGHỆ THƠNG TIN VÀ AN TỒN THƠNG TIN </b>

<b>BÁO CÁO MƠN HỌC </b>

<b>PHÂN TÍCH THIẾT KẾ HỆ THỐNG </b>

<b>PHÂN TÍCH THIẾT KẾ HỆ THỐNG BÁN THIẾT BỊ DI ĐỘNG TRỰC TUYẾN </b>

GIẢNG VIÊN HƯỚNG DẪN: NGUYỄN MINH ĐẾ SINH VIÊN THỰC HIỆN:

TRẦN NGUYỄN ĐẮC LÃM – CT06N0130 ĐOÀN ANH KIỆT – CT06N0128

<i>TP. HCM, tháng 4/2024 </i>

</div><span class="text_page_counter">Trang 2</span><div class="page_container" data-page="2">

<b>2. PHÁT BIỂU BÀI TOÁN ... 8 </b>

<b>3. PHƯƠNG PHÁP NGHIÊN CỨU ... 9 </b>

<b>CHƯƠNG 2: KIẾN THỨC CƠ SỞ ... 10 </b>

<b>1. CÁC BIỂU ĐỒ UML ... 10 </b>

1.1. Sơ đồ Use Case (Use Case Diagram) ... 10

1.2. Sơ đồ lớp (Class Diagram) ... 10

1.3. Biểu đồ tuần tự (Sequence Diagram) ... 10

1.4. Biểu đồ trạng thái (State Chart Diagram) ... 10

1.5. Biểu đồ cộng tác (Collaboration Diagram) ... 11

1.6. Biểu đồ hoạt động (Activity Diagram) ... 11

1.7. Biểu đồ thành phần (Component Diagram) ... 11

1.8. Biểu đồ triển khai (Deployment Diagram) ... 11

<b>2. THIẾT KẾ CƠ SỞ DỮ LIỆU CHO HỆ THỐNG ... 12 </b>

2.1. Sơ đồ ERD của hệ thống ... 12

2.2. Các bảng thuộc tính của hệ thống ... 12

<b>CHƯƠNG 3: PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG ... 19 </b>

<b>1. YÊU CẦU PHẦN MỀM ... 19 </b>

1.1. Yêu cầu chức năng ... 19

1.2. Yêu cầu phi chức năng ... 19

<b>2. BIỂU ĐỒ USE CASE & ĐẶC TẢ (USE CASE DIAGRAM) ... 20 </b>

2.1. BIỂU ĐỒ USE CASE ... 20

2.2. MÔ TẢ ACTORS & USE CASE ... 23

2.3. ĐẶC TẢ USE CASE ... 24

<b>3. BIỂU ĐỒ LỚP (CLASS DIAGRAM) ... 35 </b>

3.1. BIỂU ĐỒ CLASS TỔNG QUÁT ... 35

</div><span class="text_page_counter">Trang 3</span><div class="page_container" data-page="3">

3.2. PHÂN TÍCH ... 36

3.3. TRIỂN KHAI LỚP CHỨC NĂNG ... 41

<b>4. BIỂU ĐỒ TUẦN TỰ (SEQUENCE DIAGRAM) ... 48 </b>

4.1. BIỂU ĐỒ TUẦN TỰ CHO CÁC CHỨC NĂNG CỦA NGƯỜI DÙNG ... 48

4.2. BIỂU ĐỒ TUẦN TỰ CHO CHỨC NĂNG CỦA NGƯỜI QUẢN TRỊ ... 56

<b>5. BIỂU ĐỒ CỘNG TÁC (COLLABORATION DIAGRAM) ... 60 </b>

5.1. BIỂU ĐỒ CỘNG TÁC CHO CÁC CHỨC NĂNG CỦA NGƯỜI DÙNG ... 60

5.2. BIỂU ĐỒ CỘNG TÁC CHO CÁC CHỨC NĂNG CỦA NGƯỜI QUẢN TRỊ ... 64

<b>6. BIỂU ĐỒ TRẠNG THÁI (STATE MACHINE DIAGRAM) ... 68 </b>

6.1. BIỂU ĐỒ STATE TỔNG QUÁT ... 68

6.2. BIỂU ĐỒ TRẠNG THÁI PHÂN RÃ ... 69

<b>7. BIỂU ĐỒ HOẠT ĐỘNG (ACTIVITY DIAGRAM) ... 72 </b>

7.1. BIỂU ĐỒ HOẠT ĐỘNG CHO CÁC CHỨC NĂNG CỦA KHÁCH HÀNG ... 72

7.2. BIỂU ĐỒ HOẠT ĐỘNG CHO CÁC CHỨC NĂNG CỦA QUẢN TRỊ VIÊN ... 79

<b>8. BIỂU ĐỒ THÀNH PHẦN (COMPONENT DIAGRAM) ... 85 </b>

8.1. BIỂU ĐỒ THÀNH PHẦN TỔNG QUÁT ... 85

8.2. BIỂU ĐỒ THÀNH PHẦN PHÂN RÃ ... 85

<b>9. BIỂU ĐỒ TRIỂN KHAI (DEPLOYMENT DIAGRAM) ... 86 </b>

9.1. BIỂU ĐỒ TRIỂN KHAI TỔNG THỂ ... 86

<b>CHƯƠNG 4: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN ... 87 </b>

<b>1. KẾT QUẢ ĐẠT ĐƯỢC ... 87 </b>

<b>2. HẠN CHẾ CỦA ĐỀ TÀI ... 87 </b>

<b>3. HƯỚNG PHÁT TRIỂN CỦA ĐỀ TÀI ... 87 </b>

</div><span class="text_page_counter">Trang 4</span><div class="page_container" data-page="4">

<b>LỜI CẢM ƠN </b>

Nhóm đề tài xin chân thành cảm ơn khoa Công nghệ thông tin và An tồn thơng tin Học viện Kỹ thuật Mật mã đã tạo điều kiện tốt cho nhóm đề tài thực hiện tốt đề tài báo cáo này. Nhóm đề tài xin chân thành cảm ơn quý thầy cô trong khoa Cơng nghệ thơng tin và An tồn thơng tin đã tận tình giảng dạy, trang bị cho nhóm những kiến thức quý báu trong những năm học qua, giúp nhóm có một nền tảng kiến thức vững chắc để hoàn thành đề tài này. Đặc biệt nhóm đề tài xin chân thành cám ơn sự nhiệt tình hướng dẫn và đóng góp ý kiến của thầy

<b>Nguyễn Minh Đế đã giúp nhóm đề tài hồn thành tốt báo cáo này. </b>

Mặc dù nhóm đề tài đã cố gắng hoàn thành báo cáo trong phạm vi và khả năng cho phép nhưng chắc chắn vẫn khơng tránh khỏi những thiếu sót. Nhóm đề tài kính mong nhận được sự thơng cảm và tận tình đóng góp ý kiến của q thầy cơ và các bạn.

<i>Nhóm đề tài xin chân thành cảm ơn! </i>

</div><span class="text_page_counter">Trang 5</span><div class="page_container" data-page="5">

<b>DANH SÁCH HÌNH </b>

<i>Hình 1. Sơ đồ ERD của hệ thống ... 12 </i>

<i>Hình 2. Biểu đồ Use Case tổng quát ... 20 </i>

<i>Hình 3. Biểu đồ Use Case đăng ký tài khoản ... 20 </i>

<i>Hình 4. Biểu đồ Use Case đăng nhập ... 21 </i>

<i>Hình 5.Biểu đồ Use Case thanh tốn ... 21 </i>

<i>Hình 6. Biểu đồ Use Case quản lý doanh thu ... 22 </i>

<i>Hình 7. Biểu đồ class tổng quát ... 35 </i>

<i>Hình 8. Biểu đồ class Product ... 36 </i>

<i>Hình 9. Biểu đồ class OTP ... 36 </i>

<i>Hình 10. Biểu đồ class User ... 37 </i>

<i>Hình 11. Biểu đồ class Order ... 38 </i>

<i>Hình 12. Biểu đồ class Oauth ... 38 </i>

<i>Hình 13. Biểu đồ class Category ... 39 </i>

<i>Hình 14. Biểu đồ class Cart ... 39 </i>

<i>Hình 15. Biểu đồ PayPal class ... 40 </i>

<i>Hình 16. Biểu đồ class Payment ... 40 </i>

<i>Hình 17. Biểu đồ lớp đăng ký tài khoản khách hàng ... 41 </i>

<i>Hình 18. Biểu đồ lớp đăng nhập tài khoản ... 41 </i>

<i>Hình 19. Biểu đồ lớp khơi phục mật khẩu ... 42 </i>

<i>Hình 20. Biểu đồ lớp tìm kiếm sản phẩm ... 42 </i>

<i>Hình 21. Biểu đồ lớp thêm sản phẩm vào giỏ hàng ... 43 </i>

<i>Hình 22. Biểu đồ lớp tạo đơn hàng ... 43 </i>

<i>Hình 23. Biểu đồ lớp thanh tốn đơn hàng ... 44 </i>

<i>Hình 24. Biểu đồ lớp quản lý sản phẩm ... 44 </i>

<i>Hình 25. Biểu đồ lớp quản lý danh mục sản phẩm ... 45 </i>

<i>Hình 26. Biểu đồ lớp quản lý thơng tin khách hàng ... 45 </i>

<i>Hình 27. Biểu đồ lớp quản lý đơn hàng ... 46 </i>

<i>Hình 28. Biểu đồ lớp quản lý doanh thu ... 46 </i>

<i>Hình 29. Biểu đồ lớp quản lý hóa đơn ... 47 </i>

<i>Hình 30. Biểu đồ Sequence chức năng đăng ký tài khoản khách hàng ... 48 </i>

<i>Hình 31. Biểu đồ Sequence cho chức năng đăng nhập ... 49 </i>

<i>Hình 32. Biểu đồ Sequence cho chức năng xác thực bằng Google ... 50 </i>

<i>Hình 33. Biểu đồ Sequence cho chức năng khơi phục mật khẩu ... 51 </i>

<i>Hình 34. Biểu đồ Sequence cho chức năng tìm kiếm sản phẩm ... 52 </i>

<i>Hình 35. Biểu đồ Sequence cho chức năng thêm sản phẩm vào giỏ hàng ... 53 </i>

<i>Hình 36. Biểu đồ Sequence cho chức năng tạo đơn hàng ... 54 </i>

<i>Hình 37. Biểu đồ Sequence cho chức năng thanh toán online với Paypal ... 55 </i>

<i>Hình 38. Biểu đồ Sequence cho chức năng tạo sản phẩm ... 56 </i>

<i>Hình 39. Biểu đồ Sequence cho chức năng sửa sản phẩm ... 56 </i>

<i>Hình 40. Biểu đồ Sequence cho chức năng xóa sản phẩm ... 57 </i>

<i>Hình 41. Biểu đồ Sequence cho chức năng thêm danh mục sản phẩm ... 57 </i>

<i>Hình 42. Biểu đồ Sequence cho chức năng cập nhật danh mục sản phẩm ... 58 </i>

</div><span class="text_page_counter">Trang 6</span><div class="page_container" data-page="6">

<i>Hình 43. Biểu đồ Sequence cho chức năng xóa danh mục sản phẩm ... 58 </i>

<i>Hình 44. Biểu đồ Sequence cho chức năng cập nhật thơng tin khách hàng ... 59 </i>

<i>Hình 45. Biểu đồ cộng tác cho chức năng đăng ký user ... 60 </i>

<i>Hình 46. Biểu đồ cộng tác chức năng đăng nhập ... 60 </i>

<i>Hình 47. Biểu đồ cộng tác chức năng xác thực với Google ... 61 </i>

<i>Hình 48. Biểu đồ cộng tác chức năng khôi phục mật khẩu ... 61 </i>

<i>Hình 49. Biểu đồ cộng tác chức năng tìm kiếm sản phẩm ... 62 </i>

<i>Hình 50. Biểu đồ cộng tác chức năng thêm sản phẩm vào giỏ hàng ... 62 </i>

<i>Hình 51. Biểu đồ cộng tác chức năng tạo đơn hàng ... 63 </i>

<i>Hình 52. Biểu đồ cộng tác chức năng tạo thanh tốn ... 63 </i>

<i>Hình 58. Biểu đồ cộng tác xóa danh mục sản phẩm ... 66 </i>

<i>Hình 59. Biểu đồ cộng tác cập nhật thơng tin khách hàng ... 67 </i>

<i>Hình 60. Biểu đồ trạng thái tổng quát cho khách hàng ... 68 </i>

<i>Hình 61. Biểu đồ trạng thái tổng quát cho quản trị viên ... 69 </i>

<i>Hình 62. Biểu đồ trạng thái cho chức năng đăng ký khách hàng ... 69 </i>

<i>Hình 63. Biểu đồ trạng thái cho chức năng đăng nhập ... 70 </i>

<i>Hình 64. Biểu đồ trạng thái cho chức năng xác thực với Google ... 70 </i>

<i>Hình 65. Biểu đồ trạng thái cho chức năng khôi phục mật khẩu ... 70 </i>

<i>Hình 66. Biểu đồ trạng thái thêm sản phẩm vào giỏ hàng ... 71 </i>

<i>Hình 67. Biểu đồ trạng thái thủ tục mua hàng ... 71 </i>

<i>Hình 68. Biểu đồ hoạt động đăng ký tài khoản... 72 </i>

<i>Hình 69. Biểu đồ hoạt động đăng nhập ... 73 </i>

<i>Hình 70. Biểu đồ hoạt động xác thực tài khoản thông qua Google ... 74 </i>

<i>Hình 71. Biểu đồ hoạt động khơi phục mật khẩu ... 75 </i>

<i>Hình 72. Biểu đồ hoạt động tìm kiếm sản phẩm ... 76 </i>

<i>Hình 73. Biểu đồ hoạt động thêm sản phẩm vào giỏ hàng ... 77 </i>

<i>Hình 74. Biểu đồ hoạt động đặt hàng và thanh tốn ... 78 </i>

<i>Hình 75. Biểu đồ hoạt động quản lý sản phẩm ... 79 </i>

<i>Hình 76. Biểu đồ hoạt động quản lý danh mục sản phẩm ... 80 </i>

<i>Hình 77. Biểu đồ hoạt động quản lý khách hàng ... 81 </i>

<i>Hình 78. Biểu đồ hoạt động quản lý đơn hàng ... 82 </i>

<i>Hình 79. Biểu đồ hoạt động quản lý doanh thu ... 83 </i>

<i>Hình 80. Biểu đồ hoạt động quản lý hóa đơn ... 84 </i>

<i>Hình 81. Biểu đồ thành phần tổng quát ... 85 </i>

<i>Hình 82. Biểu đồ thành phần triển khai chức năng của khách hàng ... 85 </i>

<i>Hình 83. Biểu đồ thành phần triển khai chức năng quản trị viên ... 86 </i>

<i>Hình 84. Biểu đồ triển khai tổng thể ... 86 </i>

</div><span class="text_page_counter">Trang 7</span><div class="page_container" data-page="7">

<b>DANH SÁCH BẢNG </b>

<i>Bảng 1. Role - Vai trò của người dùng, để phân quyền người dùng ... 12 </i>

<i>Bảng 2. User - Người dùng có tài khoản trong hệ thống ... 13 </i>

<i>Bảng 3. Product - Sản phẩm được bán hệ thống ... 14 </i>

<i>Bảng 4. Payment - Lưu trữ thông tin giao dịch trên hệ thống ... 15 </i>

<i>Bảng 5. OTP - Mã OTP xác thực người dùng ... 16 </i>

<i>Bảng 6. OrderStatus - Trạng thái đơn hàng ... 16 </i>

<i>Bảng 7. OrderDetail - Chi tiết đơn hàng, chứa thông tin về từng sản phẩm đặt hàng ... 16 </i>

<i>Bảng 8. Order - Đơn hàng ... 17 </i>

<i>Bảng 9. Oauth - Open Authentication... 17 </i>

<i>Bảng 10. Category - Danh mục sản phẩm ... 17 </i>

<i>Bảng 11. CartDetail: Thơng tin về sản phẩm có trong giỏ hàng ... 18 </i>

<i>Bảng 12. Cart: Giỏ hàng của khách hàng ... 18 </i>

<i>Bảng 13. Mô tả các Actors ... 23 </i>

<i>Bảng 14. Mô tả các Use Case ... 23 </i>

<i>Bảng 15. Đặc tả Use Case UC01 – Đăng ký ... 24 </i>

<i>Bảng 16. Đặc tả Use Case UC02 - Login ... 25 </i>

<i>Bảng 17. Đặc tả Use Case UC03 – Đặt lại mật khẩu... 26 </i>

<i>Bảng 18. Đặc tả Use Case UC04 – Tìm kiếm sản phẩm ... 27 </i>

<i>Bảng 19. Đặc tả Use Case UC05 – Xem sản phẩm ... 27 </i>

<i>Bảng 20. Đặc tả Use Case UC06 – Quản lý tài khoản ... 28 </i>

<i>Bảng 21. Đặc tả Use Case UC07 – Quản lý sản phẩm trong giỏ hàng ... 28 </i>

<i>Bảng 22. Đặc tả Use Case UC08 – Đặt hàng... 29 </i>

<i>Bảng 23. Đặc tả Use Case UC09 – Quản lý sản phẩm ... 30 </i>

<i>Bảng 24. Đặc tả Use Case UC10 – Quản lý danh mục sản phẩm ... 31 </i>

<i>Bảng 25. Đặc tả Use Case UC11 – Quản lý người sử dụng ... 32 </i>

<i>Bảng 26. Đặc tả Use Case UC12 – Quản lý đơn hàng ... 33 </i>

<i>Bảng 27. Đặc tả Use Case UC13 – Quản lý doanh số ... 33 </i>

<i>Bảng 28. Đặc tả Use Case UC14 – Quản lý hóa đơn ... 34 </i>

</div><span class="text_page_counter">Trang 8</span><div class="page_container" data-page="8">

<b>CHƯƠNG 1: TỔNG QUAN VỀ HỆ THỐNG 1. LÝ DO CHỌN ĐỀ TÀI </b>

Hiện nay, các công nghệ tiên tiến phát triển ngày càng mạnh mẽ và được ứng dụng ngày càng nhiều vào các lĩnh vực kinh tế, sản xuất cũng như đời sống thường nhật của con người. Một điểm tiêu biểu trong việc phát triển các cơng nghệ đó phải kể đến việc ứng dụng công nghệ thông tin vào hầu khắp các hoạt động. Nhờ đó, các cơng việc được thực hiện nhanh, chính xác và đạt kết quả cao hơn rất nhiều.

Khi xã hội ngày càng phát triển, mức sống của người dân được nâng cao thu nhập kinh tế ngày càng được cải thiện thì các thiết bị di động khơng cịn trở nên xa lạ với mọi người nữa mà ngược lại nó là một vật dụng khơng thể thiếu đối với người dân hiện nay. Hầu hết mỗi người đều trang bị cho mình một chiếc điện thoại phù hợp với nhu cầu và túi tiền của mình. Tuy nhiên, với cuộc sống ngày càng bận rộn như hiện nay thì việc muốn mua một chiếc điện thoại mình ưa thích thì người tiêu dùng phải đến tận cửa hàng để chọn lựa vì thế sẽ mất khá nhiều thời gian và công sức. Cùng với các lý do nêu trên, qua tìm hiểu nhóm đồ án được biết việc ứng dụng bán thiết bị di động trực tuyến sẽ giúp cho khách hàng giảm bớt được thời gian và công sức phải đến tận cửa hàng để mua.

Muốn lựa chọn cho mình thiết bị di động ưng ý phù hợp với túi tiền thì khách hàng chỉ cần ngồi bên chiếc máy tính có nối mạng internet là có thế mua được mặt hàng di động mình cần. Do đó nhóm đề tài chọn thực hiện đề tài “ Xây dựng hệ thống bán thiết bị di động trực tuyến”.

<b>2. PHÁT BIỂU BÀI TỐN </b>

Bài tốn đặt ra : Xây dựng hệ thống bán thiết bị di động đáp ứng được nhu cầu mua bán online, các chức năng cơ bản cần đáp ứng: – Quản lý thông tin khách hàng – Quản lý doanh thu

– Đặt hàng và thanh toán đơn hàng

</div><span class="text_page_counter">Trang 9</span><div class="page_container" data-page="9">

<b>3. PHƯƠNG PHÁP NGHIÊN CỨU </b>

<i><b>Phương pháp phân tích hướng đối tượng là thuật ngữ thông dụng hiện thời của ngành </b></i>

công nghiệp phần mềm. Các cơng ty đang nhanh chóng tim cách áp dụng và tích hợp cơng nghệ mới này vào các ứng dụng của họ. Thật sự là đa phần các ứng dụng hiện thời đều mang tính hướng đối tượng. Lối tiếp cận hướng đối tượng là một lối tư duy về vấn đề theo lối ánh xạ các thành phần trong bài toán vào các đối tượng ngoài đời thực. Với lối tiếp cận này, chúng ta chia ứng dụng thành các thành phần nhỏ, gọi là các đối tượng, chúng tương đối độc lập với nhau. Sau đó ta có thể xây dựng ứng dụng bằng cách chắp các đối tượng đó lại với nhau. Hãy nghĩ đến trò chơi xây lâu đài bằng các mẫu gỗ. Bước đầu tiên là tạo hay mua một vài loại mẫu gỗ căn bản, từ đó tạo nên các khối xây dựng căn bản của mình. Một khi đã có các khối xây dựng đó, bạn có thể chắp ráp chúng lại với nhau để tạo lâu đài. Tương tự như vậy một khi đã xây dựng một số đối tượng căn bản trong thế giới máy tính, bạn có thể chấp chúng lại với nhau để tạo ứng dụng của mình.

<b>Các ưu điểm của phương pháp phân tích hướng đối tượng: </b>

– Tập trung vào dữ liệu hơn là các thủ tục như trong Phân tích có cấu trúc.

– Các nguyên tắc đóng gói và ẩn dữ liệu giúp nhà phát triển phát triển các hệ thống không thể bị can thiệp bởi các phần khác của hệ thống.

– Cho phép quản lý hiệu quả sự phức tạp của phần mềm nhờ vào tính mơ đun.

– Có thể được nâng cấp từ các hệ thống nhỏ đến lớn một cách dễ dàng hơn so với các hệ thống theo phân tích có cấu trúc.

<b>Phân tích hướng đối tượng : </b>

Là giai đoạn phát triển một mơ hình chính xác và súc tích của vấn đề, có thành phần là các đối tượng và khái niệm đời thực, dễ hiểu đối với người sử dụng vấn đề được trình bày bằng các thuật ngữ tương ứng với các đối tượng có thực. Thêm vào đó, hệ thống cần phải được định nghĩa sao cho người không chuyên Tin học có thể dễ dàng hiểu được.

<b>Thiết kế hướng đối tượng : </b>

Là giai đoạn tổ chức chương trình thành các tập hợp đối tượng cộng tác, mỗi đối tượng trong đó là thực thể của một lớp. Các lớp là thành viên của một cây cầu trúc với mối quan hệ thừa kế tập trung vào việc cải thiện kết quả của , tối ưu hóa giải pháp đã được cung cấp trong khi vẫn đảm bảo thoả mãn tất cả các yêu cầu đã được xác lập. Trong giai đoạn nhà thiết kể định nghĩa các chức năng, thủ tục (operations), thuộc tỉnh (attributes) cũng như mối quan hệ của một hay nhiều lớp (class) và quyết định chung cần phải được điều chỉnh sao cho phù hợp với môi trường phát triển. Đây cũng là giai đoạn để thiết kế ngân hàng dữ liệu và áp dụng các kỹ thuật tiêu chuẩn hóa.

</div><span class="text_page_counter">Trang 10</span><div class="page_container" data-page="10">

<b>CHƯƠNG 2: KIẾN THỨC CƠ SỞ 1. CÁC BIỂU ĐỒ UML </b>

<b>1.1. Sơ đồ Use Case (Use Case Diagram) </b>

Use Case được mô tả trong ngôn ngữ UML qua biểu đồ Use Case. Một Use Case cần phải được mô tả sao cho dễ hiểu và dễ giao tiếp đối với người sử dụng, mà những cấu trúc phức tạp như một biểu đồ hoạt động có thể gây cảm giác xa lạ đối với những người không

<b>quen sử dụng </b>

Một biểu đồ UseCase gồm các thành phần: Hệ thống, Tác nhân, UseCase

<b>1.2. Sơ đồ lớp (Class Diagram) </b>

Class là thành phần chính của bản vẽ Class Diagram. Class mơ tả về một nhóm đối tượng có cùng tính chất, hành động trong hệ thống. Class được mơ tả gồm tên Class, thuộc tính và phương thức:

– Class Name: là tên của lớp.

– Attributes (thuộc tính): mơ tả tính chất của các đối tượng.

– Method / Operation (Phương thức): chỉ các hành động mà đối tượng này có thể

<b>thực hiện trong hệ thống. Nó thể hiện hành vi của các đối tượng do lớp này tạo ra. 1.3. Biểu đồ tuần tự (Sequence Diagram) </b>

Biểu đồ tuần tự mô tả sự trao đổi thông điệp giữa các đối tượng tuần tự theo thời gian, thông điệp được gửi và nhận bởi các đối tượng đang hoạt động trong hệ thống. Biểu đồ tuần tự được thể hiện theo hai trục:

– Trục dọc trên xuống chỉ thời gian xảy ra các sự kiện, hay sự truyền thông điệp, được biểu diễn bằng các đường thẳng đứng đứt nét bắt đầu từ đỉnh đến đáy của biểu đồ.

– Trục ngang từ trái qua phải là dãy các đối tượng tham gia vào việc trao đổi các thông điệp với nhau theo chiều ngang, có thể có cả các tác nhân.

<b>1.4. Biểu đồ trạng thái (State Chart Diagram) </b>

Biểu đồ trạng thái mô tả chu kỳ tồn tại của đối tượng từ khi nó sinh ra đến khi nó bị phá hủy. Sử dụng để mơ hình hóa khía cạnh động của lớp. Biểu đồ trạng thái bao gồm các thông tin sau:

– Các trạng thái của đối tượng – Hành vi của đối tượng

– Sự kiện tác động làm thay đổi trạng thái

</div><span class="text_page_counter">Trang 11</span><div class="page_container" data-page="11">

<b>1.5. Biểu đồ cộng tác (Collaboration Diagram) </b>

Một biểu đồ cộng tác miêu tả tương tác giữa các đối tượng cũng giống như biểu đồ tuần tự, nhưng nó tập trung trước hết vào các sự kiện, tức là tập trung chủ yếu vào sự tương tác giữa các đối tượng.

Trong một biểu đồ cộng tác, các đối tượng được biểu diễn bằng kí hiệu lớp. Thứ tự trong biểu đồ cộng tác được thể hiện bằng cách đánh số các thông điệp. Kỹ thuật đánh số được coi là hơi có phần khó hiểu hơn so với kỹ thuật mũi tên sử dụng trong biểu đồ tuần tự. Nhưng ưu điểm của biểu đồ cộng tác là nó có thể chỉ ra các chi tiết về các lệnh gọi hàm (thủ tục), yếu tố được né tránh trong biểu đồ tuần tự.

<b>1.6. Biểu đồ hoạt động (Activity Diagram) </b>

Biểu đồ hoạt động nắm bắt hành động và các kết quả của chúng. Biểu đồ hoạt động tập trung vào công việc được thực hiện trong khi thực thi một thủ tục (hàm), các hoạt động trong một lần thực thi một trường hợp sử dụng hoặc trong một đối tượng. Biểu đồ hoạt động là một biến thể của biểu đồ trạng thái và có một mục tiêu tương đối khác, đó là nắm bắt hành động (công việc và những hoạt động phải được thực hiện) cũng như kết quả của chúng theo sự biến đổi trạng thái. Các trạng thái trong biểu đồ hoạt động (được gọi là các trạng thái hành động) sẽ chuyển sang giai đoạn kế tiếp khi hành động trong trạng thái này đã được thực hiện xong (mà không xác định bất kỳ một sự kiện nào theo như nội dung của biểu đồ trạng thái).

<b>1.7. Biểu đồ thành phần (Component Diagram) </b>

Biểu đồ thành phần (Component Diagram) là biểu đồ mô tả các thành phần và sự phụ thuộc của chúng trong hệ thống. Các thành phần của hệ thống có thể là. Thành phần mã nguồn, có ý nghĩa vào thời điểm dịch chương trình. Thơng thường nó là tập các chương trình cài đặt các lớp. Trước khi phát sinh mã chương trình, phải thực hiện ánh xạ từng tệp vào thành phần tương ứng. Thành phần thực thi là tệp chương trình có thể thực thi được (các tệp .exe). Nó là kết quả của chương trình liên kết các thành phần nhị phân.

Với biểu đồ thành phần, người phát triển hệ thống thực hiện dịch, triển khai hệ thống sẽ biết thư viện mã trình nào tồn tại và những tệp có thể thực thi (.exe) khi dịch và liên kết thành công.

<b>1.8. Biểu đồ triển khai (Deployment Diagram) </b>

Biểu đồ triển khai (chỉ ra cấu hình các phần tử xử lý lúc chương trình chạy, các nút trên mạng và các tiến trình phần mềm thực hiện trên những phần tử đó. Nó chỉ ra mối quan hệ giữa các phần cứng và phần mềm của hệ thống. Biểu đồ triển khai chỉ ra toàn bộ các nút trên mạng, kết nối giữa chúng và các tiến trình chạy trên chúng.

</div><span class="text_page_counter">Trang 12</span><div class="page_container" data-page="12">

<b>2. THIẾT KẾ CƠ SỞ DỮ LIỆU CHO HỆ THỐNG 2.1. Sơ đồ ERD của hệ thống </b>

<i><b>Hình 1. Sơ đồ ERD của hệ thống </b></i>

<b>2.2. Các bảng thuộc tính của hệ thống </b>

<i>Bảng 1. Role - Vai trò của người dùng, để phân quyền người dùng </i>

createdAt timestamp CURRENT_TIMESTAMP Thời gian được tạo updatedAt timestamp CURRENT_TIMESTAMP Thời gian cập nhật

</div><span class="text_page_counter">Trang 13</span><div class="page_container" data-page="13">

<i>Bảng 2. User - Người dùng có tài khoản trong hệ thống </i>

diện của người dùng

createdAt timestamp CURRENT_TIMESTAMP Thời gian được tạo updatedAt timestamp CURRENT_TIMESTAMP Thời gian cập nhật

</div><span class="text_page_counter">Trang 14</span><div class="page_container" data-page="14">

color

phẩm

stockQuantity int(UNSIGNED) NOT_NULL Số lượng tồn createdAt timestamp CURRENT_TIMESTAMP Thời gian được

tạo

updatedAt timestamp CURRENT_TIMESTAMP Thời gian cập nhật lần cuối

</div><span class="text_page_counter">Trang 15</span><div class="page_container" data-page="15">

<i>Bảng 4. Payment - Lưu trữ thông tin giao dịch trên hệ thống </i> paid_amount_currency varchar(10) NOT_NULL Đơn vị tiền tệ payment_source varchar(50) <i>NULL </i>

</div><span class="text_page_counter">Trang 16</span><div class="page_container" data-page="16">

<i>Bảng 5. OTP - Mã OTP xác thực người dùng </i>

code

createdAt timestamp CURRENT_TIMESTAMP Thời gian được tạo

<i>Bảng 6. OrderStatus - Trạng thái đơn hàng </i>

<i>Bảng 7. OrderDetail - Chi tiết đơn hàng, chứa thông tin về từng sản phẩm đặt hàng </i>

createdAt timestamp CURRENT_TIMESTAMP Thời gian được tạo

updatedAt timestamp CURRENT_TIMESTAMP Thời gian cập nhật lần cuối

</div><span class="text_page_counter">Trang 17</span><div class="page_container" data-page="17">

<i>Bảng 8. Order - Đơn hàng </i>

orderStatusId tinyint FK

phoneNumber

varchar(11) <sup>NULL </sup>

Số điện thoại người nhận hàng

createdAt timestamp CURRENT_TIMESTAMP Thời gian được tạo updatedAt timestamp CURRENT_TIMESTAMP Thời gian cập nhật

lần cuối

<i>Bảng 9. Oauth - Open Authentication </i>

createdAt timestamp CURRENT_TIMESTAMP Thời gian được tạo updatedAt timestamp CURRENT_TIMESTAMP Thời gian cập nhật

lần cuối

<i>Bảng 10. Category - Danh mục sản phẩm </i>

</div><span class="text_page_counter">Trang 18</span><div class="page_container" data-page="18">

<i>Bảng 11. CartDetail: Thơng tin về sản phẩm có trong giỏ hàng </i>

Tên thuộc tính Kiểu dữ liệu Ràng buộc Mô tả

mua trong giỏ hàng createdAt timestamp CURRENT_TIMESTAMP Thời gian được tạo updatedAt timestamp CURRENT_TIMESTAMP Thời gian cập nhật lần

cuối

<i>Bảng 12. Cart: Giỏ hàng của khách hàng </i>

createdAt timestamp CURRENT_TIMESTAMP Thời gian được tạo updatedAt timestamp CURRENT_TIMESTAMP Thời gian cập nhật lần

cuối

</div><span class="text_page_counter">Trang 19</span><div class="page_container" data-page="19">

<b>CHƯƠNG 3: PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG </b>

– Hệ thống sẽ hiển thị danh sách các mặt hàng, các mặt hàng mà người dùng tìm kiếm và thơng tin của các mặt hàng đó.

– Khách hàng có thể thêm sản phẩm vào giỏ hàng và thanh toán từ giỏ hàng hoặc trực tiếp từ trang hiển thị sản phẩm

– Sau khi khách hàng đặt hàng sẽ hệ thống sẽ hiển thị các đơn hàng đã đặt như thông tin mặt hàng, số lượng hàng, tổng tiền, địa chỉ nhận hàng, số điện thoại. – Khách hàng thanh toán online trực tiếp từ trang web với dịch vụ thanh toán Paypal

hoặc sử dụng credit card hoặc debit card.

– Hệ thống cho phép người dùng thay đổi thơng tin của mình như mật khẩu, ảnh đại diện, địa chỉ.

<i>Quản trị: Người quản trị có tài khoản riêng để kiểm soát các hoạt động của ứng dụng. </i>

Phần này đáp ứng các chức năng chính như: – Quản lý sản phẩm

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

– Tiếp nhận đơn hàng của khách hàng và xử lý đơn hàng – Quản lý thông tin khách hàng

– Quản lý doanh thu

<b>1.2. Yêu cầu phi chức năng </b>

– Tốc độ tải trang nhanh chóng và cho phép số lượng người dùng truy cập đồng thời lớn

– Khả năng mở rộng, tính an tồn bảo mật thơng tin – dữ liệu của khách hàng

– Khả năng tương thích hiệu quả trên đa dạng thiết bị, nền tảng và trình duyệt khác nhau

<b>– Đảm bảo trải nghiệm của người dùng thuận tiện và dễ dàng </b>

</div><span class="text_page_counter">Trang 20</span><div class="page_container" data-page="20">

<b>2. BIỂU ĐỒ USE CASE & ĐẶC TẢ (USE CASE DIAGRAM) 2.1. BIỂU ĐỒ USE CASE </b>

<i><b>2.1.1. Use Case tổng quát </b></i>

<i><b>Hình 2. Biểu đồ Use Case tổng quát </b></i>

<i><b>2.1.2. Use Case đăng ký tài khoản </b></i>

<i><b>Hình 3. Biểu đồ Use Case đăng ký tài khoản </b></i>

</div><span class="text_page_counter">Trang 21</span><div class="page_container" data-page="21">

<i><b>2.1.3. Use Case đăng nhập </b></i>

<i><b>Hình 4. Biểu đồ Use Case đăng nhập </b></i>

<i><b>2.1.4. Use Case thanh tốn </b></i>

<i><b>Hình 5.Biểu đồ Use Case thanh toán </b></i>

</div><span class="text_page_counter">Trang 22</span><div class="page_container" data-page="22">

<i><b>2.1.5. Use Case quản lý doanh thu </b></i>

<i><b>Hình 6. Biểu đồ Use Case quản lý doanh thu </b></i>

</div><span class="text_page_counter">Trang 23</span><div class="page_container" data-page="23">

<b>2.2. MƠ TẢ ACTORS & USE CASE </b>

<i><b>2.2.1. Mơ tả Actors </b></i>

1 Admin Toàn quyền trong hệ thống

2 Customer Các quyền cơ bản của người mua hàng

<i>Bảng 13. Mô tả các Actors </i>

<i><b>2.2.2. Mô tả Use Case </b></i>

1 UC01 Register Cho phép actor đăng ký vào hệ thống 2 UC02 Login Cho phép actor đăng nhập vào hệ thống 3 UC03 Forgot password Cho phép actor reset password

4 UC04 Search products Cho phép actor tìm kiếm sản phẩm 5 UC05 View products Cho phép actor xem chi tiết sản phẩm 6 UC06 Manage account Cho phép actor quản lý tài khoản

7 UC07 Manage cart Cho phép actor quản lý sản phẩm trong giỏ hàng 8 UC08 Place order Cho phép actor đặt hàng và thanh toán

9 UC09 Manage product Cho phép actor quản lý sản phẩm bán ra 10 UC10 Manage category Cho phép actor quản lý danh mục sản phẩm 11 UC11 Manage user Cho phép actor quản lý người dùng

12 UC12 Manage order Cho phép actor quản lý đơn hàng 13 UC13 Manage revenue Cho phép actor quản lý doanh thu 14 UC14 Manage invoice Cho phép actor quản lý hóa đơn

<i>Bảng 14. Mơ tả các Use Case </i>

</div><span class="text_page_counter">Trang 24</span><div class="page_container" data-page="24">

<b>2.3. ĐẶC TẢ USE CASE </b>

<i><b>2.3.1. UC01: Register </b></i>

ứng dụng

<b>Basic Flow </b>

1. Người dùng truy cập vào trang web thương mại. 2. Người dùng chọn đăng ký tài khoản.

3. Hệ thống xác thực thông tin đăng ký (gửi OTP) thành công và cho phép người dùng truy cập vào ứng dụng.

4. Hệ thống ghi nhận hoạt động đăng ký thành công và Activity Logs.

<b>Alternative Flow </b>

2a. Người dùng chọn phương thức đăng ký với Google.

3a. Hệ thống chuyển sang màn hình đăng nhập tài khoản Google. 3a1. Người dùng nhập tài khoản Google và tiến hành ủy quyền cho web thương mại.

3a2. Google xác thực thông tin, cho phép người dùng truy cập ứng dụng.

<i>Use Case tiếp tục bước 4. </i>

<i>Use Case dừng lại. </i>

đăng ký của email đăng ký tài khoản 15 phút

<i>Bảng 15. Đặc tả Use Case UC01 – Đăng ký </i>

</div><span class="text_page_counter">Trang 25</span><div class="page_container" data-page="25">

<i><b>2.3.2. UC02: Login </b></i>

vụ của ứng dụng

<b>Basic Flow </b>

1. Người dùng truy cập ứng dụng web.

2. Người dùng chọn phương thức đăng nhập bằng tài khoản đã đăng ký của trang thương mại.

3. Người dùng nhập tài khoản đó và chọn lệnh đă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

2a1. Hệ thống chuyển sang màn hình đăng nhập của Google. 3a. Người dùng nhập tài khoản Google và chọn lệnh đăng nhập. 4a. Google xác thực thông tin đăng nhập thành công và cho phép người dùng truy cập ứng dụng.

<i>Use Case tiếp tục bước 5. </i>

<b>Exception Flow </b>

4c. 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.

4c1. Người dùng chọn lệnh hủy đăng nhập.

<i>Use Case dừng lại. </i>

4c2. Người dùng chọn lệnh lấy lại mật khẩu.

<i>Use Case tiếp tục Use Case UC03. </i>

năng đăng nhập 15 phút

<i>Bảng 16. Đặc tả Use Case UC02 - Login </i>

</div><span class="text_page_counter">Trang 26</span><div class="page_container" data-page="26">

<i><b>2.3.3. UC03: Forgot Password </b></i>

<b>Post-Condition(s): </b> Người dùng thay đổi mật khẩu thành công

<b>Basic Flow </b>

1. Người dùng truy cập ứng dụng web.

2. Người dùng chọn phương thức đăng nhập bằng tài khoản đã đăng ký của trang thương mại.

3. Người dùng chọn quên mật khẩu.

4. Hệ thống chuyển đến trang khôi phục mật khẩu, người dùng nhập địa chỉ email để lấy mã khơi phục.

5. Hệ thống kiểm tra tính hợp lệ của mã OTP và cho phép người dùng cập nhật mật khẩu mới.

6. Cập nhật mật khẩu thành công, người dùng trở lại trang đăng nhập.

5c1. Cho phép gửi lại mã OTP.

<i>Use Case tiếp tục bước 5. </i>

gửi OTP

<i>Bảng 17. Đặc tả Use Case UC03 – Đặt lại mật khẩu </i>

</div><span class="text_page_counter">Trang 27</span><div class="page_container" data-page="27">

<i><b>2.3.4. UC04: Search products </b></i>

<b>Post-Condition(s): </b> Hiển thị danh sách sản phẩm

<b>Basic Flow </b>

1. Người dùng truy cập ứng dụng web. 2. Người dùng nhập ký tự cần tìm kiếm. 2. Hệ thống hiển thị sản phẩm cần tìm kiếm.

<i>Bảng 18. Đặc tả Use Case UC04 – Tìm kiếm sản phẩm </i>

<i><b>2.3.5. UC05: View products </b></i>

<b>Post-Condition(s): </b> Hiển thị danh sách sản phẩm

2. Hệ thống hiển thị sản phẩm.

<i>Bảng 19. Đặc tả Use Case UC05 – Xem sản phẩm </i>

</div><span class="text_page_counter">Trang 28</span><div class="page_container" data-page="28">

<i><b>2.3.6. UC06: Manage account </b></i>

– Đăng nhập tài khoản thành công.

<b>Post-Condition(s): </b> Người dùng xem, sửa đổi thông tin cá nhân thành công

<b>Basic Flow </b>

1. Người dùng đăng nhập vào hệ thống.

2. Người dùng truy cập vào trang quản lý tài khoản. 3. Người dùng xem, chỉnh sửa thông tin cá nhân.

<i>Bảng 20. Đặc tả Use Case UC06 – Quản lý tài khoản </i>

<i><b>2.3.7. UC07: Manage cart </b></i>

– Đăng nhập tài khoản thành công.

<b>Post-Condition(s): </b> Người dùng xem, sửa đổi thông tin cá nhân thành công

<b>Basic Flow </b>

1. Người dùng đăng nhập vào hệ thống. 2. Người dùng truy cập vào giỏ hàng.

3. Người dùng xem, thêm, xóa, sửa sản phẩm trong giỏ hàng.

<i>Bảng 21. Đặc tả Use Case UC07 – Quản lý sản phẩm trong giỏ hàng </i>

</div><span class="text_page_counter">Trang 29</span><div class="page_container" data-page="29">

<i><b>2.3.8. UC08: Place order </b></i>

– Đăng nhập tài khoản thành công.

<b>Post-Condition(s): </b> Người dùng đặt hàng thành công, hệ thống ghi nhận đơn hàng.

<b>Basic Flow </b>

1. Người dùng chọn sản phẩm, click chọn mua hàng. 2. Người dùng nhập thông tin mua hàng.

3. Hệ thống xác thực thông tin, tạo đơn hàng. 4. Người dùng chọn phương thức thanh toán. 5. Người dùng đăng nhập tài khoản thanh toán.

6. Thực hiện thanh toán với khoảng tiền của đơn hàng.

<b>Exception Flow </b>

5a. Hệ thống xác thực thông tin đăng nhập thanh tốn khơng thành cơng và hiển thị thông báo.

5a1. Người dùng chọn lệnh hủy đăng nhập.

<i>Use Case dừng lại. </i>

<i>Bảng 22. Đặc tả Use Case UC08 – Đặt hàng </i>

</div><span class="text_page_counter">Trang 30</span><div class="page_container" data-page="30">

<i><b>2.3.9. UC09: Manage product </b></i>

<b>Pre-Condition(s): </b> Đăng nhập bằng tài khoản quản trị viên.

<b>Basic Flow </b>

1. Quản trị viên nhấn nút để hiển thị form. 2. Quản trị viên nhập thông tin sản phẩm. 3. Hệ thống xác thực thông tin sản phẩm. 4. Sản phẩm được thêm, xóa, sửa thành cơng.

3a1. Hiển thị thơng điệp để quản trị viên biết.

<i>Use Case dừng lại. </i>

<i><b>Bảng 23. Đặc tả Use Case UC09 – Quản lý sản phẩm </b></i>

</div><span class="text_page_counter">Trang 31</span><div class="page_container" data-page="31">

<i><b>2.3.10. UC10: Manage category </b></i>

<b>Pre-Condition(s): </b> Đăng nhập bằng tài khoản quản trị viên.

<b>Post-Condition(s): </b> Thêm, xóa, sửa danh mục thành cơng.

<b>Basic Flow </b>

1. Quản trị viên nhấn nút để hiển thị form. 2. Quản trị viên nhập thông tin danh mục. 3. Hệ thống xác thực thông tin danh mục. 4. Danh mục được thêm, xóa, sửa thành công.

3a1. Hiển thị thông điệp để quản trị viên biết.

<i>Use Case dừng lại. </i>

<i><b>Bảng 24. Đặc tả Use Case UC10 – Quản lý danh mục sản phẩm </b></i>

</div><span class="text_page_counter">Trang 32</span><div class="page_container" data-page="32">

<i><b>2.3.11. UC11: Manage user </b></i>

trong hệ thống

<b>Pre-Condition(s): </b> Đăng nhập bằng tài khoản quản trị viên.

<b>Post-Condition(s): </b> Thêm, xóa, sửa, chặn người dùng thành cơng.

<b>Basic Flow </b>

1. Quản trị viên nhấn nút để hiển thị form.

2. Quản trị viên nhập thông tin người dùng, hoặc thực hiện nhấn nút chặn, xóa người dùng.

3. Hệ thống xác thực thông tin người dùng.

4. Người dùng được thêm, xóa, sửa, chặn thành cơng.

<b>Exception Flow </b> 3a. Hệ thống xác thực thông tin người dùng thất bại 3a1. Hiển thị thông điệp để quản trị viên biết.

<i>Use Case dừng lại. </i>

<i><b>Bảng 25. Đặc tả Use Case UC11 – Quản lý người sử dụng </b></i>

</div><span class="text_page_counter">Trang 33</span><div class="page_container" data-page="33">

<i><b>2.3.12. UC12: Manage order </b></i>

tiết đơn hàng

<b>Pre-Condition(s): </b> Đăng nhập bằng tài khoản quản trị viên.

<b>Post-Condition(s): </b> Duyệt, hủy, xem chi tiết đơn hàng thành công

<b>Basic Flow </b>

1. Quản trị viên nhấn duyệt, hủy, xem chi tiết đơn hàng. 2. Quản trị viên xác nhận duyệt, hủy, xem chi tiết đơn hàng. 3. Quản trị viên duyệt, hủy, xem chi tiết đơn hàng thành công.

<b>Exception Flow </b> 3a. Hệ thống duyệt, hủy, xem chi tiết đơn hàng thất bại 3a1. Hiển thị thông điệp để quản trị viên biết.

<i>Use Case dừng lại. </i>

<i><b>Bảng 26. Đặc tả Use Case UC12 – Quản lý đơn hàng </b></i>

<i><b>2.3.13. UC13: Manage revenue </b></i>

thời gian, và theo loại sản phẩm

<b>Pre-Condition(s): </b> Đăng nhập bằng tài khoản quản trị viên.

<i>Bảng 27. Đặc tả Use Case UC13 – Quản lý doanh số </i>

</div><span class="text_page_counter">Trang 34</span><div class="page_container" data-page="34">

<i><b>2.3.14. UC14: Manage invoice </b></i>

đơn theo đơn hàng, hóa đơn theo khách hàng

<b>Pre-Condition(s): </b> Đăng nhập bằng tài khoản quản trị viên.

<i>Bảng 28. Đặc tả Use Case UC14 – Quản lý hóa đơn </i>

</div><span class="text_page_counter">Trang 35</span><div class="page_container" data-page="35">

<b>3. BIỂU ĐỒ LỚP (CLASS DIAGRAM) 3.1. BIỂU ĐỒ CLASS TỔNG QUÁT </b>

<i><b>Hình 7. Biểu đồ class tổng quát </b></i>

</div><span class="text_page_counter">Trang 36</span><div class="page_container" data-page="36">

<b>3.2. PHÂN TÍCH </b>

<i><b>3.2.1. Product class </b></i>

Product class biểu diễn các thuộc tính và operations. Product class chứa các thông tin liên quan đến sản phẩm cần bán, thí dụ name, categoryId, description và các thơng số kỹ thuật khác.

<i>Hình 8. Biểu đồ class Product </i>

<i><b>3.2.2. OTP class </b></i>

OTP class biểu diễn các thuộc tính và operations. OTP class sử dụng cho việc quản lý việc tạo và lưu trữ cũng như xác minh mã OTP, đảm bảo rằng thông tin user là hợp lệ. OTP class chứa các thuộc tính và phương thức như sau:

<i>Hình 9. Biểu đồ class OTP </i>

</div><span class="text_page_counter">Trang 37</span><div class="page_container" data-page="37">

<i><b>3.2.3. User class </b></i>

User class biểu diễn các thuộc tính và operations. User class chứa các thông tin quan trọng liên quan đến khách hàng như email, password, phone, ngoài ra cịn có roleId để phân quyền giữa admin và user.

Các property như active đại diện cho user đó có bị khóa hay khơng, verified cho biết user đó đã xác minh tài khoản qua OTP hay chưa.

User class chứa các thuộc tính và phương thức như sau:

<i>Hình 10. Biểu đồ class User </i>

<i><b>3.2.4. Order class </b></i>

Order class biểu diễn các thuộc tính và operations. Order class chứa các thông tin liên quan đến đơn hàng cần đặt, bao gồm: mã đơn hàng – orderId, mã sản phẩm – productId, số lượng của sản phẩm – quantity, giá sản phẩm – price.

Order class chứa các thuộc tính và phương thức như sau:

</div><span class="text_page_counter">Trang 38</span><div class="page_container" data-page="38">

<i>Hình 11. Biểu đồ class Order </i>

<i><b>3.2.5. Oauth class </b></i>

Oauth class được sử dụng để lưu mã authentication của nhà cung cấp dịch vụ.

Ví dụ: sử dụng google authentication cho tài khoản , google service sẽ trả về một mã oauth_uid duy nhất cho một tài khoản google.

Hàm register() có chức năng lưu trữ thông tin của oauth table về userId, oauth_id và oauth_provider.

Hàm getOauth() lấy một record trong CSDL, có thể sử dụng để xác định user đó có sử dụng Oauth hay khơng.

<i>Hình 12. Biểu đồ class Oauth </i>

</div><span class="text_page_counter">Trang 39</span><div class="page_container" data-page="39">

Cart class chứa các thông tin liên quan đến giỏ hàng của user, một user sẽ có thể có một hoặc nhiều cart product, nhưng chỉ có duy nhất một cart duy nhất, chứa toàn bộ cart product bên trong.

<i>Hình 14. Biểu đồ class Cart </i>

</div><span class="text_page_counter">Trang 40</span><div class="page_container" data-page="40">

<i><b>3.2.8. PayPal class </b></i>

Paypal class chứa các thông số cấu hình sử dụng dịch vụ thanh toán, bao gồm: paypalAuthAPI – lấy access token, paypalAPI, paypalClientID, paypalSecret.

Hàm validate() sẽ get access token từ paypal server, sử dụng paypalAPI để lấy thơng tin thanh tốn dựa trên orderId được trả về từ Paypal Server sau call api POST/v2/checkout/orders.

<i>Hình 15. Biểu đồ PayPal class </i>

<i><b>3.2.9. Payment class </b></i>

Payment class chứa các thông tin về thanh toán được Paypal Payment trả về sau khi thanh tốn thành cơng, chứa các thông tin quan trọng như order_id, invoice_id, transaction_id – có thể dùng để tra sốt giao dịch và hồn tiền cho khách hàng, paid_amount – khoảng tiền đã thanh toán, paid_amount_currency – đơn vị tiền tệ thanh toán, payment_source – nhà cung cấp dịch vụ thanh toán, payment_status: trạng thái thanh toán. Phương thức getPayment(), lấy ra thơng tin thanh tốn của đơn hàng.

Phương thức createPayment(), tạo một thanh tốn mới cho đơn hàng.

<i>Hình 16. Biểu đồ class Payment </i>

</div>

×