Thông qua ứng dụng, người dùng có thể nắm được những thông tin về các món đồ chơi đăng lên trao đổi, đăng đồ chơi trao đổi của mình lên, yêu cầu trao đổi đồ chơi với người khác, trò chuy
Trang 1ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
Trang 2ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
Trang 3LỜI CẢM ƠN
Nhóm chúng em xin gửi lời cảm ơn chân thành và sự tri ân sâu sắc đến cô Thái Thụy Hàn Uyển đã hướng dẫn, tạo điều kiện cho nhóm chúng em tìm hiểu về đề tài xây dựng ứng dụng trao đổi đồ chơi
Trong vòng 15 tuần, qua các buổi học, nhờ sự hướng dẫn nhiệt tình của cô, chúng em đã tiếp thu được những kiến thức quan trọng, bổ ích, hoàn thành đồ án
Mặc dù đã cố gắng hoàn thành báo cáo với tất cả nỗ lực song báo cáo của nhóm chúng em chắc chắn không tránh khỏi những thiếu sót, chúng em rất mong nhận được sự thông cảm
và góp ý chân thành từ cô Nhóm em xin chân thành cảm ơn
Thành phố Hồ Chí Minh, tháng 6 năm 2022
Nguyễn Đức Thành Phát
Lù Xuân Thái
Trang 4ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌCCÔNG NGHỆ
Cán bộ hướng dẫn: Thái Thị Hàn Uyển
Thời gian thực hiện: Từ ngày 24/02/2022 đến ngày 17/06/2022
Sinh viên thực hiện:
Nguyễn Đức Thành Phát – 19521995
Lù Xuân Thái - 19522186
Nội dung đề tài:
• Đặt vấn đề
Có những đứa trẻ xin mua đồ chơi mới mỗi ngày nhưng chắc chắn trong một ngày hoặc
tuần vài tuần, bạn có thể tìm thấy món đồ chơi đó ở một góc nhà của bạn Cứ khoảng
238 đồ chơi được thu thập với một đứa trẻ, nhưng chỉ sử dụng 12 đồ chơi để chơi trong
khoảng thời gian trong một ngày
Hiện nay, chi phí dành cho trẻ em trong mỗi gia đình đều là một vấn đề rất lớn Trong đó
có chi phí về đồ chơi dành cho trẻ Trẻ em thích chơi đồ chơi tuy nhiên rất nhanh chán
nếu chơi mãi một món đồ chơi Khiến cho phụ huynh phải mua đồ chơi mới để thay thế
các đồ chơi cũ
• Mục tiêu đề tài
Để khắc phục cho vấn đề, ứng dụng Toydee được sinh ra nhằm cho phép người dùng
trao đổi các món đồ chơi với nhau, tiết kiệm chi phí Các phụ huynh trao đổi đồ chơi mà
họ đã có với một số phụ huynh khác có thể cung cấp đồ chơi mà họ có Cả hai cha mẹ sẽ
có thể cung cấp một món đồ chơi mới cho con của họ mà không cần chi một xu
Trang 5Thông qua ứng dụng, người dùng có thể nắm được những thông tin về các món đồ chơi đăng lên trao đổi, đăng đồ chơi trao đổi của mình lên, yêu cầu trao đổi đồ chơi với người khác, trò chuyện với người trao đổi, …
• Phương pháp nghiên cứu
- Tham khảo các tài liệu trực tuyến về các hoạt động trao đổi qua lại giữa người dùng
- Tiến hình khảo sát lấy yêu cầu thực tế từ người dùng
- Tham khảo một số ý tưởng và ứng dụng trao đổi đồ chơi qua internet
- Tham khảo tài liệu, video hướng dẫn cách áp dụng ứng dụng các công nghệ
mới vào quá trình xây dựng ứng dụng
• Ý nghĩa và kết quả của đề tài
Sản phẩm
- Tạo ra được ứng dụng trao đổi đồ chơi trực tuyến giữa các người dùng
- Đáp ứng được các chức năng đề ra của ứng dụng
Tài liệu
- Kiến thức về các công nghệ đã sử dụng vào đồ án: ngôn ngữ, framework, database, …
Trang 6Kế hoạch thực hiện:
Giai đoạn Thời gian Mô tả
Giai đoạn 1 24/02 - 31/03 Lựa chọn đề tài
Tìm hiểu công nghệ Khảo sát ứng dụng
Giai đoạn 2 01/04/ - 29/04 Thiết kế giao diện
Thiết kế một số chức năng
Giai đoạn 3 30/04 – 29/05 Xây dựng giao diện
Hoàn thiện một số chức năng Giai đoạn 4 30/05 – 15/06 Hoàn thiện các chứng năng còn lại
Xây dựng chức năng onBoaring
Xây dựng chức năng trang chủ Xây dựng chức năng trang cá nhân Xây dựng chức năng đồ chơi Xây dựng chức năng đồ chơi Xây dựng chức năng chatting Xây dựng chức năng sự kiện
Trang 8MỤC LỤC
CHƯƠNG 1 GIỚI THIỆU 1
1.1 Đặt vấn đề 1
1.2 Mục tiêu đề tài 1
1.3 Phạm vi đề tài 1
1.4 Phương pháp nghiên cứu 1
1.5 Ý nghĩa và kết quả của đề tài 2
1.5.1 Sản phẩm 2
1.5.2 Tài liệu 2
CHƯƠNG 2 CƠ SỞ LÝ THUYẾT 3
2.1 Ngôn ngữ Dart 3
2.2 Framework Flutter 3
2.2.1 Flutter là gì 3
2.2.2 Tại sao nên sử dụng Flutter 3
2.3 Firebase 4
2.3.1 Ưu điểm 4
2.3.2 Nhược điểm 5
CHƯƠNG 3 KHẢO SÁT VÀ PHÂN TÍCH ĐẶT TẢ YÊU CẦU 6
3.1 Khảo sát hiện hiện trạng 6
3.1.1 Phương pháp khảo sát 6
3.1.2 Đối tượng khách hàng 6
3.1.3 Danh sách câu hỏi khảo sát 6
3.2 Danh sách các yêu cầu 6
CHƯƠNG 4 PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG 9
4.1 Phân tích thiết kế hệ thống 9
4.1.1 Công nghệ sử dụng 9
4.1.2 Kiến trúc hệ thống 9
4.1.3 Kiến trúc ứng dụng 9
4.1.4 Sơ đồ use case 10
4.1.4.1 Diagrams 10
4.1.4.2 Danh sách actor 12
Trang 94.1.4.4 Mô tả chi tiết use case 12
4.1.5 Class diagrams 23
4.1.5.1 Diagrams 23
4.1.5.2 Danh sách các bảng 23
4.1.5.3 Mô tả chi tiết các bảng 24
4.1.6 Thiết kế cơ sở dữ liệu 28
4.1.6.1 Danh sách các collection trong cơ sở dữ liệu 28
4.1.6.2 Sơ đồ thiết kế 28
4.1.6.3 Mô tả chi tiết các collection 28
4.1.7 Activity diagram 32
4.1.7.1 Login 32
4.1.7.2 Sign Up 33
4.1.7.3 Forgot password 34
4.1.7.4 Swap 35
4.1.7.5 Post toy 36
4.1.7.6 Search 37
4.1.7.7 Donate toy 38
4.1.7.8 Delete toy 39
4.1.7.9 Create event 40
4.1.8 Sequence diagrams 41
4.1.8.1 Login 41
4.1.8.2 Sign Up 42
4.1.8.3 Chatting 43
4.1.8.4 Delete post 43
4.1.8.5 Filter 44
4.1.8.6 Search 44
4.1.8.7 Change information 45
4.1.8.8 Create event 45
4.1.8.9 Donate toy 46
4.2 Thiết kế giao diện 47
4.2.1 Danh sách màn hình 47
Trang 104.2.2.1 Onboarding 47
4.2.2.2 Login 48
4.2.2.3 Sign Up 50
4.2.2.4 Reset password 51
4.2.2.5 Home 52
4.2.2.6 Filter 53
4.2.2.7 Search 54
4.2.2.8 All toys 54
4.2.2.9 Toy detail 55
4.2.2.10 Welcome upload 56
4.2.2.11 Upload toy screen 57
4.2.2.12 Preview upload 59
4.2.2.13 Done upload 59
4.2.2.14 Profile 60
4.2.2.15 Configuration 62
4.2.2.16 Password configuration 63
4.2.2.17 Phone configuration 63
4.2.2.18 Name configuration 64
4.2.2.19 Date of birth configuration 65
4.2.2.20 Gender configuration 66
4.2.2.21 Address configuration 67
4.2.2.22 List events 68
4.2.2.23 List my events 69
4.2.2.24 Upload event 70
4.2.2.25 List toy donated 71
4.2.2.26 Request screen 72
4.2.2.27 Chatting screen 73
4.2.2.28 Chatting detail 74
CHƯƠNG 5 KẾT LUẬN 76
5.1 Kết quả đạt được 76
5.2 Ưu điểm 76
Trang 115.4 Hướng phát triển 76
Trang 12CHƯƠNG 1 GIỚI THIỆU
1.1 Đặt vấn đề
Có những đứa trẻ xin mua đồ chơi mới mỗi ngày nhưng chắc chắn trong một ngày hoặc tuần vài tuần, bạn có thể tìm thấy món đồ chơi đó ở một góc nhà của bạn Cứ khoảng 238
đồ chơi được thu thập với một đứa trẻ, nhưng chỉ sử dụng 12 đồ chơi để chơi trong
khoảng thời gian trong một ngày
Hiện nay, chi phí dành cho trẻ em trong mỗi gia đình đều là một vấn đề rất lớn Trong đó
có chi phí về đồ chơi dành cho trẻ Trẻ em thích chơi đồ chơi tuy nhiên rất nhanh chán nếu chơi mãi một món đồ chơi Khiến cho phụ huynh phải mua đồ chơi mới để thay thế các đồ chơi cũ
1.4 Phương pháp nghiên cứu
- Tham khảo các tài liệu trực tuyến về các hoạt động trao đổi qua lại giữa người dùng
- Tiến hình khảo sát lấy yêu cầu thực tế từ người dùng
Trang 13- Tham khảo một số ý tưởng và ứng dụng trao đổi đồ chơi qua internet
- Tham khảo tài liệu, video hướng dẫn cách áp dụng ứng dụng các công nghệ
mới vào quá trình xây dựng ứng dụng
1.5 Ý nghĩa và kết quả của đề tài
1.5.1 Sản phẩm
- Tạo ra được ứng dụng trao đổi đồ chơi trực tuyến giữa các người dùng
- Đáp ứng được các chức năng đề ra của ứng dụng
1.5.2 Tài liệu
- Kiến thức về các công nghệ đã sử dụng vào đồ án: ngôn ngữ, framework, database, …
Trang 14CHƯƠNG 2 CƠ SỞ LÝ THUYẾT
2.1 Ngôn ngữ Dart
Dart là ngôn ngữ lập trình mới, được phát triển bởi Google, hiện đã được chấp thuận bởi
tổ chức Ecma Dart được sử dụng để xây dựng các loại ứng dụng: web, server, di động (IOS và Android với công cụ Flutter)
Dart là ngôn ngữ hỗ trợ lập trình hướng đối tượng, cú pháp kiểu C, mã code Dart có thể biên dịch thành JavaSript để chạy trên trình duyệt Nó hỗ trợ những khái niệm lập trình hiện đại như giao diện lớp, lớp trừu tượng, …
2.2 Framework Flutter
2.2.1 Flutter là gì
Flutter là mobile UI framework của Google để tạo ra các giao diện chất lượng cao trên iOS và Android trong khoảng thời gian ngắn Flutter hoạt động với những code sẵn có được sử dụng bởi các lập trình viên, các tổ chức
Flutter gồm 2 thành phần quan trọng:
- Một SDK (Software Development Kit): Một bộ sưu tập các công cụ sẽ giúp bạn phát triển các ứng dụng của mình Điều này bao gồm các công cụ để biên dịch mã của bạn thành mã máy gốc (mã cho iOS và Android)
- Một Framework (UI Library based on widgets): Một tập hợp các thành phần giao diện người dùng (UI) có thể tái sử dụng (button, text inputs, slider, ) giúp bạn có thể cá nhân hóa tùy theo nhu cầu của riêng mình
2.2.2 Tại sao nên sử dụng Flutter
- Phát triển ứng dụng nhanh chóng: Tính năng hot reload giúp bạn nhanh chóng và dễ dàng thử nghiệm, xây dựng giao diện người dùng, thêm tính năng và sửa lỗi nhanh hơn Trải nghiệm tải lại lần thứ hai, mà không làm mất trạng thái, trên emulator, simulator và device cho iOS và Android
- Giao diện người dùng đẹp và thu hút: Thỏa mãn người dùng của bạn với các widget built-in đẹp mắt của Flutter theo Material Design và Cupertino (iOS-flavor), các giao diện
Trang 15lập trình ứng dụng (API) chuyển động phong phú, scroll tự nhiên mượt mà và tự nhận thức được nền tảng
- Framework hiện đại: Dễ dàng tạo giao diện người dùng của bạn với framework hiện đại của Flutter và tập hợp các platform, layout và widget phong phú Giải quyết các thách thức giao diện người dùng khó khăn của bạn với các API mạnh mẽ và linh hoạt cho 2D, animation, gesture, hiệu ứng và hơn thế nữa
2.3 Firebase
Firebase là một nền tảng mà Google cung cấp để phát triển các ứng dụng di động
và trang web, hỗ trợ Developer trong việc đơn giản hóa các thao tác với dữ liệu và không cần tác động tới backend hay server
- Một nền tảng, đa dịch vụ: Firebase cung cấp đầy đủ các dịch vụ hỗ trợ phát triển web, bạn có thể chọn database Firestore hoặc Realtime theo ý muốn
- Là một phần của Google: Firebase đã được mua lại và hiện tại đang là một phần của Google Nó khai thác triệt để sức mạnh và các dịch vụ sẵn có của Google
- Tập trung phát triển chủ yếu về giao diện người dùng: Firebase cho phép lập trình viên tập trung chủ yếu vào phát triển phần giao diện người dùng nhờ kho Backend mẫu phong phú đa dạng
- Không có máy chủ: Điều này giúp Firebase có khả năng tối ưu hóa về hiệu suất làm việc thông qua mở rộng cụm database
Trang 16- Học máy: Firebase cung cấp học máy cho lập trình viên, hỗ trợ tối đa cho việc phát triển ứng dụng
- Tạo ra lưu lượng truy cập: Với khả năng hỗ trợ tạo lập các chỉ mục, Firebase giúp nâng cao thứ hạng của ứng dụng trên bảng xếp hạng Google, từ đó tăng lượt traffic
- Theo dõi lỗi: Firebase là công cụ phát triển, khắc phục lỗi tuyệt vời
- Sao lưu: Firebase sao lưu thường xuyên, giúp đảm bảo tính sẵn có và bảo mật thông tin cho dữ liệu
2.3.2 Nhược điểm
- Không phải mã nguồn mở
- Chỉ hoạt động trên CSDL NoSQL
- Lập trình viên không được truy cập mã nguồn
- Phạm vi hoạt động bị hạn chế ở một vài quốc gia
- Một vài dịch vụ cần trả phí, chi phí dành cho Firebase tương đối lớn và không ổn
- Chỉ có thể chạy trên Google Cloud
Trang 17CHƯƠNG 3 KHẢO SÁT VÀ PHÂN TÍCH ĐẶT TẢ YÊU CẦU
3.1 Khảo sát hiện hiện trạng
3.1.1 Phương pháp khảo sát
Dùng bảng câu hỏi
3.1.2 Đối tượng khách hàng
Những người trong độ tuổi từ 18 – 30
3.1.3 Danh sách câu hỏi khảo sát
• Giới tính của bạn là gì?
• Độ tuổi của bạn là bao nhiêu?
• Bạn đang là sinh viên trường nào?
• Gia đình bạn có thường chi tiền để mua sắm đồ chơi không?
• Nếu có thì số tiền đó nằm ở mức nào?
• Gia đình bạn có những đồ chơi không sử dụng không?
• Gia đình bạn có nhu cầu trao đổi món đồ chơi không?
• Bạn có từng sử dụng qua ứng dụng trao đổi đồ chơi nào chưa?
• Tần suất sử dụng các ứng dụng này?
• Theo bạn, ứng dụng trao đổi đồ chơi sẽ mang lại những lợi ích như thế nào?
• Theo bạn, một ứng dụng trao đổi đồ chơi nên tập trung vào mặt nào?
• Các chức năng cần thiết của một ứng dụng trao đổi là?
3.2 Danh sách các yêu cầu
STT Phân loại Tên yêu cầu Mô tả
1 Chức năng Đăng bài trao đổi các món
đồ chơi
Tính năng quan trọng của ứng dụng Người dùng nhập bắt đầu nhập thông tin, xem trước bài đăng
Trang 182 Chức năng Tìm kiếm nhanh theo yêu
cầu người dùng
Ứng dụng hiện ra một danh sách các điều kiện lọc Người dùng chọn điều kiện mong muốn để tìm sản phẩm
3 Chức năng Trò chuyện giữa các bên
trao đổi
Sau khi đồng ý trao đổi, hệ thống kết nối 2 người dùng với nhau thông qua màn hình tin nhắn
Hai bên tự trao đổi hình thức nhận đồ chơi (Ứng dụng chưa hỗ trợ vận chuyển)
4 Chức năng Đánh giá và điểm tin cậy
người dùng
Sau khi hoàn thành một trao đổi, người dùng sẽ được tăng điểm tin cậy (Điểm đánh giá),
Sau khi quyên góp cũng sẽ nhận được điểm tin cậy
5 Chức năng Kiểm trang tình trạng đồ
chơi chơi
Hệ thống cần xác nhận tình trạng của món đồ chơi thông qua thông tin người dùng cung cấp trong bài đăng Sau khi xác nhận xong, bài đăng sẽ được hiển thị trên ứng dụng
6 Chức năng Đăng ký Hệ thống cho phép người dùng đăng
ký tài khoản mới bằng email, số điện thoại, google, facebook, …
Sau khi đăng ký, hệ thống sẽ gửi mail xác nhận cho người dùng (cần xác nhận email)
7 Chức năng Đăng nhập Người dùng đăng nhập ứng dụng
bằng tài khoản đã đăng ký
Người dùng có thể thay đổi mật khẩu thông qua email khi quên mật khẩu
Trang 198 Chức năng Cài đặt Hệ thống cho phép người dùng thay
đổi ngôn ngữ theo vị trí
Hệ thống cho phép người dùng thay đổi giao diện sáng tối ứng dụng Người dùng có thể đặt lại mật khẩu hoặc lưu đăng nhập
9 Chức năng Thông báo Hệ thống sẽ thông báo cho người
dùng khi có yêu cầu trao đổi đồ chơi
10 Giao diện Giao diện bắt mắt, đơn
giản
11 Hiệu năng Thời gian truy cập, tốc độ
xử lý tương tác, độ chính xác cao
Trang 20CHƯƠNG 4 PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG
4.1 Phân tích thiết kế hệ thống
4.1.1 Công nghệ sử dụng
• Nền tảng: Flutter Framework, version 4.7.2
• Ngôn ngữ: Dart
• UI Framework: Flutter Framework
• UI design tool: Figma
• Database: Firebase Cloud Firebase
• IDE: VS Code
• Kiến trúc ứng dụng: MVVM’
4.1.2 Kiến trúc hệ thống
Mô hình Client – Server
- Lớp Client: Hiển thị giao diện người dùng, thông qua kết nối Internet để kết nối đến cơ
sở dữ liệu quản lý thư viện Là nơi diễn ra các tương tác của người dùng với chương trình như nhập, các thao tác truy xuất dữ liệu
- Lớp Server: Quản lý và chứa toàn bộ dữ liệu của phần mềm Đồng thời xử lý các yêu
cầu nhập/xuất được gửi xuống từ lớp Client
4.1.3 Kiến trúc ứng dụng
Mô hình MVVM
Trang 214.1.4 Sơ đồ use case
4.1.4.1 Diagrams
Trang 234.1.4.2 Danh sách actor
STT Tên Mô tả
1 User Người sử dụng ứng dụng
4.1.4.3 Danh sách các use case
STT Tên use case
Trang 24Tác nhân Người sử dụng ứng dụng
Điều kiện kích hoạt Người dùng nhấn vào nút đăng nhập trên màn hình
Luồng chính Hành động của tác nhân Hành động của hệ thống
1 Nhập thông tin đăng nhập, bao gồm email và password
Luồng thay thế Không
Điều kiện tiên quyết • Người dùng có tài khoản trong hệ thống
• Người dùng đang ở màn hình đăng nhập Điều kiện sau • Đăng nhập thành công: chuyển sang màn hình trang chủ
• Đăng nhập thất bại: thông báo cho người dùng
Trang 25Luồng thay thế Luồng thay thế 1
1 Hiện lên thông báo cho người dùng: sai thông tin hoặc là tạo tài khoản thất bại
2 Tiến nhanh cho người dùng nhập lại thông tin
Điều kiện tiên quyết • Ứng dụng đang được chạy
• Người dùng đang ở màn hình đăng ký Điều kiện sau • Đăng ký thành công: chuyển sang màn hình đăng nhập
• Đăng ký thất bại: thông báo cho người dùng
4.1.4.4.3 Forgot password
Tên Forgot password
Mô tả Người dùng không nhớ mật khẩu tài khoản và muốn cài đặt lại
mật khẩu mới Tác nhân Người dùng
Điều kiện kích hoạt Người dùng ở màn hình quên mật khẩu, nhấn vào nút gửi email Luồng chính Hành động của tác nhân Hành động của hệ thống
1 Người dùng điền email của tài khoản đã tạo
2 Nhấn vào nút gửi email
1 Kiểm tra email người dùng
có trong hệ thống hay không
2 Nếu có tiến hành gửi email cài đặt lại mật khẩu Nếu không tiến hành luồng thay thế
1 Luồng thay thế Luồng thay thế 1
1 Hiện lên thông báo cho người dùng: nhập sai email
2 Tiến nhanh cho người dùng nhập lại thông tin
Điều kiện tiên quyết • Ứng dụng đang được chạy
• Người dùng đang ở màn hình quên lại mật khẩu
Điều kiện sau • Thành công: chuyển sang màn hình xác nhận
• Đăng ký thất bại: thông báo cho người dùng
Trang 264.1.4.4.4 Save user credentials
Tên Save user credentials
Mô tả Lưu lại thông tin người dùng sau khi đăng nhập
Tác nhân Người dùng
Điều kiện kích hoạt Người dùng ở màn hình đăng nhập và tiến hành đăng nhập tài
khoản
Luồng chính Hành động của tác nhân Hành động của hệ thống
1 Người dùng điền thông tin đăng nhập
Luồng thay thế Không
Điều kiện tiên quyết • Ứng dụng đang được chạy
• Người dùng đang ở màn hình đăng nhập Điều kiện sau • Đăng nhập thành công: chuyển sang màn hình trang chủ,
lưu thông tin người dùng
• Đăng nhập thất bại: thông báo cho người dùng
Trang 271 Người dùng nhập thông tin
2 Người dùng gửi yêu cầu đến
hệ thống bằng cách nhấn nút
1 Kiểm tra thông tin người dùng nhập vào ở cơ sở dữ liệu
Luồng thay thế Không
Điều kiện tiên quyết • Ứng dụng đang được chạy
• Người dùng đang ở màn hình đăng nhập, đăng ký, … Điều kiện sau • Xác thực thành công: thực hiện thao tác tiếp theo
• Xác thực thất bại: thông báo lỗi cho người dùng
1 Người dùng nhần vào nút yêu cầu đồ chơi ở màn hình đồ chơi
2 Người dùng chọn đồ chơi của mình để trao đổi với người khác
1 Kiểm tra hai đồ chơi có hợp
lệ hay không
2 Nếu hợp lệ sẽ gửi yêu cầu đến người dùng được yêu cầu trao đổi Nếu không sẽ không yêu cầu trao đổi
3 Nếu yêu cầu được xác nhận
là đồng ý sẽ tạo trò chuyện giữ hai người dùng Nếu không thì
sẽ không hiển thị
Luồng thay thế Không
Trang 28Điều kiện tiên quyết • Ứng dụng đang được chạy
• Người dùng ở màn hình đồ chơi
• Người dùng chọn đồ chơi trao đổi
Điều kiện sau • Yêu cầu thành công: Tạo yêu cầu gửi tới người dùng
• Yêu cầu thất bại: thông báo cho người dùng
4.1.4.4.7 Post toy exchange
Tên Post toy exchange
Mô tả Người dùng đăng bài về món đồ chơi muốn trao đổi
Tác nhân Người dùng
Điều kiện kích hoạt Người dùng ở màn hình chính, nhấn vào nút đăng bài
Luồng chính Hành động của tác nhân Hành động của hệ thống
1 Người dùng điền tất cả thông tin của món đồ chơi
2 Nhấn vào nút đăng bài
1 Kiểm tra dữ liệu người dùng nhập vào
2 Đăng tải bài đăng của người dùng lên mạng
Luồng thay thế Không
Điều kiện tiên quyết • Ứng dụng đang được chạy
• Người dùng đang ở màn hình chính
Điều kiện sau • Đăng bài thành công: chuyển sang màn hình thông báo
đăng bài thành công
• Đăng bài thất bại: thông báo cho người dùng
4.1.4.4.8 Delete post
Tên Delete post
Mô tả Người dùng xoá bài đăng của mình
Tác nhân Người dùng
Trang 29Điều kiện kích hoạt Người dùng ở màn hình hiện thị bài đăng, chọn bài đăng đó Luồng chính Hành động của tác nhân Hành động của hệ thống
1 Người dùng chọn xoá bài đăng
1 Xác nhận yêu cầu của người dùng
2 Xoá bài đăng
Luồng thay thế Không
Điều kiện tiên quyết • Ứng dụng đang được chạy
• Người dùng đang ở màn hình đăng ký Điều kiện sau • Xoá thành công: chuyển sang màn hình chính
• Xoá thất bại: thông báo cho người dùng
4.1.4.4.9 Filters
Tên Lọc
Mô tả Lọc các đồ chơi hiện thị trên màn hình theo quyết định của
người dùng Tác nhân Người dùng
Điều kiện kích hoạt Người dùng nhấn vào nút “Filter”
Luồng chính 1 Người dùng chọn các thuộc tính của đồ chơi
2 Chọn OK
3 Hiện thị danh sách các đồ chơi có thuộc tính đã chọn Luồng thay thế Không
Điều kiện tiên quyết Người dùng đã đăng nhập vào hệ thống
Điều kiện sau Hiện thị danh sách đồ chơi với thuộc tính được chọn
4.1.4.4.10 Chatting
Tên Chatting
Mô tả Người dùng chat với những người đồng ý đổi đồ chơi
Trang 30Tác nhân Người dùng
Điều kiện kích hoạt Người dùng ở màn hình chat
Luồng chính Hành động của tác nhân Hành động của hệ thống
1 Người dùng điền thông tin muốn gửi
2 Nhấn vào nút gửi
1 Chuyển thông tin của người dùng đến người nhận
Luồng thay thế Không
Điều kiện tiên quyết • Ứng dụng đang được chạy
• Người dùng đang ở màn hình chat Điều kiện sau • Gửi thành công: thay đổi trạng thái tin nhắn
• Gửi thất bại: thông báo cho người dùng
Luồng chính Hành động của tác nhân Hành động của hệ thống
1 Người dùng điền thông tin liên quan đến đồ chơi (tên, thuộc tính,…)
2 Nhấn vào nút tìm kiếm
1 Truy xuất dữ liệu khớp với thông tin của người dùng đã nhập
2 Hiện danh sách đã tìm được
Luồng thay thế Không
Điều kiện tiên quyết • Ứng dụng đang được chạy
• Người dùng đang ở màn hình hiện thị danh sách đồ chơi
Trang 31Điều kiện sau • Tìm kiếm thành công: Hiện danh sách đồ chơi phù hợp
• Tìm kiếm thất bại: thông báo cho người dùng
4.1.4.4.12 Create event
Tên Create event
Mô tả Người dùng muốn tạo sự kiện để quyên gió đồ chơi
Tác nhân Người dùng
Điều kiện kích hoạt Người dùng ở màn hình thông tin cá nhân, chọn vào nút sự kiện Luồng chính Hành động của tác nhân Hành động của hệ thống
1 Người dùng chọn tạo sự kiện
2 Điền thông tin của sự kiện
Luồng thay thế Luồng thay thế 1
1 Hiện lên thông báo cho người dùng: sai thông tin hoặc là tạo
sự kiện thất bại
2 Tiến hành cho người dùng nhập lại thông tin
Điều kiện tiên quyết • Ứng dụng đang được chạy
• Người dùng đang ở màn hình đăng tải sự kiện Điều kiện sau • Tạo sự kiện thành công: chuyển sang màn hình hiện thị
danh sách sự kiện
• Tạo sự kiện thất bại: thông báo cho người dùng
4.1.4.4.13 Donate toy
Tên Donate toy
Mô tả Người dùng muốn quyên góp đồ chơi cho sự kiện
Trang 32Tác nhân Người dùng
Điều kiện kích hoạt Người dùng ở màn hình hiện thị danh sách sự kiện, chọn
sự kiện muốn quyên góp Luồng chính Hành động của tác nhân Hành động của hệ thống
1 Người dùng điền thông tin của đồ chơi
Luồng thay thế Luồn thay thế 1:
1 Hiện lên thông báo cho người dùng: sai thông tin hoặc
là quyên góp cho sự kiện thất bại
2 Tiến hành cho người dùng nhập lại thông tin
Điều kiện tiên quyết • Ứng dụng đang được chạy
• Người dùng đang ở màn hình hiện thị danh sách sự kiện
Điều kiện sau • Thay đổi thành công: chuyển sang màn hình chính
• Thay đổi thất bại: thông báo cho người dùng
4.1.4.4.14 Change information
Tên Change information
Mô tả Người dùng muốn đổi thông tin của bài đăng
Tác nhân Người dùng
Điều kiện kích hoạt Người dùng ở màn hình hiện thị bài đăng, chọn bài đăng
đó Luồng chính Hành động của tác nhân Hành động của hệ thống
Trang 331 Người dùng điền lại thông tin muốn sửa
Điều kiện tiên quyết • Ứng dụng đang được chạy
• Người dùng đang ở màn hình hiện thị bài đăng Điều kiện sau • Thay đổi thành công: chuyển sang màn hình chính
• Thay đổi thất bại: thông báo cho người dùng
Trang 351 Id Int Private Mã người dùng
2 Username String Private Tên tài khoản người dùng
3 Password String Private Mật khẩu tài khoản người dùng
4 Email Boolean Private Email của người dùng
5 IsActived Boolean Private Tình trạng tài khoản
6 IsEmailVerified String Private Tình trạng xác thực email
7 Phone String Private Số điện thoại tài khoản
8 FirstName String Private Tên người dùng
9 LastName String Private Họ và tên đệm người dùng
10 Birthday Datetime Private Ngày sinh nhật người dùng
11 Gender Boolean Private Giới tính người dùng
12 Address String Private Địa chỉ người dùng
13 ImageUrl String Private Hình ảnh người dùng
14 CreateDate Datetime Private Ngày tạo tài khoản người dùng
15 LastUpdateDate Datetime Private Ngày chỉnh sửa tài khoản
người dùng
Trang 364.1.5.3.2 Bảng Chatting
STT Tên thuộc tính Kiểu Phạm vi
truy cập
Mô tả
1 Id Int Private Mã cuộc trò chuyện
2 IdRequestingUser Int Private Mã người yêu cầu
3 IdRequestedUser Int Private Mã người được yêu cầu
4.1.5.3.3 Bảng Message
STT Tên thuộc tính Kiểu Phạm vi
truy cập
Mô tả
1 Id Int Private Mã tin nhắn
2 IdChatting Int Private Mã cuộc trò chuyện
3 MessageText String Private Nội dung tin nhắn
4 SendAt Datetime Private Thời gian gửi
5 SendBy Int Private Người gửi
4.1.5.3.4 Bảng Rating
STT Tên thuộc tính Kiểu Phạm vi
truy cập
Mô tả
1 Id Int Private Mã người dùng
2 UserId String Private Tên tài khoản người dùng
3 Swaps String Private Mật khẩu tài khoản người dùng
4 Donation Boolean Private Email của người dùng
4.1.5.3.5 Bảng Swap
Trang 37STT Tên thuộc tính Kiểu Phạm vi
truy cập
Mô tả
1 Id Int Private Mã trao đổi
2 UserId Int Private Mã người dùng
3 IdRequestedUser Int Private Mã người được yêu cầu
4 ToyId Int Private Mã đồ chơi
5 Status Boolean Private Tình trạng trao đổi
4.1.5.3.6 Bảng Toy
STT Tên thuộc tính Kiểu Phạm vi
truy cập
Mô tả
1 Id Int Protected Mã đồ chơi
2 UserId String Protected Tên tài khoản người dùng
3 Name String Protected Tên đồ chơi
4 Description Boolean Protected Mô tả đồ chơi
5 Location String Protected Vị trí đồ chơi
6 Image String Protected Ảnh đồ chơi
7 IsSwapped Boolean Protected Đã được trao đổi hay chưa
8 IsValid Boolean Protected Có hiệu lực hay không
9 CreateDate Datetime Protected Ngày tạo
4.1.5.3.7 Bảng ToyType
STT Tên thuộc tính Kiểu Phạm vi
truy cập
Mô tả
1 Id Int Private Mã loại đồ chơi
2 ToyId Int Private Mã đồ chơi
3 Categories String Private Loại đồ chơi
4 Condition Boolean Private Tình trạng đồ chơi
Trang 385 GenderType Int Private Giới tính phù hợp với đồ chơi
6 Age Int Private Độ tuổi phù hợp với đồ chơi
1 Id Int Private Mã đồ chơi
2 UserId Int Private Mã người dùng
3 Name String Private Tên sự kiện
4 Description String Private Mô tả sự kiện
5 StartDate Datetime Private Ngày bắt đầu
6 EndDate Datetime Private Ngày kết thúc
Trang 394.1.6 Thiết kế cơ sở dữ liệu
4.1.6.1 Danh sách các collection trong cơ sở dữ liệu
STT Tên Kiểu
1 Id ObjectId
Trang 40STT Tên Kiểu
1 Id ObjectId
2 RequestedSwapToyId ObjectId