o Hệ thống kiểm tra format và gửi thông tin đến serviceo Nếu đúng thì thực hiện đăng nhập vào màn hình chính, Nếu sai thông báo nhập lại Luồng thay thế: Nhập sai tài khoản hoặc mật kh
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
KHOA CÔNG NGHỆ PHẦN MỀM
- -BÁO CÁO ĐỒ ÁN MÔN HỌC
ĐỒ ÁN CHUYÊN NGÀNH
cho sinh viên làng đại học
Giảng viên hướng dẫn:
ThS Nguyễn Thị Thanh Trúc Nhóm thực hiện:
Lê Minh Tuấn 15520968
TP.HCM, Ngày 1 tháng 11 năm 2020
1
Trang 2Nhận xét của giảng viên:
LỜI CẢM ƠN!
Đầu tiên, chúng em xin gửi lời cảm ơn chân thành đến tập thể quý Thầy Cô Trường Đại học Công nghệ thông tin – Đại học Quốc gia TP.HCM và quý Thầy Cô khoa Công nghệ phần mềm đã giúp cho chúng em có những kiến thức cơ bản làm nền tảng
để thực hiện đề tài này
Đặc biệt, nhóm chúng em xin gửi lời cảm ơn và lòng biết ơn sâu sắc nhất tới thầy Nguyễn Thị Thanh Trúc (Giáo viên hướng dẫn môn đồ án chuyên ngành) người
Trang 3đã trực tiếp hướng dẫn tận tình, sửa chữa và đóng góp nhiều ý kiến quý báu giúp chúng
em hoàn thành tốt báo cáo môn học của mình
Trong thời gian một học kỳ thực hiện đề tài, nhóm chúng em đã vận dụng
những kiến thức nền tảng đã tích lũy đồng thời kết hợp với việc học hỏi và nghiên cứu những kiến thức mới Từ đó, nhóm vận dụng tối đa những gì đã thu thập được để hoàn thành một báo cáo đồ án tốt nhất Tuy nhiên, trong quá trình thực hiện, vẫn không tránh khỏi những thiếu sót Chính vì vậy, nhóm chúng em rất mong nhận được những sự góp ý từ phía các Thầy Cô nhằm hoàn thiện những kiến thức mà nhóm đã học tập và là hành trang để chúng em thực hiện tiếp các đề tài khác trong tương lai
Xin chân thành cảm ơn quý Thầy Cô!
TP Hồ Chí Minh, tháng 11 năm 2020
Nhóm sinh viên thực hiện:
Trang 4ĐỀ CƯƠNG CHI TIẾT
TÊN ĐỀ TÀI: [62] Xây dựng ứng dụng trao đổi đồ dùng cũ cho sinh viên làng đại học
Giảng viên hướng dẫn: ThS Nguyễn Thị Thanh Trúc
Thời gian thực hiện:
Sinh viên thực hiện:
Lê Minh Tuấn – 15520968
Nội dung đề tài:
Mục tiêu:
- Xây dựng ứng dụng cho phép người dùng (sinh viên trong làng đại học) trao đổi
các đồ đạc cũ (hoặc không có nhu cầu sửa dụng nửa)
- Tạo các yêu cầu trao đổi đồ đạc khi không dùng tới bằng đồ mong muốn, hoặc bất
kể món đồ nào ưng ý hoặc có thể cho đi món đồ
- Tạo môi trường minh bạch, thuật lợi để trao đổi, đánh giá người dùng để tạo môi
trường lành mạnh, vì lợi ích cộng đồng
- Hệ thống điểm thưởng để khuyến khích người dùng sử dụng ứng dụng.
Phạm vi:
Phạm vi địa lý: Ứng dụng sử dụng tại Việt Nam cụ thể là ở cộng đồng sinh viên trong
“Làng đại học” đại học quốc gia thành phố Hồ Chí Minh
Phạm vi chức năng:
- Quản lý Đăng nhập
- Quản lý Tài khoản
- Tìm kiếm
Trang 5- Quản lý Giao dịch.
- Quản lý Thông báo
- Quản lý Điểm thưởng
Đối tượng sử dụng:
Các cá nhân có nhu cầu trao đổi hoặc cho đồ đạc trong phạm vi “Làng đại học”
Phương pháp thực hiện:
- Xây dựng giao diện trên nền tảng Android Platform.
- Xây dựng database bằng hệ quản trị cơ sở dữ liệu FireBase.
- Xây dựng hệ thống Restful API
- Sử dụng Socket.IO để gửi và nhận thông báo.
Kết quả dự kiến:
- Xây dựng một hệ thống giúp gắn kết các người dùng thông qua việc trao đổi
đồ đạc Qua đó giúp họ bán sản phẩm với giá cao nhất, tìm món đồ mình cần
mà không tốn thêm chi phí thông qua trao đổi bằng món đồ mình đang có
- Tạo ra môi trường để mọi người dể dàng trao đổi đồ đạc một cách minh bạch
và tiện lợi
Kế hoạch thực hiện:
hiện
1 - Lên ý tưởng, phân tích những chức năng cần có
- Phân rã chức năng, lựa chọn công nghệ phù hợp
Tuấn
2 - Tìm hiểu công nghệ và các tiện ích sử dụng
- Triển khai framework cơ bản cho back end và frontend
Tuấn
Trang 63 - Thiết kế cơ sở dữ liệu
- Lên kế hoạch chi tiết
- Lên ý tưởng về giao diện hiển thị
- Vẽ sơ đồ phân rã cấp 0,1 cho các chức năng trong
ứng dụng
Tuấn
4 - Viết mô tả cụ thể bằng lời cho từng chức năng
- Thực hiện chức năng đăng nhập, đăng kí
- Thực hiện chức năng quên mật khẩu
Tuấn
5 - Vẽ sơ đồ Use-case cho các chức năng trong ứng dụng
- Thực hiện chức năng hiển thị danh sách đồ đạc, đăng
yêu cầu giao dịch
- Thực hiện chức năng chỉnh sửa thông tin người dùng
Tuấn
6 - Vẽ sơ đồ Sequence cho các chức năng trong ứng dụng
- Thực hiện chức năng hiển thị trang cá nhân
- Thực hiện chức năng bình luận, xóa đồ đạc và giao dịch
Tuấn
8 - Thực hiện chức năng lịch sử giao dịch
- Thực hiện chức năng bình luận, đánh giá trong giao
11 - Thực hiện các chức năng tự động của hệ thống (Tự
động cho điểm thưởng, tự động hiển thị đánh giángười dùng thông qua giao dịch…)
Tuấn
12 - Chỉnh sửa lại UI/UX cho phù hợp
- Kiểm thử hệ thống và liệt kê các chức năng chưa hoàn
chỉnh
Tuấn
Trang 7- Hoàn thiện các chức năng chưa hoàn chỉnh
14 - Thực hiện kiểm thử và sửa lỗi,
- Hoàn thiện các chức năng chưa hoàn chỉnh
Tuấn
Trang 8MỤC LỤC
Chương 1 TỔNG QUAN 10
5.1 Đặt vấn đề 10
5.2 Phần mềm liên quan 11
4.2.1 Ứng dụng Chợ tốt - Ứng dụng mua bán trao đổi 11
4.2.2 Ứng dụng Chilindo – Mua sản phẩm bằng đấu giá 13
5.3 Mục tiêu và phạm vi đề tài 14
4.3.1 Mục tiêu 14
4.3.2 Phạm vi 15
5.4 Đối tượng sử dụng 15
5.5 Kết quả dự kiến 15
Chương 2 Cơ sở lý thuyết 17
2.1 Android 17
2.1.1 Giới thiệu về hệ điều hành Android và Android Studio 17
2.1.2 Tại sao hiện thực ứng dụng bằng kotlin Android? 18
2.2 Hệ quản trị cơ sở dữ liệu Firebase 18
2.2.1 Khái niệm 18
2.2.2 Lịch sử 19
2.2.3 Các dịch vụ của firebase trong việc giải quyết bài toán 19
2.2.4 Ưu điểm 20
2.3 Google API 20
2.3.1 Google API là gì? 20
2.3.2 Tại sao sử dụng Google API 21
Chương 3 Phân tích thiết kế hệ thống 22
3.1 Sơ đồ phân rã chức năng 22
3.2 Mô hình Use-case 23
3.2.1 Sơ đồ Use-case 23
3.2.2 Đặc tả Use-case 29
3.2.2.1 Quản lý Đăng nhập 29
3.2.2.2 Quản lý tài khoản 31
3.2.2.3 Trò chuyện 33
3.2.2.4 Quản lý giao dịch 35
Trang 93.2.2.5 Tìm kiếm nhanh 37
3.3 Các sơ đồ và luồng xử lý 39
3.3.1 Tạo tài khoản 39
3.3.1.1 Mô tả 39
3.3.2 Đăng nhập 42
3.3.2.1 Mô tả 42
3.3.3 Quản lý tài khoản 45
3.3.3.1 Mô tả 45
3.3.4 Quản lý giao dịch 52
3.3.4.1 Mô tả 52
3.3.5 Tìm kiếm 56
3.3.5.1 Mô tả 56
3.3.6 Trò chuyện 57
3.3.6.1 Mô tả 57
3.3.7 Thông báo 61
3.3.7.1 Mô tả 61
3.4 Thiết kế kiến trúc 64
3.4.1 Mô hình kiến trúc 64
3.4.2 Mô tả 64
3.4.2.1 MVC 64
3.4.2.2 API 65
3.4.2.3 Firebase 65
3.5 Thiết kế cơ sở dữ liệu 67
3.5.1 Tổng quan cơ sở dữ liệu 67
3.5.2 Sơ đồ mô tả chi tiết 67
3.5.2.1 Category 67
3.5.2.2 Comment 67
3.5.2.3 Notification 68
3.5.2.4 Post 68
3.5.2.5 User 69
3.5.2.6 WaitingNoti 69
3.5.2.7 Chat 70
3.5.2.8 Diemthuong 70
3.5.2.9 Đánh giá 70
Trang 103.6 Thiết kế giao diện 71
3.6.1 Màn hình đăng nhập 71
3.6.2 Màn hình đăng ký 72
3.6.3 Màn hình quên mật khẩu 73
3.6.4 Màn hình trang chủ 74
3.6.5 Màn hình quản lý bài viết 75
3.6.6 Màn hình chi tiết bài đăng 76
3.6.7 Màn hình trang cá nhân 77
3.6.8 Màn hình đánh giá 78
3.6.9 Màn hình đấu giá 78
3.6.10 Màn hình tìm kiếm 78
3.6.11 Màn hình thông báo 80
3.6.12 Màn hình bình luận 80
3.6.13 Màn hình chat 80
Chương 4 Kiểm thử phần mềm 81
4.1 Môi trường kiểm thử 81
4.2 Thực thi kiểm thử 81
4.2.1 Kiểm thử giao diện 81
4.2.2 Kiểm thử chức năng 81
Chương 5 Kết luận và hướng phát triển 85
5.1 Kết luận 85
5.2 Hướng phát triển 86
Tài liệu kham khảo 87
Trang 11Chương 1 TỔNG QUAN
1.1 Đặt vấn đề
Nhu cầu trao đổi mua bán đồ đạc là một nhu cầu cấp thiết của con người Ngày nay,khi xã hội ngày càng tiến bộ, đời sống vật chất được cải thiện thì lượng đồ đạc của mỗingười tăng lên, việc mua sắm các đồ đạc mới có tính năng cải tiến hoặc hợp thị hiếu ngàycàng gia tăng nên sẽ phát sinh ra các đồ đạc cũ không có nhu cầu sử dụng nữa Đặc biệtđối với các bạn sinh viên đa số chưa tự chủ tài chính thì việc chi tiêu cho đồ dùng cá nhân
và phục vụ học tập thì cần tiết kiệm và cân đối Nhu cầu của các bạn là có thể bán đi đồ
cũ không còn sử dụng với giá tối ưu nhất hoặc trao đổi món đồ theo yêu cầu mà khôngphát sinh thêm chi phí, hoặc đơn giản là cho đi các món đồ cho người cần nó Phổ biếncác đồ đạc mà sinh viên cần dùng như quần áo, đồ dùng sinh hoạt cá nhân, thiết bị IT,phương tiện đi lại, sách giáo trình học tập Việc tạo ra một môi trường để các bạn sinhviên có thể trao đổi đồ đạc là cần thiết và thiết thực
Bên cạnh đó, trong bối cảnh sự phát triển mạnh mẽ và nhanh chóng của các ứngdụng trên thiết bị di động những năm gần đây Việc sở hữu và sử dụng các thiết bị điệnthoại thông minh và kết nối internet là điều hiển nhiên với các bạn sinh viên Nên việc cómột ứng dụng trên thiết bị di động là cách tiếp cận nhanh chóng hiện nay
Những yêu cầu thực tế đó chính là tiền đề phát sinh ý tưởng về một ứng dụng có thểgiải quyết được bài toán xây dụng một kênh để các bạn sinh viên có thể trao đổi đồ đạccủa mình bằng đồ đạc của người khác Đây là một ý tưởng mới và trên thị trường vẫnchưa có nhiều ứng dụng đáp ứng được nhu cầu này Nên có thể xem đây là một bước đimới, đáp ứng được nhu cầu, cũng như xu hướng hiện tại của ngành lập trình ứng dụng diđộng và rất cần được nghiên cứu, khai thác
Trang 121.2 Phần mềm liên quan
1.2.1 Ứng dụng Chợ tốt - Ứng dụng mua bán trao đổi
Chợ Tốt chính thức gia nhập thị trường Việt Nam vào đầu năm 2012, với mục đích tạo ra cho bạn 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, mang đến hiệu quả bất ngờ Đến nay, Chợ Tốt tự hào là Website rao vặt được ưa chuộng hàng đầu Việt Nam Hàng ngàn món hời từ Bất động sản, Nhà cửa, Xe cộ, Đồ điện tử, Thú cưng, Vật dụng cá nhân đến tìm việc làm, thông tin tuyển dụng, các dịch vụ - du lịch được đăng tin, rao bán trên Chợ Tốt
Trang 13Giao diện bắt mắt, thân thiện người dùng Với thiết kế phẳng, tập trung vào hình ảnh, chotot.com mang lại trải nghiệm rất tốt cho người dùng Thay vì phải mệt mỏi và rối mắt với những dòng chữ, thông tin thì khi truy cập vào chotot.com, bạn sẽ dễ dàng thấy được hình ảnh và thông tin tiêu biểu của từng sản phẩm Điều này giúp bạn nhanh chóng ra quyết định trong việc lựa chọn sản phẩm mình quan tâm.
Trao đổi trực tiếp: người bán và người mua tự động trao đổi với nhau thông qua số điện thoại, chat trên ứng dụng hay gặp gỡ bên ngoài Mọi thông tin giao dịch đều không qua bất kỳ bên thứ ba nào cả Người mua có thể trả giá, thương lượng món hàng với người bán hoặc yêu cầu thêm bất cứ điều gì nếu muốn
Hỗ trợ thêm chuyên mục đăng tin việc làm và tìm việc: Bên cạnh tính năng trao đổi mua bán, Chợ Tốt còn cung cấp đến bạn chuyên mục “Việc làm” Tại chuyên mục này, bạn cóthể tìm kiếm việc đúng nhu cầu ứng tuyển, mọi thông tin tuyển dụng đều rõ ràng và tất nhiên tiền lương cũng được công khai
Cung cấp các dịch vụ Add on để việc giúp các tin rao vặt tiếp cận với nhiều người dùng nhất có thể: Đẩy tin, Tin ửu tiên, Tin đặc biệt, nhãn nổi bật, cửa hàng, chuyên trang Quyền lợi mua bán được bảo đảm
Hạn chế:
Khả năng kiểm duyệt tin rao vặt
Giao dịch qua cho tốt là giao dịch dân sự tìm ẩn rủi ro (sim rác, thông tin giả)
Bị lợi dụng thành kênh lừa đảo bởi các gian thương: hàng giả, không đúng mô tả sản phẩm do không quản lý việc thanh toán mà do trao đổi giữa người dùng với nhau
Mất phí khi sử dụng khi sử dụng một số chức năng để tăng khả năng thành công của tin rao
Công nghệ:
Chotot hỗ trợ đầy đủ trên Web, Android, iOS
Trang 141.2.2 Ứng dụng Chilindo – Mua sản phẩm bằng đấu giá
Chilindo là một công ty chuyên buôn bán các mặt hàng online dưới hình thức đấu giá online.Cách thức buôn bán của Chilindo là thông qua hình thức đấu giá trực tuyến Sản phẩm được cung cấp vô cùng đa dạng và phong phú Giá khởi điểm được đưa ra cho mỗi mặt hàng là 1000 đồng Người thắng cuộc là người trả giá cao nhất cho sản phẩm trong khoảng thời gian hạn định tức thời gian trở về 0 theo cách đếm ngược
Ưu điểm:
Nhiều mặt hàng, đa dạng lĩnh vực
Hình thức đấu giá hấp dẫn, khởi điểm chỉ 1K
Giao diện thân thiện, trực quan dễ sử dụng
Nhược điểm:
Trang 15Chưa quản lý việc bị đẩy giá ảo.
Chưa có tính năng chat với người bán đấu giá
Chất lượng sản phẩm do công ty cung cấp không đảm bảo chất lượng
Tốn chi phí giao hàng
Công nghệ:
Chilindo hỗ trợ đầy đủ trên web, android, iOS
Từ các ưu nhược điểm của các phần mềm hiện tại thì cần thiết phát triển một kênh trao đổi mua bán phù hợp với các bạn sinh viên hơn Tạo ra mội trường mua bán với đầy đủ các phương thức trao đổi trong phạm vi Làng Đại học, phạm vi hẹp có thể trao đổi mua bán trực tiếp hạn chế chi phí vận chuyển Tạo môi trường mua bán trao đổi văn minh, trung thực nói không với lừa đảo Phát triển cộng đồng uy tín hỗ trợ sinh viên
1.3 Mục tiêu và phạm vi đề tài
1.3.1 Mục tiêu
- Xây dựng một ứng dụng di động hoạt động trên nền tảng Android với mục đíchchính là giúp các bạn sinh viên có thể trao đổi đồ đạc khi không còn có nhu cầu sửdụng nữa
- Xây dựng các chức năng đăng yêu cầu giao dịch (trao đổi) linh hoạt các hình thứcgiao dịch tiền mặt, đồ đổi đồ, đấu giá; bình luận trên yêu cầu giao dịch, tham giagiao dịch
- Xây dựng chức năng đánh giá người dùng sau khi giao dịch kết thúc
- Xây dựng ứng dụng có thể quản lý thông tin người dùng, danh sách đồ đạc, danhsách các giao dịch và lịch sử giao dịch
- Xây dụng hệ thống điểm thưởng cho các bạn quyên góp đồ, cộng tác viên để cóthể dùng điểm thưởng đó để giao dịch
- Xây dựng thống đấu giá sản phẩm
Trang 16- Xây dựng server theo thời gian thực, cập nhật các thông báo cho người dùng.
Thông báo (theo thời gian thực)
Đánh giá người dùng qua từng giao dịch
Gợi ý các món đồ theo nhu cầu, sở thích
Trang 17- Hoàn thành server quản lý các tác vụ tự động gửi thông báo cho người dùngtheo thời gian thực.
- Hoàn thành chức năng tính điểm thưởng cho người sử dụng
Trang 18Chương 2 Cơ sở lý thuyết
2.1 Android
2.1.1 Giới thiệu về hệ điều hành Android và Android Studio
Android là hệ điều hành mã nguồn mở, dựa trên Linux Kernel, dành cho các thiết bị
di động nói chung (điện thoại, máy tính bảng, đồng hồ thông minh, máy nghe nhạc, …).Android cũng không phải là một thiết bị hay sản phẩm cụ thể, nó là một hệ điều hành dựatrên Linux, nguồn mở, linh hoạt Hiện Android là một thương hiệu của Google, có khảnăng tuỳ biến rất cao và có thể chạy trên nhiều thiết bị, nhiều kiến trúc vi xử lý
Android Studio là một môi trường phát triển ứng dụng tích hợp (IDE) dành riêngcho Android, mã nguồn mở, dựa trên IDE Java IntelliJ của hãng JetBrains Một số tínhnăng nổi bật của Android Studio:
- Bộ công cụ build ứng dụng dựa trên Gradle (thay vì Maven)
- Chức năng dò và sửa lỗi nhanh, hướng Android
- Công cụ chỉnh sửa màn hình dạng kéo thả tiện lợi
- Các wizard tích hợp nhằm giúp lập trình viên tạo ứng dụng từ mẫu có sẵn
- Tích hợp Google Cloud Platform, dễ dàng tích hợp với Google CloudMessaging và App Engine của Google
Đi kèm với Android Studio là Android SDK Nếu Android Studio là trình soạn thảocode thì Android SDK là bộ tổng hợp các công cụ để build app, các bản mẫu máy ảoAndroid cần thiết đề làm ra một ứng dụng Android hoàn chỉnh
Java có thể xem là ngôn ngữ lập trình phổ biến nhất hiện nay, được sử dụng rộng rãitrên nhiều thiết bị và hệ điều hành Và dĩ nhiên, ứng dụng Android cũng được viết dựatrên ngôn ngữ phổ biến nhất này
Trang 192.1.2 Tại sao hiện thực ứng dụng bằng kotlin Android?
Lập trình ứng dụng bằng Kotlin là cách tạo ra một ứng dụng dạng native app và lậptrình native app có những ưu điểm sau đây:
- Về mặt performance thì native app chạy nhanh hơn mobile app trong hầu hếtcác trường hợp
- Về tính năng, native app có khả năng truy cập các phần cứng (như camera,GPS, thiết bị thu âm…) và có thể truy cập đến các quyền local như: sao chép,tạo, ghi, đọc tập tin (trên bộ nhớ của mobile), các thông tin danh bạ, thông tin
cá nhân, thực hiện cuộc gọi, nhắn tin, … Nói cách khác, native app có thểkhai thác được sức mạnh phần cứng nhiều nhất của nền tảng
- Về mặt hỗ trợ, hiện tại native app có một cộng đồng hỗ trợ đông đảo vàmạnh mẽ
2.2 Hệ quản trị cơ sở dữ liệu Firebase
2.2.1 Khái niệm
- Google firebase là gì: Đó là một dịch vụ cơ sở dữ liệu thời gian thực hoạt động trên
nền tảng đám mây được cung cấp bởi Google nhằm giúp các lập trình phát triển nhanhcác ứng dụng và trang web, bao gồm các API đơn giản và mạnh mẽ mà không cần backend hay server
- Google FireBase bao gồm việc:
o Lưu trữ dữ liệu thời gian thực.
o Xác thực người dùng
o Firebase hosting tới cơ sở dữ liệu.
Trang 202.2.2 Lịch sử
- Gần một thập niên trước, Firebase ra đời với tiền thân là Envolve Đây là một nền tảng đơn giản chuyên cung cấp những API cần thiết để tích hợp tính năng chat vào trang web Bên cạnh ứng dụng nhắn tin trực tuyến, Envolve còn được người dùng sử dụng để truyền và đồng bộ hóa dữ liệu cho những ứng dụng khác như các trò chơi trực tuyến … Do đó, các nhà sáng lập đã tách biệt hệ thống nhắn tin trực tuyến và đồng bộ dữ liệu thời gian thực thành hai phần riêng biệt
- Trên cơ sở đó, năm 2012, Firebase ra đời với sản phẩm cung cấp là dịch vụ as-a-Service Tiếp đến, vào năm 2014, Google mua lại Firebase và phát triển nó thànhmột dịch vụ đa chức năng được hàng triệu người sử dụng cho đến hiện nay
Backend-2.2.3 Các dịch vụ của firebase trong việc giải quyết bài toán
Firebase Authentication:
- Hoạt động nổi bật của Firebase là xây dựng các bước xác thực người dùng bằng Email, Facebook, Twitter, GitHub, Google Đồng thời cũng xác thực nặc danh cho các ứng dụng Hoạt động xác thực có thể giúp thông tin cá nhân của người sử dụng được an toàn và đảm bảo không bị đánh cắp tài khoản
- Áp dụng Firebase Authentication để giải quyết chắc năng đăng nhập, tạo tài khoản, kiểm tra quyền khi người dùng sử dụng app
Firebase Realtime Database
- Khi đăng ký một tài khoản trên Firebase để tạo ứng dụng, bạn đã có một cơ sở dữ liệuthời gian thực Dữ liệu bạn nhận được dưới dạng JSON Đồng thời nó cũng luôn đượcđồng bộ thời gian thực đến mọi kết nối client
- Đối với các ứng dụng đa nền tảng, tất cả các client đều sử dụng cùng một cơ sở dữ liệu Nó được tự động cập nhật dữ liệu mới nhất bất cứ khi nào các lập trình viên phát triển ứng dụng Cuối cùng, tất cả các dữ liệu này được truyền qua kết nối an toàn SSL
có bảo mật với chứng nhận 2048 bit
Trang 21- Trong trường hợp bị mất mạng, dữ liệu được lưu lại ở local, vì thế khi có mọi sự thay đổi nào đều được tự động cập nhật lên Server của Firebase Bên cạnh đó, đối với các
dữ liệu ở local cũ hơn với Server thì cũng tự động cập nhật để được dữ liệu mới nhất
- Với những ưu điểm của Realtime Database, chúng ta có thể giải quyết các bài toán liên quan đến việc cập nhật liên tục mà không cần liên tục gửi request Với Realtime Database, các bài toán chat, đấu giá, thông báo được giải quyết nhanh, ít tốn chi phí
2.2.4 Ưu điểm
- Triển khai ứng dụng cực nhanh: Firebase cung cấp cho bạn khá nhiều các API, hỗ trợ
đa nền tảng giúp bạn tiết kiệm thời gian quản lý cũng như đồng bộ dữ liệu cung cấp hosting, hỗ trợ xác thực người dùng thì việc triển khai ứng dụng sẽ giảm được rất nhiều thời gian phát triển
- Bảo mật: Với việc sử dụng các kết nối thông qua giao thức bảo mật SSL hoạt động
trên nền tảng cloud đồng thời cho phép phân quyền người dùng database bằng cú phápjavascipt cũng nâng cao hơn nhiều độ bảo mật cho ứng dụng của bạn
- Sự ổn định: Firebase hoạt động dựa trên nền tảng cloud cung cấp bởi Google do đó
hãy yên tập về việc một ngày đẹp trời nào đó server ngừng hoạt động hay như DDOS hoặc là tốc độ kết nối như rùa bò Một điều đáng lưu ý nữa đó là do hoạt động trên nền tảng Cloud vì vậy việc nâng cấp hay bảo trì server cũng diễn ra rất đơn giản mà không cần phải dừng server
2.3 Google API
2.3.1 Google API là gì?
Google API là một tập hợp các API được công ty Google phát triển và cung cấp chophép giao tiếp với các dịch vụ của Google và tích hợp các dịch vụ của Google với cácứng dụng hoặc dịch vụ khác Để có thể sử dụng được các dịch vụ của Google, chúng tabắt buộc phải cài đặt Google API và Google Play Service
Trang 222.3.2 Tại sao sử dụng Google API
Các phần mềm, ứng dụng liên kết, làm việc với nhau thông qua API vì vậy việc sửdụng API là điều cần thiết khi xây dựng và phát triển ứng dụng Trong khi đó, Googleđược xem như là “gã khổng lồ” trong công nghệ, nên việc sử dụng Google API sẽ manglại nhiều lợi ích khi thực hiện đề tài Cụ thể như:
- Dễ dàng cài đặt và sử dụng
- Cung cấp nhiều chức năng đa dạng và phong phú
- Các API của google được sử dụng với số lượng người dùng lớn
- Các API được cập nhật thường xuyên
- Nhận được sự hỗ trợ từ Google và cộng đồng lập trình viên đông đảo
Trang 23Chương 3 Phân tích thiết kế hệ thống3.1 Sơ đồ phân rã chức năng
Trang 243.2 Mô hình Use-case
3.2.1 Sơ đồ Use-case
Sơ đồ Usecase
Trang 303.2.2 Đặc tả Use-case
3.2.2.1 Quản lý Đăng nhập
1 Tạo tài khoản
Mục đích: Chức năng cho phép người dùng tạo tài khoản sử dụng ứng dụng
Tác nhân, mô tả chung:
o Tác nhân: Người dùng
o Mô tả chung: Khi người dùng muốn sử dụng ứng dụng và có tài khoản tương tác ứng dụng
Luồng sự kiện chính:
o Người dùng chọn chức năng tạo tài khoản
o Ứng dụng hiển thị trang đăng ký
o Người dùng nhập thông tin cá nhân
o Gửi thông tin đến ứng dụng
o Hệ thống kiểm tra thông tin và tạo tài khoản
Luồng thay thế: Nếu sai yêu cầu nhập lại
Các yêu cầu cụ thể thể: Nhập đúng format, tài khoản chưa đăng ký
Điều kiện trước: Không
Điều kiện sau: Thông báo kết quả tạo tài khoản
o Màn hình bắt đầu hiển thị trang đăng nhập
o Người dùng nhập tài khoản mật khẩu
Trang 31o Hệ thống kiểm tra format và gửi thông tin đến service
o Nếu đúng thì thực hiện đăng nhập vào màn hình chính, Nếu sai thông báo nhập lại
Luồng thay thế: Nhập sai tài khoản hoặc mật khẩu, hệ thống thông báo nhập lại
Các yêu cầu cụ thể thể: Người dùng phải có tài khoản đã tạo từ trước
Điều kiện trước: Không
Điều kiện sau: Thông báo kết quả đăng nhập
Các điểm mở rộng: Không
3 Quên mật khẩu
Mục đích: Lấy mật khẩu khi người dùng quên mật khẩu
Tác nhân, mô tả chung:
o Tác nhân: Người dùng
o Mô tả chung: Người dùng cần lấy lại mật khẩu khi quên mật khẩu đăng nhập
Luồng sự kiện chính:
o Người dùng chọn chức năng quên mật khẩu ở trang đăng nhập
o Người dùng nhập tài khoản, email
o Hệ thống gửi mail xác thực và reset lại mật khẩu
Luồng thay thế: Nếu email không đúng thông báo nhập lại
Các yêu cầu cụ thể thể: Người dùng phải có tài khoản từ trước
Điều kiện trước: Không
Điều kiện sau: Thông báo kết quả
Các điểm mở rộng: Không
Trang 323.2.2.2 Quản lý tài khoản
1 Xem thông tin
Mục đích: Xem thông tin cá nhân của tài khoản
Tác nhân, mô tả chung:
o Tác nhân: Người dùng ứng dụng
o Mô tả chung: Khi người dùng muốn vào xem thông tin cá nhân của mình
Luồng sự kiện chính:
o Người dùng chọn tab thông tin cá nhân
o Hệ thống tải trang thông tin cá nhân, lấy dữ liệu từ database
Luồng thay thế: Không
Các yêu cầu cụ thể thể: Người dùng phải có tài khoản
Điều kiện trước: Người dùng phải đã đăng nhập
Điều kiện sau: Không
Các điểm mở rộng: Không
2 Chỉnh sửa
Mục đích: Sửa thông tin cá nhân của tài khoản
Tác nhân, mô tả chung:
o Tác nhân: Người dùng ứng dụng
o Mô tả chung: Khi người dùng muốn sửa thông tin cá nhân của mình
Luồng sự kiện chính:
o Người dùng chọn tab thông tin cá nhân
o Hệ thống tải trang thông tin cá nhân, lấy dữ liệu từ database
o Chọn chức năng chỉnh sửa thông tin
o Hệ thống hiện trang chỉnh sửa
o Người dùng chỉnh sửa thông tin cần chỉnh và submit hệ thống
o Hệ thống tiếp nhận và xử lý Nếu thành công cập nhật database, nếu không thành công hiện thông báo
Trang 33 Luồng thay thế: Nếu thông tin chỉnh sửa không hợp lệ hiện thông báo yêu cầu nhập lại
Các yêu cầu cụ thể thể: Người dùng phải có tài khoản
Điều kiện trước: Người dùng phải đã đăng nhập
Điều kiện sau: Không
Các điểm mở rộng: Không
3 Xem thông báo
Mục đích: Xem thông thông báo
Tác nhân, mô tả chung:
o Tác nhân: Người dùng
o Mô tả chung: Khi người dùng muốn vào xem thông báo ứng dụng
Luồng sự kiện chính:
o Người dùng chọn tab thông báo
o Hệ thống tải trang thông báo, lấy dữ liệu từ database
Luồng thay thế: Không
Các yêu cầu cụ thể thể: Người dùng phải có tài khoản
Điều kiện trước: Người dùng phải đã đăng nhập
Điều kiện sau: Không
Các điểm mở rộng: Không
Trang 343.2.2.3 Trò chuyện
1 Tạo cuộc trò chuyện
Mục đích: Tạo cuộc trò chuyện
Tác nhân, mô tả chung:
o Tác nhân: Người dùng ứng dụng
o Mô tả chung: Tạo cuộc trò chuyện khi người dùng muốn trò chuyện với
người khác
Luồng sự kiện chính:
o Người dùng tab trò chuyện, sau đó chọn bưởi tượng tạo cuộc trò chuyện
o Hệ thống hiện trang tạo cuộc trò chuyện
o Người dùng chọn người muốn trò chuyện
o Hệ thống tạo cuộc trò chuyện
Luồng thay thế: Cuộc trò chuyện không được tạo nếu không có người nhận
Các yêu cầu cụ thể thể: Người nhận phải tồn tại
Điều kiện trước: Người dùng phải đăng nhập
Điều kiện sau: Hiện hộp thoại trò chuyện
Các điểm mở rộng: Không
2 Rời khỏi cuộc trò chuyện
Mục đích: Người dùng rời khỏi cuộc trò chuyện
Tác nhân, mô tả chung:
o Tác nhân: Người dùng
o Mô tả chung: Khi người dùng không muốn tiếp tục trò chuyện, và rời khỏi
cuộc trò chuyện
Luồng sự kiện chính:
o Người dùng chọn nút rời cuộc trò chuyện
o Hệ thống xóa người dùng khỏi cuộc trò chuyện
Trang 35 Luồng thay thế: Nếu cuộc trò chuyện có hai người sẽ xóa cuộc trò chuyện
Các yêu cầu cụ thể thể: Cuộc trò chuyện phải tồn tại
Điều kiện trước: Người dùng phải đăng nhập
Điều kiện sau: Hiển thị thông báo về quay về trang trò chuyện chính
Các điểm mở rộng: Không
3 Xóa cuộc trò chuyện
Mục đích: Người dùng xóa cuộc trò chuyện
Tác nhân, mô tả chung:
o Tác nhân: Người dùng
o Mô tả chung: Khi người dùng không muốn tiếp tục trò chuyện, và xóa cuộc
trò chuyện
Luồng sự kiện chính:
o Người dùng chọn chức năng xóa cuộc trò chuyện
o Hệ thống gửi thông báo xác nhận
o Người dùng xác nhận và Hệ thống xóa cuộc trò chuyện
Luồng thay thế: Không
Các yêu cầu cụ thể thể: Cuộc trò chuyện phải tồn tại
Điều kiện trước: Người dùng phải đăng nhập
Điều kiện sau: Hiển thị thông báo về quay về trang trò chuyện chính
Các điểm mở rộng: Không
Trang 363.2.2.4 Quản lý giao dịch
1 Thêm bài đăng
Mục đích: Thêm bài viết
Tác nhân, mô tả chung:
o Hệ thống hiện trang tạo bài đăng
o Nhập thông tin bài đăng như nội dung Sau đó bấm nút hoàn thành
o Hệ thống xử lý thêm bài đăng
Luồng thay thế: Nếu không nhập thông tin gì sẽ hiện thị thông báo người dùng
Các yêu cầu cụ thể thể: Nội dung không được trống, nội dung phù hợp luật
Điều kiện trước: Người dùng phải đăng nhập
Điều kiện sau: Hiện thông báo đăng thành công
Các điểm mở rộng: Không
2 Sửa bài đăng
Mục đích: Sửa bài đăng đã đăng
Tác nhân, mô tả chung:
Trang 37o Hệ thống kiểm tra quyền và hiện bài cần chỉnh sửa
o Nhập thông tin cần chỉnh sửa Sau đó bấm nút hoàn thành
o Hệ thống xử lý chỉnh sửa Database
Luồng thay thế: Nếu xóa hết thông tin bài sẽ hiện thông báo
Các yêu cầu cụ thể thể: Nội dung không được trống, nội dung phù hợp luật
Điều kiện trước: Người dùng phải đăng nhập
Điều kiện sau: Hiện thông báo chỉnh sửa thành công
Các điểm mở rộng: Không
3 Xóa bài đăng
Mục đích: Người dùng xóa bài đăng
Tác nhân, mô tả chung:
o Tác nhân: Người dùng
o Mô tả chung: Khi người dùng không muốn trao đổi hoặc đã trao đổi
thành công.
Luồng sự kiện chính:
o Người dùng chọn chức năng bài đăng, chọn bài cần xóa
o Hệ thống gửi thông báo xác nhận
o Người dùng xác nhận và Hệ thống xóa bài đăng
Luồng thay thế: Không
Các yêu cầu cụ thể thể: Cuộc trò chuyện phải tồn tại
Điều kiện trước: Người dùng phải đăng nhập
Điều kiện sau: Hiển thị thông báo về quay về trang bài đăng
Các điểm mở rộng: Không
Trang 384 Kiểm tra quyền
Mục đích: kiểm tra quyền người dùng
Tác nhân, mô tả chung:
o Tác nhận: Hệ thống
o Mô tả chung: Hệ thống kiểm tra quyền người dùng với bài đăng,
cuộc hẹn
Luồng sự kiện chính:
o Hệ thống nhận yêu cầu kiểm tra quyền từ một chức năng
o Kiểm tra người dùng đang sử dụng có đủ quyền để thực hiện chức
năng đó không
o Nếu đủ thì thực hiện chức năng, nếu không thì hiện thông báo
Luồng thay thế: Người dùng không đủ quyền truy cập sẽ thông báo và hủy chức năng đang thực hiện
Các yêu cầu cụ thể thể: Không
Điều kiện trước: Không
Điều kiện sau: Không
o Mô tả chung: Khi người dùng muốn tìm kiếm nhanh một đồ đạc
theo những yêu cầu trước
Luồng sự kiện chính:
Trang 39o Người dùng nhập thông tin muốn tìm kiếm
o Hệ thống dựa vào thông tin tìm kiếm đồ đạc thích hợp và trả về cho
người dùng
Luồng thay thế: Nếu không có kết quả tìm kiếm phù hợp thông báo người dùng
Các yêu cầu cụ thể thể: Không
Điều kiện trước: Người dùng phải đăng nhập
Điều kiện sau: Hiện thông báo tìm kiếm
o Người dùng nhập tên muốn tìm kiếm
o Hệ thống sựa vào thông tin tìm kiếm thích hợp và trả về cho người
dùng
Luồng thay thế: Nếu không có kết quả tìm kiếm phù hợp thông báo người dùng
Các yêu cầu cụ thể thể: Không
Điều kiện trước: Người dùng phải đăng nhập
Điều kiện sau: Hiện thông báo tìm kiếm
Các điểm mở rộng: Không
Trang 403.3 Các sơ đồ và luồng xử lý
3.3.1 Tạo tài khoản
3.3.1.1 Mô tả
Là chức năng cho phép người dùng tạo tài khoản mới trong hệ thống
Người dùng nhập tên, email và mật khẩu, đây là những thông tin bắt buộc khi tạomột tài khoản mới, những thông tin khác có thể cập nhật lại trong phần quản lý thông tinngười dùng
Hệ thống tạo tài khoản mới cho người dùng và người dùng sử dụng tài khoản này đểđăng nhập vào hệ thống
Sau khi tạo tài khoản thành công, người dùng sẽ tiến hành cập nhật tiếp các thôngtin cơ bản như ảnh đại diện, giới tính, ngày sinh, địa chỉ, sở thích trước khi vào trang chủcủa ứng dụng