TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN KHOA CÔNG NGHỆ PHẦN MỀM
Trang 1TRƯỜ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
NHẬP MÔN ỨNG DỤNG DI ĐỘNG
Đề tài: Ứng dụng mạng xã hội nấu ăn
Giảng viên hướng dẫn:
Thầy Huỳnh Tuấn Anh
Nhóm thực hiện:
20520808 Trần Ngọc Tiến
20520521 Trần Trọng Hoàng
20520985 Bùi Lê Hoài An
TPHCM, tháng 6 năm 2022
Trang 2Chương 1: Thông tin chung
1.1 Tên đề tài: Ứng dụng mạng xã hội nấu ăn
1.2 Môi trường phát triển ứng dụng:
- Hệ điều hành: Microsoft Windows
- Cơ sở dữ liệu đám mây: Firebase
- Công cụ phân tích thiết kế: figma.com
- Công cụ phân chia nhiệm vụ: notion.so + Messenger
- Công cụ xây dựng ứng dụng: Android Studio
- Ngôn ngữ sử dụng: Kotlin
- Công cụ quản lý source code: Github
1.3 Thông tin nhóm:
STT MSSV Họ và tên Email
1 20520808 Trần Ngọc Tiến 20520808@gm.uit.edu.vn
2 20520521 Trần Trọng Hoàng 20520521@gm.uit.edu.vn
3 20520985 Bùi Lê Hoài An 20520985@gm.uit.edu.vn
Trang 3Chương 2: Phát biểu bài toán
2.1 Trình bày khảo sát hiện tại: Nhu cầu thực tế của đề tài
Hiện tại đã có rất nhiều mạng xã hội dành cho giới trẻ ra đời, họ bị cuốn vàonhững mạng xã hội Facebook, Instagram, Tiktok, … hàng giờ đồng hồ mỗingày Nên phải có một mạng xã hội lành mạnh để mọi người có thể sử dụng.Sau nhiều giờ mệt mỏi làm việc ở văn phòng cũng như nhiều giờ làm việc mỗingày thì chiều, tối về họ lại quay về căn nhà của mình và bắt đầu vào căn bếpcủa gia đình và nấu những bữa ăn ngon cho gia đình và bản thân Nhưng họnhớ ra đã lâu rồi mình chưa vào bếp và từ rất lâu mình chỉ vùi đầu vào côngviệc và những mạng xã hội khác, những món mình biết nấu thì rất ít thế nên họcần sự giúp đỡ của mọi người Và những người có sở thích nấu ăn, họ có rấtnhiều công thức nấu ăn mà họ muốn chia sẻ với mọi người Từ đó mạng xã hộicủa chúng em ra đời Ứng dụng sẽ giúp mọi người chia sẻ những công thức nấu
ăn cũng như giúp mọi người biết nhiều món ăn hơn từ những người khác
2.2 Xác định các yêu cầu hệ thống:
1 Quản lý lưu trữ tất cả thông tin cần thiết cho hệ thống (thông tin cơ bản về người dùng, công thức, hình ảnh món ăn)
2 Tìm kiếm, truy xuất các thông tin cần để xử lý một cách tức thời
3 Chức năng đăng nhập, xem thông tin cá nhân, đổi thông tin cá nhân
4 Đáp ứng được lưu lượng truy xuất lớn
5 Giao diện trực quan, thân thiện với người dùng
Trang 4Chương 3: Mô hình Use Case
3.1 Sơ đồ Use-case
3.2 Danh sách các Actor
STT Tên Actor Ý nghĩa/Ghi chu
1 Người dùng Người trực tiếp sử dụng phần mềm để đăng bài viết và
xem bài viết
3.3 Danh sách các use-case
3.4 Đặc tả use-case
STT Tên Use-case Ý nghĩa/Ghi chu
Trang 51 Đăng nhập
2 Đăng xuất
3 Đăng bài viết Đăng công thức và cách làm của 1 món ăn
lên mạng xã hội
4 Xem bài viết
5 Quản lý thông tin cá nhân Xem thông tin cá nhân, xem người theo dõi,
bài viết đã đăng, đã thích
6 Tương tác bài viết Thích, bình luận, chia sẻ
7 Xem thông báo
8 Tìm kiếm Tìm kiếm người dùng, bài viết
9 Báo cáo lỗi
10 Thay đổi ngôn ngữ
3.4.1 Đặc tả usecase “Đăng nhập”
Tên chức năng Đăng nhập
Tóm tắt Chức năng đăng nhập vào hệ thống
Dòng sự kiện chính 1 Hệ thống hiển thị form đăng nhập của Google
2 Chọn tài khoản Google để đăng nhập
3 Nếu đã đăng nhập trước đó thì vào màn hình chính
Nếu là lần đầu thì sẽ tạo các thông tin người dùng và
thêm tài khoản vào FirebaseDòng sự kiện khác Không có
Các yêu cầu đặc biệt Không có
Trạng thái hệ thống
trước khi thực thiện use
case
Actor: tất cả các actorĐiều kiện: không có
Trạng thái hệ thống sau
khi thực hiện use case
Người dùng đăng nhập thành công vào hệ thống, có thể
sử dụng các quyền mà hệ thống cho phépĐiểm mở rộng Không có
3.4.2 Đặc tả usecase “Đăng xuất”
Trang 6Tên chức năng Đăng xuất
Tóm tắt Chức năng đăng xuất ra hệ thống
Dòng sự kiện chính 1 Người dùng nhấn vào Đăng xuất
2 Hệ thống đăng xuất và trở về bắt đầu (intro)Dòng sự kiện khác Không có
Các yêu cầu đặc biệt Không có
Trạng thái hệ thống
trước khi thực hiện use
case
Actor: tất cả các actorĐiều kiện: người dùng đã đăng nhập hệ thống
Trạng thái hệ thống sau
khi thực hiện use case
Người dùng đăng xuất khỏi hệ thống
Điểm mở rộng Không có
3.4.3 Đặc tả usecase “Đăng bài viết”
Tên chức năng Đăng bài viết
Tóm tắt Chức năng đăng bài lên mạng xã hội
Dòng sự kiện chính 1 Người dùng nhấn vào nút có hình dấu “+” trong màn
hình chính
2 Đưa người dùng đến màn hình đăng bài
3 Người dùng nhập các thông tin của bài viết vào trang
4 Người dùng nhấn đăng
5 Bài viết sẽ được đăng lên mạng xã hộiDòng sự kiện khác Không có
Các yêu cầu đặc biệt Không có
Trạng thái hệ thống
trước khi thực hiện use
Actor: tất cả các actorĐiều kiện: người dùng đã đăng nhập hệ thống
Trang 7Trạng thái hệ thống sau
khi thực hiện use case
Bài viết sẽ được đăng lên mạng xã hội
Điểm mở rộng Không có
3.4.4 Đặc tả usecase “Xem bài viết”
Tên chức năng Xem bài viết
Tóm tắt Chức năng xem các bài đăng trên mạng xã hội
Dòng sự kiện chính 1 Người dùng nhấn vào bài viết
2 Đưa người dùng đến màn hình xem bài viết
3 Hiển thị bài viếtDòng sự kiện khác Không có
Các yêu cầu đặc biệt Không có
Trạng thái hệ thống
trước khi thực hiện use
case
Actor: tất cả các actorĐiều kiện: người dùng đã đăng nhập hệ thống
Trạng thái hệ thống sau
khi thực hiện use case
Bài viết sẽ hiện lên để người dùng xem
Điểm mở rộng Không có
3.4.5 Đặc tả usecase “Quản lý thông tin cá nhân”
3.4.5.1 Đặc tả usercase “Xem thông tin cá nhân”
Tên chức năng Xem thông tin cá nhân
Tóm tắt Xem thông tin cá nhân của người dùng
Dòng sự kiện chính 1 Khách hàng chọn nút “Thông tin tài khoản”
2 Hệ thống lấy thông tin cá nhân khách hàng và hiển thịlên màn hình
Trang 8Dòng sự kiện khác Không có
Các yêu cầu đặc biệt Không có
Trạng thái hệ thống
trước khi thực hiện use
case
Actor: Tất cả actorĐiều kiện: Không có
Trạng thái hệ thống sau
khi thực thiện use case
Hệ thống không thay đổi
Điểm mở rộng Không có
3.4.5.2 Đặc tả usecase “Thay đổi thông tin cá nhân”
Tên chức năng Thay đổi thông tin cá nhân
Tóm tắt Sửa thông tin cá nhân của người dùng
Dòng sự kiện chính 1 Người dùng có thể vào trang cá nhân của mình và
nhấn vào nút sửa thông tin cá nhân hoặc vào cài đặt chọnthông tin cá nhân để chỉnh sửa
2 Hệ thống lấy thông tin cá nhân người dùng và hiển thịlên màn hình
3 Khách hàng thay đổi những thông tin mong muốn vàbấm “Lưu”
4 Hệ thống kiểm tra lưu dữ liệuDòng sự kiện khác Không có
Các yêu cầu đặc biệt Không có
Trạng thái hệ thống
trước khi thực hiện use
case
Actor: Tất cả actorĐiều kiện: Khách hàng đã đăng nhập vào hệ thống
Trạng thái hệ thống sau
khi thực thiện use case
Người dùng cập nhật thông tin người dùng thành côngvào hệ thống
Trang 9Điểm mở rộng Không có
3.4.5.3 Đặc tả usecase “Xem những người bạn đang theo dõi”
Tên chức năng Xem những người người dùng đang theo dõi
Tóm tắt Xem tất cả những người mà người dùng theo dõi
Dòng sự kiện chính 1 Người dùng vào trang cá nhân và nhấn vào đang theo
dõi
2 Hệ thống lấy thông tin các người dùng mà người dùngđang theo dõi và hiển thị lên màn hình
Dòng sự kiện khác Không có
Các yêu cầu đặc biệt Không có
Trạng thái hệ thống
trước khi thực hiện use
case
Actor: Tất cả actorĐiều kiện: Khách hàng đã đăng nhập vào hệ thống
Trạng thái hệ thống sau
khi thực thiện use case
Hiển thị danh sách các người dùng mà người dùng đangtheo dõi
Điểm mở rộng Không có
3.4.5.4 Đặc tả usecase “Xem những người theo dõi bạn”
Tên chức năng Xem những người đang theo dõi người dùng
Tóm tắt Xem tất cả những người đang theo dõi người dùng Dòng sự kiện chính 1 Người dùng vào trang cá nhân và nhấn vào người theo
dõi
2 Hệ thống lấy thông tin các người dùng đang theo dõingười dùng và hiển thị lên màn hình
Dòng sự kiện khác Không có
Các yêu cầu đặc biệt Không có
Trạng thái hệ thống Actor: Tất cả actor
Trang 10trước khi thực hiện use
case
Điều kiện: Khách hàng đã đăng nhập vào hệ thốngTrạng thái hệ thống sau
khi thực thiện use case
Hiển thị danh sách các người dùng đang theo dõi ngườidùng
Điểm mở rộng Không có
3.4.5.5 Đặc tả usecase “Xem danh sách bài viết đã đăng”
Tên chức năng Xem những bài viết đã đăng
Tóm tắt Xem tất cả những bài viết đã đăng
Dòng sự kiện chính 1 Người dùng vào trang cá nhân và chọn tab đầu tiên
2 Hệ thống lấy thông tin các bài viết mà người dùng đãđăng
Dòng sự kiện khác Không có
Các yêu cầu đặc biệt Không có
Trạng thái hệ thống
trước khi thực hiện use
case
Actor: Tất cả actorĐiều kiện: Khách hàng đã đăng nhập vào hệ thống
Trạng thái hệ thống sau
khi thực thiện use case
Hiển thị danh sách các bài viết mà người dùng đã đăng
Điểm mở rộng Không có
3.4.5.6 Đặc tả use case “Xem danh sách bài viết đã thích”
Tên chức năng Xem những bài viết đã thích
Tóm tắt Xem tất cả những bài viết đã thích
Dòng sự kiện chính 1 Người dùng vào trang cá nhân và chọn tab có hình trái
tim
2 Hệ thống lấy thông tin các bài viết mà người dùng đã
Trang 11thíchDòng sự kiện khác Không có
Các yêu cầu đặc biệt Không có
Trạng thái hệ thống
trước khi thực hiện use
case
Actor: Tất cả actorĐiều kiện: Khách hàng đã đăng nhập vào hệ thống
Trạng thái hệ thống sau
khi thực thiện use case
Hiển thị danh sách các bài viết mà người dùng đã thích
Điểm mở rộng Không có
3.4.6 Đặc tả use case “Tương tác bài viết”
3.4.6.1 Đặc tả usecase “Thích bài viết”
Tên chức năng Thích bài viết
Tóm tắt Thích bài viết
Dòng sự kiện chính 1 Người dùng chọn bài viết
2 Hệ thống lấy thông tin bài viết và hiển thị
3 Người dùng nhấn vào hình trái tim để thíchDòng sự kiện khác Không có
Các yêu cầu đặc biệt Không có
Trạng thái hệ thống
trước khi thực hiện use
case
Actor: Tất cả actorĐiều kiện: Khách hàng đã đăng nhập vào hệ thống
Trạng thái hệ thống sau
khi thực thiện use case
Lưu bài viết người dùng đã thích vào hệ thống và hiểnthị là bài viết đã được thích
Điểm mở rộng Không có
3.4.6.2 Đặc tả usecase “Bình luận bài viết”
Tên chức năng Bình luận bài viết
Trang 12Tóm tắt Bình luận bài viết
Dòng sự kiện chính 1 Người dùng chọn bài viết
2 Hệ thống lấy thông tin bài viết và hiển thị
3 Người dùng nhấn vào biểu tượng bình luận để bìnhluận
Dòng sự kiện khác Không có
Các yêu cầu đặc biệt Không có
Trạng thái hệ thống
trước khi thực hiện use
case
Actor: Tất cả actorĐiều kiện: Khách hàng đã đăng nhập vào hệ thống
Trạng thái hệ thống sau
khi thực thiện use case
Lưu bình luận người dùng đã bình luận vào bài viết vàhiển thị bình luận
Điểm mở rộng Không có
3.4.6.3 Đặc tả usecase “Chia sẻ bài viết”
Tên chức năng Chia sẻ bài viết
Tóm tắt Chia sẻ bài viết
Dòng sự kiện chính 1 Người dùng chọn bài viết
2 Hệ thống lấy thông tin bài viết và hiển thị
3 Người dùng nhấn vào biểu tượng chia sẻ để chia sẻ
4 Chọn mạng xã hội mà người dùng muốn chia sẽ đếnDòng sự kiện khác Không có
Các yêu cầu đặc biệt Không có
Trạng thái hệ thống
trước khi thực hiện use
Trang 13khi thực thiện use case
Điểm mở rộng Không có
3.4.7 Đặc tả usecase “Xem thông báo”
Tên chức năng Xem thông báo
Tóm tắt Xem thông báo về các bài viết, người theo dõi
Dòng sự kiện chính 1 Người dùng vào màn hình trang thông báo
2 Hệ thống hiển thị các thông báoDòng sự kiện khác Không có
Các yêu cầu đặc biệt Không có
Trạng thái hệ thống
trước khi thực hiện use
case
Actor: Tất cả actorĐiều kiện: người dùng đã đăng nhập hệ thống
Trạng thái hệ thống sau
khi thực thiện use case
Hệ thống hiển thị các thông báo
Điểm mở rộng Không có
3.4.8 Đặc tả usecase “Tìm kiếm”
3.4.8.1 Đặc tả usecase “Tìm kiếm bài viết”
Tên chức năng Tìm kiếm bài viết
Tóm tắt Tìm kiếm các bài viết phù hợp với nội dung tìm kiếmDòng sự kiện chính 1 Người dùng vào màn hình trang tìm kiếm
2 Người dùng nhập nội dung tìm kiếm vào thanh tìmkiếm và bấm Enter
3 Hệ thống tìm kiếm bài viết phù hợp với nội dung đãnhập và hiển thị lên màn hình
Dòng sự kiện khác Không có
Các yêu cầu đặc biệt Không có
Trang 14Trạng thái hệ thống
trước khi thực hiện use
case
Actor: Tất cả actorĐiều kiện: người dùng đã đăng nhập hệ thống
Trạng thái hệ thống sau
khi thực thiện use case
Hệ thống hiển thị danh sách bài viết tìm thấy
Điểm mở rộng Không có
3.4.8.2 Đặc tả usecase “Tìm kiếm người dùng”
Tên chức năng Tìm kiếm người dùng
Tóm tắt Tìm kiếm các người dùng phù hợp với nội dung tìm
kiếmDòng sự kiện chính 1 Người dùng vào màn hình trang tìm kiếm
2 Người dùng nhập nội dung tìm kiếm vào thanh tìmkiếm và bấm Enter
3 Hệ thống tìm kiếm người dùng phù hợp với nội dungđã nhập và hiển thị lên màn hình
Dòng sự kiện khác Không có
Các yêu cầu đặc biệt Không có
Trạng thái hệ thống
trước khi thực hiện use
case
Actor: Tất cả actorĐiều kiện: người dùng đã đăng nhập hệ thống
Trạng thái hệ thống sau
khi thực thiện use case
Hệ thống hiển thị danh sách người dùng tìm thấy
Điểm mở rộng Không có
3.4.9 Đặc tả usecase “Báo cáo lỗi”
Tên chức năng Báo cáo lỗi
Trang 15Tóm tắt Báo cáo các lỗi của hệ thống
Dòng sự kiện chính 1 Người dùng vào trang cài đặt và tìm đến chức năng
báo cáo lỗi
2 Người dùng chọn đúng lỗi mình muốn báo
3 Hệ thống lưu lại và để cho nhà phát triển xem và khắcphục
Dòng sự kiện khác Không có
Các yêu cầu đặc biệt Không có
Trạng thái hệ thống
trước khi thực hiện use
case
Actor: Tất cả actorĐiều kiện: người dùng đã đăng nhập hệ thống
Trạng thái hệ thống sau
khi thực thiện use case
Lưu lại báo cáo của người dùng
Điểm mở rộng Không có
3.4.10Đặc tả usecase “Thay đổi ngôn ngữ”
Tên chức năng Thay đổi ngôn ngữ
Tóm tắt Thay đổi ngôn ngữ của ứng dụng
Dòng sự kiện chính 1 Người dùng vào trang cài đặt và tìm đến chức năng
thay đổi ngôn ngữ
2 Người dùng chọn ngôn ngữ mình muốn
3 Hệ thống sẽ khởi động lại và thay đổi ngôn ngữ hệthống
Dòng sự kiện khác Không có
Các yêu cầu đặc biệt Không có
Trang 16Trạng thái hệ thống
trước khi thực hiện use
case
Actor: Tất cả actorĐiều kiện: người dùng đã đăng nhập hệ thống
Trạng thái hệ thống sau
khi thực thiện use case
Thay đổi ngôn ngữ theo ý của người dùng
Điểm mở rộng Không có
Trang 17Chương 4: Phân tích
4.1 Danh sách các lớp (Lưu trữ dữ liệu)
STT Tên lớp Loại Ý nghĩa/Ghi chu
1 User Lớp Lớp chứa thông tin cá nhân
người dùng
2 Post Lớp Lớp chứa thông tin bài viết
3 Notify Lớp Lớp chứ thông tin thông báo
4 Time Lớp Lớp chứa thông tin thời gian
4.2 Mô tả chi tiết từng lớp đối tượng
4.2.1 Lớp User
a) Danh sách thuộc tính
STT Tên thuộc tính Loại Ràng buộc Ý nghĩa/ghi chu
1 name String Public Tên người dùng
2 avatar String Public Link avatar
người dùng
3 username String Public Gmail người
dùng
4 gender String Public Giới tính
5 birthday String Public Ngày sinh
6 description String Public Mô tả của người
dùng
7 followers MutableList<String> Public Những người
theo dõi
8 following MutableList<String> Public Những người
đang theo dõi
9 favourites MutableList<String> Public Những bài viết
đã thích
10 post MutableList<String> Public Các bài viết đã
đăngb) Danh sách phương thức
STT Tên phương thức Loại Ràng buộc Ý nghĩa/ghi chu
1 getData void Public Lấy dữ liệu từ
Firebase về
Trang 184.2.2 Lớp Post
a) Danh sách thuộc tính
STT Tên thuộc tính Loại Ràng
buộc
Ý nghĩa/ghi chu
1 comments MutableList<Map<String,
Any>> Public Các comment
của người dùng
2 cookingTime String Public Thời gian
nấu món ăn
3 description String Public Mô tả của
món ăn
4 favourites MutableList<String> Public Danh sách
các người dùng đã thích
5 favouritesCount Long Public Số lượt
thích
6 id String Public Id bài viết
7 images MutableList<String> Public Danh sách
link ảnh bài viết
8 ingredients MutableList<Ingredient> Public Danh sách
nguyên liệu của món ăn
9 level String Public Độ khó để
làm món ăn
10 methods MutableList<StepFireBase > Public Danh các
bước làm món ăn
11 nameFood String Public Tên món ăn
12 owner String Public Gmail của
chủ nhân bài viết
13 servers String Public Số người có
thể ăn với lượng nguyên liệu trên
14 share Long Public Số lượt chia
sẻ
15 timePost Time Public Thời gian
đăng
Trang 1916 timestamp Timestamp Public Thời gian
đăng bài theo timestampb) Danh sách phương thức
ST
T Tên phương thức Loạ i Ràng buộc Ý nghĩa/ghi chu
1 getData void Publi
Đưa list hashmap từ
firebase sang đúng dạng MutableList<Ingredient>
class
3 convertToMethodList void Publi
c Đưa list hashmap từ firebase sang đúng dạng
MutableList<StepFirebase
> class
4.2.3 Lớp Notify
a) Danh sách thuộc tính
STT Tên thuộc tính Loại Ràng buộc Ý nghĩa/ghi chu
1 name String Public Gmail của người đã gửi
thông báo
2 id String Public Id bài viết đã được tương
tác
3 type String Public Loại thông báo
4 status Long Public Trạng thái thông báo
5 time Time Public Thời gian thông báo được
gửib) Danh sách phương thức
STT Tên phương thức Loại Ràng buộc Ý nghĩa/ghi chu
1 getData Void Public Lấy dữ liệu từ
Trang 20STT Tên thuộc tính Loại Ràng buộc Ý nghĩa/ghi chu
1 day Long Public Ngày
2 month Long Public Tháng
3 year Long Public Năm
4 hour Long Public Giờ
5 minute Long Public Phút
6 second Long Public Giây
7 dataTime String Public Thời gian đến hiện tại là
bao lâub) Danh sách phương thức
STT Tên phương thức Loại Ràng buộc Ý nghĩa/ghi chu
1 getTime Void Public Lấy dữ liệu từ Map
2 showTime String Public Tính toán và đưa ra thời
gian
Trang 21Chương 5: Thiết kế dữ liệu
5.1 Sơ đồ logic
STT Tên bảng dữ liệu Diễn giải
1 User Thông tin tài khoản người dùng