Đặc tả yêu cầu ● 2.1 Chức năng đăng ký, đăng nhập Người dùng mới có thể đăng ký tài khoản để sử dụng hệ thống.. Các thông tin của người dùng được hiển thị bao gồm:● 2.3 Chức năng đăng
Trang 1ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
~~~~~~*~~~~~~
BÁO CÁO BÀI TẬP LỚN
Môn học: Phân tích và thiết kế hướng đối tượng
Giảng viên: TS Trần Hoàng Việt
Đề tài: Hệ thống trao đổi đồ cũ
Nhóm 8:
Nguyễn Văn Quỳnh - 19020415
Vũ Văn Phong - 19020392 Đào Xuân Sơn –19020422
Vũ Ngọc Quyền - 19020410
Hà Nội - 2022
Trang 22.2 Chức năng chỉnh sửa thông tin tài khoản 5
2.4 Chức năng đăng bán sản phẩm và quản lý bài đăng 5
2.7 Chức năng chat, voice call, video call 6 2.8 Chức năng đánh giá người dùng theo điểm 6
2.11 Chức năng đẩy bài đăng lên đầu trang 7 2.12 Chức năng nạp tiền và giao dịch trung gian 8
Trang 4● 1 Giới thiệu
● 1.1 Lý do chọn đề tài
Theo báo cáo năm 2019 thredUp Resale Report (hợp tác với GlobalData), phân tích
xu hướng và những nhân tố thúc đẩy lĩnh vực này, các nhà nghiên cứu nhận thấy 56 triệu phụ nữ mua đồ đã qua sử dụng năm 2018, tăng 12 triệu người so với năm trước đó Bên cạnh đó, 51% người mua sắm hàng đã qua sử dụng cho biết họ sẽ còn chi tiêu nữa trong vòng 5 năm tới
“Tăng trưởng vài năm qua trong lĩnh vực hàng đã qua sử dụng xuất phát từ những người sớm nắm bắt xu hướng, và cả những người trước đây không muốn thử nhưng giờ lại đang thay đổi suy nghĩ” - James Reinhart, sáng lập và CEO của thredUP cho biết - “Khách hàng đồ cũ không chỉ còn là một nhóm nhỏ và riêng như trước mà là tất cả mọi người”
Tại Việt Nam, không chỉ nhu cầu mua đồ cũ mà cả nhu cầu rao bán cũng ngày càng tăng mạnh Hàng loạt website, diễn đàn dành riêng cho người dùng có nhu cầu như vậy đã được tạo ra như chotot.com, chodocu.com, Ngoài ra rất nhiều người dùng cũng sử dụng các mạng xã hội có sẵn để rao bán và tìm kiếm các mặt hàng đã qua sửdụng Tuy nhiên, các kênh nói trên vẫn tồn tại rất nhiều điểm yếu như: Với các mạng
xã hội thì chưa tối ưu cho việc trao đổi hàng hóa, Các website dành riêng thì bị lạm dụng để bán đồ mới, không đa dạng tính năng và thuận tiện cho người dùng trong việc trao đổi đồ cũ
Bởi vậy, nhóm chúng tôi đã đưa ra ý tưởng về một hệ thống tối ưu cho việc trao đổi mua bán đồ cũ - gianhangcu.com Hệ thống sẽ tập trung vào những mặt hàng đã qua
-sử dụng, có đầy đủ nhất các tính năng phục vụ việc kết nối, giao dịch giữa các người dùng Sử dụng hệ thống, người dùng sẽ nhận được một trải nghiệm tốt nhất trong toàn bộ quá trình từ tìm kiếm, trả giá, giao dịch, cho tới thanh toán khi trao đổi mua bán đồ cũ
● 1.2 Sơ lược hệ thống
● Hệ thống mua bán trao đổi đồ cũ
● Với mục đích tạo ra một kênh rao vặt trung gian, kết nối người mua với người bán lại với nhau bằng những giao dịch cực kỳ đơn giản, tiện lợi, nhanh chóng,
an toàn
● 1.3 Chức năng chính
● Mỗi loại hàng hóa có một group riêng để đăng bài và đấu giá sản phẩm
Trang 5● Có hỗ trợ nhắn tin, có voice call, người dùng phải đăng nhập bằng số điện thoại để hạn chế spam.
● Người dùng ai cũng có thể đăng bài bán sản phẩm
● Có đánh giá người dùng theo điểm, điểm thấp thì hạn chế quyền Có cơ chế hồi phục điểm về mức giới hạn để được đăng bài
● Có cơ chế nạp tiền để đẩy bài đăng lên đầu trang trong một thời gian ngắn
● Thêm tính năng thông báo, theo dõi các bài đăng của từng loại hàng
● Trong trường hợp trao đổi bình thường, người mua có thể thanh toán thông qua hệ thống, hệ thống sẽ giữ tiền cho đến khi người mua nhận được hàng và
ấn xác nhận thì mới chuyển cho người bán
● Trong tính năng đấu giá Người bán có thể yêu cầu người mua đặt cọc (không bắt buộc), số tiền đặt cọc là do 2 bên thỏa thuận
● Giao dịch thông qua hệ thống có mất phí
● 1.4 Phạm vi của hệ thống
● Hệ thống chỉ hỗ trợ kết nối giữa người mua và người bán, không quản lý hình thức giao hàng
● Các chức năng hỗ trợ giao dịch trung gian là không bắt buộc
● Hệ thống tập trung vào người bán nhỏ lẻ, trao đổi đồ cũ, nhưng vẫn có thể đăng bán hàng mới
● Chỉ có cơ chế thu phí đẩy bài lên đầu trang và phí giao dịch trung gian
● 2 Đặc tả yêu cầu
● 2.1 Chức năng đăng ký, đăng nhập
Người dùng mới có thể đăng ký tài khoản để sử dụng hệ thống
Khi đăng ký tài khoản, người dùng cần cung cấp các thông tin:
● Họ và tên
● Số điện thoại: Số điện thoại gồm 10 chữ số
● Email: Địa chỉ email phải đúng định dạng
● Mật khẩu: Mật khẩu tối thiểu 8 ký tự
Để tránh spam, hệ thống xác thực tài khoản của người dùng mới thông qua mã OTP được gửi vào số điện thoại Sau khi xác thực thành công người dùng mới có thể đăngnhập được vào hệ thống
Một số điện thoại chỉ đăng ký được một tài khoản trong hệ thống Nếu người dùng quên mật khẩu thì có thể đặt lại nhưng cần xác thực email hoặc số điện thoại
● 2.2 Chức năng chỉnh sửa thông tin tài khoản
Sau khi đăng nhập hệ thống, người dùng có thể xem và chỉnh sửa thông tin của tài khoản
Trang 6Các thông tin của người dùng được hiển thị bao gồm:
● 2.3 Chức năng đăng bài thảo luận
● Mỗi danh mục sản phẩm cha (Danh mục cha) sẽ có một group để thảo luận và đăng bài
● Trong mỗi danh mục cha có các danh mục con, khi đăng bài phải lựa chọn danh mục (cha hoặc con )
● Người dùng có thể đăng bài, dưới bài đăng có chức năng comment và up-vote,down-vote, vote càng cao thì càng được đẩy lên đầu group và bảng tin của người dùng
● Người dùng theo dõi danh mục nào thì sẽ thấy bài viết của danh mục đó
● Có 3 loại bài đăng: bài đăng thảo luận, bài đăng bán hàng, bài đăng đấu giá
● 2.4 Chức năng đăng bán sản phẩm và quản lý bài đăng
● Người dùng sẽ chọn danh mục đăng tin
● Tùy vào từng loại mặt hàng khác nhau thì hệ thống sẽ đưa ra các form nhập liệu khác nhau
● VD: Danh mục điện thoại thì cần các thông tin như là hãng, màu sắc, dung lượng, tình trạng điện thoại cũ hay là mới, bảo hành, mô tả sản phẩm, và giá bán sản phẩm Bên cạnh đó còn cần hình ảnh và video về chiếc điện thoại muốn bán
● Người dùng khác có thể gửi yêu cầu giao dịch với từng bài đăng, chủ bài đăngchọn 1 đơn yêu cầu và ấn chấp thuận để đổi trạng thái sang đang giao dịch => người dùng khác không còn nhìn thấy nữa
Trang 7● 2.5 Chức năng đấu giá
● Đăng bài tương tự như đăng mặt hàng bình thường, ngoài ra phải có thêm ngày giờ bắt đầu, kết thúc đấu giá, giá khởi điểm, bước giá, …
● Người mua có thể xem thông tin chi tiết về phiên đấu giá
● Khách hàng lần lượt trả giá sản phẩm từ thấp đến cao kết thúc mỗi phiên đấu giá khách hàng nào trả giá cao nhất sẽ là người chiến thắng và chuyển sản phẩm sang trạng thái đang giao dịch, đóng bài đăng và kết nối người mua và người bán
● 2.6 Chức năng xem lịch sử giao dịch
● Người dùng có thể vào mục thông tin cá nhân để xem lịch sử giao dịch
● Các bài đã đăng sẽ được hệ thống liệt kê lại theo danh sách Và sẽ được link đến bài đăng thực sự khi người dùng nhấp chuột vào Sẽ có những nhãn dán đặc biệt dưới góc bài đăng nếu bài đăng được được giao dịch thành công
● Bài đăng mặt hàng chưa bắt đầu giao dịch sẽ có một danh sách các đơn yêu cầu giao dịch của người dùng khác để lựa chọn và chấp thuận => chuyển sang trạng thái đang giao dịch
● Bài đăng đang giao dịch ấn vào sẽ có thông tin liên hệ của người giao dịch (bao gồm cả mặt hàng người dùng này mua và bán) => có thể ấn xác nhận hoàn thành giao dịch hoặc hủy giao dịch để đưa lại trạng thái trước đó
● 2.7 Chức năng chat, voice call, video call
Sau khi người dùng có quan tâm tới một sản phẩm nào đó thì có thể liên lạc với người bán thông qua 2 phương thức là chat và voice call
● Chức năng voice call, video call:
○ Hệ thống có chức năng gọi thoại, gọi điện hình ảnh để giúp việc liên lạc, trao đổi, đánh giá sản phẩm giữa người dùng hiệu quả hơn
● 2.8 Chức năng đánh giá người dùng theo điểm
● Tính năng đánh giá là công cụ hỗ trợ để đo độ uy tín của người dùng Với tính năng này, người dùng có thể công khai trải nghiệm giao dịch mua bán của mình cho những người dùng khác
● Mỗi khi 1 giao dịch được xác nhận thành công thì 2 bên có thể đánh giá nhau
● Tính năng đánh giá gồm các hình thức :
○ Chấm điểm thang sao từ 1 đến 5
Trang 8○ Để lại nhận xét của người dùng có phát sinh trải nghiệm giao dịch.
○ Phản hồi nhận xét của người dùng khác
● Tất cả đánh giá đều là public, khi vào xem thông tin cá nhân sẽ xem được toànbộ
● 2.10 Chức năng thông báo
Thông báo trên hệ thống:
Người dùng sẽ nhận được thông báo trên hệ thống trong các trường hợp sau:
● Có người dùng khác tương tác với bài đăng
● Nhận được tin nhắn, điện thoại
● Bị người dùng khác báo cáo
Nhận thông báo khi có bài đăng mới:
Sau khi đăng nhập thì hệ thống sẽ đưa ra một bảng khảo sát về các mặt hàng
và tiêu chí (giá, thương hiệu…) mà người dùng đang quan tâm… Người dùng có thể thay đổi thông tin này trong quá trình sử dụng và bật chức năng nhận thông báo qua SĐT hoặc email khi có bài đăng mới về sản phẩm đó
● 2.11 Chức năng đẩy bài đăng lên đầu trang
● Đẩy tin là một dịch vụ hỗ trợ giúp bạn có thể đẩy tin đăng hợp lệ đang hiển thịlên trang đầu, tăng khả năng bán được sản phẩm
● Các loại dịch vụ đẩy tin:
○ ĐẨY TIN NGAY: bao gồm Đẩy tin 1 ngày, Đẩy tin 3 ngày và Đẩy tin 7ngày
VD : bạn mua 1 tin đẩy 3 ngày vào lúc 10h ngày 26/2/2002 thì tin đó sẽđược đẩy vào các khung giờ 10h ngày 26,27,28/2/2022 trong thời hạn đã đăng ký
● GÓI ĐẨY TIN: bao gồm gói đẩy tin nhiều lần với tính năng hẹn giờ trước
VD : Nếu bạn mua 1 tin đẩy “8 lần” vào lúc 08:00 ngày 26/02/2022 vàocác khung giờ: 8-9h, 9-10h, 10-11h, 11-12h, 13-14h, 14-15h, 15-16h và 16-17h, khi đó tin sẽ được đẩy vào các khung giờ này trong ngày 26/02/2022
Trang 9● 2.12 Chức năng nạp tiền và giao dịch trung gian
● Người dùng có thể nạp tiền vào tài khoản cá nhân thông qua thẻ cào, tài khoảnngân hàng, ví điện tử
● Trong 1 bài đăng bán hàng hoặc đấu giá, sau khi 2 bên đã thỏa thuận xong và chuyển trạng thái sang đang giao dịch => có thể chọn giao dịch trung gian hay không:
○ Hệ thống sẽ trừ số tiền mà 2 bên đã thỏa thuận (có thể nhập lại 1 con số khác tùy theo 2 bên thương lượng), hoặc số tiền đã đấu giá thành công cho sản phẩm từ tài khoản người mua, nhưng chưa chuyển cho người bán
○ Người mua có thể chọn xác nhận đã nhận hàng, có thể nhập lại số tiền chuyển cho người bán (sau khi nhìn đồ thực tế thì thỏa thuận có thể thayđổi), nếu người bán cũng ấn đồng ý với số tiền cuối cùng thì tiền được chuyển cho người bán Tiền thừa sẽ chuyển lại về người mua, hoặc nếu thiếu thì rút thêm ra từ tài khoản người mua
○ Có thể rút ngược lại tiền ra tài khoản ngân hàng hoặc ví điện tử
● 2.13 Chức năng quản lý người dùng
● Thống kê có bao nhiêu người dùng mới trong tuần, tháng, năm(tạo biểu đồ)
● Số người dùng đang truy cập thời điểm hiện tại
● Xem thông tin người dùng bất kỳ
● Chặn và mở chặn người dùng
● 2.14 Chức năng quản lý bài đăng
● Xem thông tin các bài đăng bất kỳ ( bao gồm chi tiết, trạng thái, quản lý giao dịch nếu người dùng giao dịch thông qua hệ thống,… )
● Thống kê các bài đăng theo các danh mục sản phẩm (Biểu đồ)
● Có chức năng lọc bài theo ngày giờ, danh mục, …, có thể gỡ bài đăng
● Thống kê tổng hợp lượng giao dịch trong 1 ngày, 7 ngày, 1 tháng, 1 năm
● 2.15 Chức năng quản lý báo cáo
● Xem danh sách các đơn report bài đăng
● Ấn vào để đến bài đăng để kiểm duyệt, có thể gỡ bài đăng và chặn người dùng(tạm thời hoặc vĩnh viễn, dựa theo số bài đăng từng bị gỡ của người dùng đó)
Trang 10và các tài liệu dự án khác có thể tập trung vào những gì mà hệ thống phải làm với thông tin.
Trang 11Giao dịch trung gian
Là một hình thức trao đổi hàng đặc biệt, sử dụng hệ thống là một bên trung gian Sử dụng tính năng này khi cả hai bên mua và bán cùng tin tưởng vào sự minh bạch của
hệ thống, hệ thống sẽ đứng ra đóng băng lượng tiền giao dịch trong vụ mua bán đó
và chỉ chuyển tiền tới nơi bán sau khi giao dịch đã thành công
● 3.3 Đặc tả bổ sung
Mục tiêu (Objectives)
● Mục đích của phần này là xác định các yêu cầu của hệ thống
Trang 12● Đặc tả yêu cầu bổ sung liệt kê các yêu cầu không được thể hiện một cách rõ
ràng khi dùng use case model.
● Đặc tả yêu cầu bổ sung cùng với use case model sẽ tạo ra đầy đủ các yêu cầu
của hệ thống
Phạm vi (Scope)
● Hệ thống tập trung vào người bán nhỏ lẻ , trao đổi đồ cũ , nhưng vẫn có thể đăng bán hàng mới
● Chỉ hỗ trợ giữa người mua và người bán không hỗ trợ hình thức giao hàng
● Các chức năng hỗ trợ giao dịch trung gian là không bắt buộc
Khả năng sử dụng (Usability)
● Phần mềm phải dễ sử dụng để người dùng mới dễ dàng làm quen
● Giao diện người dùng phải thân thiện và trực quan
Độ tin cậy (Reliability)
● Hệ thống phải được back-up dữ liệu thường xuyên
● Hệ thống phải có khả năng hồi phục sau lỗi tốt
● Down-time của hệ thống phải ít hơn 0.01%
Hiệu năng (Performance)
● Hệ thống phải có khả năng hoàn thành 95% giao dịch được thực hiện bởi người dùng trong vòng 15 giây
● Hệ thống có thể hỗ trợ tối đa 50.000 người dùng đồng thời truy cập
An ninh - Bảo mật (Security)
● Nếu người dùng không có mật khẩu, họ sẽ không được đăng nhập vào hệ thống
● Người dùng chỉ có thể truy cập được dữ liệu liên quan đến tài khoản của mình
● Các quyền như xóa bài viết của người khác, xóa người dùng khác, xem danh sách Báo cáo chỉ được thực hiện bởi admin
Trang 14Mô tả:
Authentication:Thực hiện các chức năng liên quan tới xác thực và phân quyền
● Chức năng đăng ký, đăng nhập
● Quản lý phiên đăng nhập
● Phân quyền người dùng
● Lấy lại mật khẩu
User Management: Quản lý các thông tin của người dùng
● Lưu hồ sơ người dùng
● Chỉnh sửa hồ sơ người dùng
Post Management: Quản lý thông tin của các bài đăng
● Quản lý bài đăng
○ Bài đăng đấu giá
○ Bài đăng thảo luận
○ Bài đăng bán hàng
● Quản lý lượt tương tác
○ Sắp xếp độ ưu tiên bài đăng trên newsfeed người dùng
○ Comment, upvote, downvote các bài viết
○ Chức năng nạp tiền để đẩy bài đăng
Transaction Management: Quản lý thông tin của các giao dịch
● Xử lý các giao dịch mua bán giữa các người dùng
● Lưu lịch sử, quản lý trạng thái giao dịch
● Giao dịch trung gian
User Communication: Thực hiện các chức năng liên quan tới giao tiếp
● Đánh giá bài đăng
Notification: Quản lý các thông báo gửi về
● Tự động tạo và gửi thông báo cho người dùng
● Lưu lại lịch sử thông báo
● Đánh dấu thông báo là đã/chưa đọc
Payment: Quản lý thông tin nạp/rút tiền
Trang 15● Liên kết với các hệ thống ngân hàng, ví điện tử để thực thi tính năng nạp tiền, chuyển tiền, rút tiền
● Chức năng: nơi người dùng nhập thông tin đăng ký tài khoản cá nhân
● Yêu cầu: phải vượt qua các xác thực trường nhập liệu
Edit Profile Form:
● Chức năng: hiển thị form để người dùng chỉnh sửa hồ sơ cá nhân
● Yêu cầu: phải vượt qua các xác thực trường nhập liệu
Post UI: hiển thị các bài đăng, bài đăng gồm nhiều loại như thông thường, mua bán,
đấu giá
Trang 16User Rating UI : hiển thị thông tin đánh giá của người dùng
News Feed : hiển thị thông tin các bài đăng mua bán đấu giá sản phẩm ,
Create Post Form:
● Chức năng: hiển thị form để người dùng tạo bài đăng mới
● Yêu cầu: phải vượt qua các xác thực trường nhập liệu
Transaction History UI : Hiển thị giao diện lịch sử giao dịch của người dùng
Chat Pane : Hiển thị khung chat của người dùng với các người dùng khác
Notification Bar : Hiển thị thanh thông báo bất kì trường hợp mua bán , đánh giá ,
… liên quan đến người dùng
Payment UI: Hiển thị giao diện nạp, rút tiền, liên kết tài khoản ngân hàng
Authentication Controller : Nơi xác thực thông tin người dùng liên quan đến đăng
nhập , đăng xuất , quên mật khẩu ,
User Controller: Nơi xử lý các chức năng như đăng ký, chỉnh sửa thông tin cá nhân,
…
Report Controller: Nơi xử lý các chức năng liên quan tới báo cáo bài đăng
Post Controller: Nơi xử lý các chức năng liên quan tới bài đăng như tạo, thêm sửa,
xóa, comment, vote, …
Transaction Controller: Nơi xử lý các chức năng liên quan tới các giao dịch trực
tuyến thông qua trang web
Communication Controller: Nơi xử lý các chức năng liên quan tới chat, video call,
voice call, …
Notification Controller: Nơi xử lý các chức năng liên quan tới thông báo
Payment Controller : Nơi xử lý thanh toán nạp rút tiền của người dùng
User : Nơi lưu trữ tất cả thông tin cá nhân của người dùng
Report: Nơi lưu trữ thông tin về các báo cáo của người dùng
Post: Nơi lưu trữ tất cả bài đăng của người dùng
Transaction: Nơi lưu trữ tất các các giao dịch thông qua trang web
Message: Nơi lưu trữ các tin nhắn, lịch sử cuộc gọi, …
Notification: Nơi lưu trữ thông báo mà hệ thống gửi đến người dùng.
Payment : Nơi lưu trữ tất các thanh toán của người dùng như nạp, rút
Users Management Panel: Khung hiển thị các thao táo đối với user và các thông kế
có liên quan tới user như tỉ lệ người dùng mới hàng tuần, …
Reports Management Panel: Khung quản lý , thống kê tất cả các bài báo cáo của
mọi người dùng trong hệ thống
Posts Management Panel: Khung quản lý , thống kê tất cả các bài đăng của tất cả
người dùng trong hệ thống
Trang 17Transactions Management Panel: Khung quản lý thông tin mọi giao dịch trong hệ
Trang 18Hình 7.2 Sơ đồ post subsystem
Transaction System
Hình 7.3 Sơ đồ transaction subsystem
● 7.2 Các phần tử thiết kế ánh xạ từ lớp phân tích
Trang 19Lớp phân tích Phần tử thiết kế Gói
User rating UI
User UI
UI
Login, Register Form
Edit profile form
Newsfeed
Post UI Post UI
Create post form
Chat pane Communication UI
Transaction history UI Transaction UI
Notification bar Notification UI
Authentication Controller Authentication Controller User management
User Controller User Controller User management
Communication Controller Communication Controller User management
Report Controller Report Controller Report management
Transaction Controller Transaction Controller Transaction management
Payment Controller Payment Controller Payment
Post Controller Post Controller Post management
Notification Controller Notification Controller Notification
Notification Notification Notification
Transaction Transaction Transaction management
Bảng 7.1 Bảng ánh xạ từ lớp phân tích sang thành phần thiết kế
● 8 Cơ chế thiết kế và kiến trúc thực thi
● 8.1 Cơ chế thiết kế
Cơ chế phân tích
Trang 20Lớp phân tích Cơ chế phân tích
Transaction history UI None
Authentication Controller Distribution
Communication Controller Distribution
Report Controller Distribution
Transaction Controller Distribution
Payment Controller Distribution
Notification Controller Distribution
Notification Persistency, Legacy Interface
Transaction Persistency, Security, Legacy Interface
Message Persistency, Security, Legacy Interface
Trang 21Payment Persistency, Security, Legacy Interface
Bảng 8.1 Bảng ánh xạ từ lớp phân tích sang cơ chế phân tích
Cơ chế thiết kế
Cơ chế phân tích Cơ chế thiết kế Cơ chế cài đặt
+ MySql 5.7.37Security Cryptographic security
protocol
SSL/TLS (Secure SocketsLayer/ Transport Layer Security) version 2.0Legacy Interface API Restful API, Third-party
apisDistribution gRPC(Remote Procedure
Call)
PHP version 8.0
Bảng 8.2 Bảng ánh xạ từ cơ chế phân tích, cơ chế thiết kế, cơ chế cài đặt
● 8.2 Kiến trúc thực thi
Hình 8.1: Mô tả kiến trúc thực thi
Mô tả các thành phần trong kiến trúc thực thi:
Web Server process: Process chính, chạy trên máy chủ chính của hệ thống