Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 100 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
100
Dung lượng
4,73 MB
Nội dung
ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN KHOA CÔNG NGHỆ PHẦN MỀM TRƯƠNG BÁ CƯỜNG TRƯƠNG HỮU MINH ĐỨC KHÓA LUẬN TỐT NGHIỆP XÂY DỰNG ỨNG DỤNG MẠNG XÃ HỘI CHIA SẺ PHƯƠNG PHÁP NẤU ĂN DINH DƯỠNG KỸ SƯ NGÀNH KỸ THUẬT PHẦN MỀM TP HỒ CHÍ MINH, 2022 ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CƠNG NGHỆ THÔNG TIN KHOA CÔNG NGHỆ PHẦN MỀM TRƯƠNG BÁ CƯỜNG – 18520013 TRƯƠNG HỮU MINH ĐỨC - 18520626 KHÓA LUẬN TỐT NGHIỆP XÂY DỰNG ỨNG DỤNG MẠNG XÃ HỘI CHIA SẺ PHƯƠNG PHÁP NẤU ĂN DINH DƯỠNG KỸ SƯ NGÀNH KỸ THUẬT PHẦN MỀM GIẢNG VIÊN HƯỚNG DẪN Ths Lê Thanh Trọng TP HỒ CHÍ MINH, 2022 THƠNG TIN HỘI ĐỒNG CHẤM KHĨA LUẬN TỐT NGHIỆP Hội đồng chấm khóa luận tốt nghiệp, thành lập theo Quyết định số …………………… ngày ………………… Hiệu trưởng Trường Đại học Công nghệ Thông tin LỜI CẢM ƠN Khóa luận tốt nghiệp chuyên ngành Kỹ thuật phần mềm với Đề tài “Xây dựng ứng dụng mạng xã hội chia sẻ phương pháp nấu ăn dinh dưỡng” kết trình tìm tòi, học hỏi, vận dụng kiến thức học vào giải toán thực tế thành viên nhóm giúp đỡ tận tình, động viên khích lệ thầy Qua đây, em xin thay mặt nhóm gửi lời cảm ơn chân thành đến quý thầy cô trường Đại học Công nghệ Thơng tin tận tình dạy, truyền đạt kiến thức cho chúng em suốt năm ngồi ghế giảng đường đại học Em xin gửi lời cảm ơn sâu sắc đến thầy ThS Lê Thanh Trọng, người theo sát, định hướng, bảo, đưa lời khun bổ ích cho nhóm chúng em suốt q trình thực khóa luận nhằm đảm bảo tiến độ thực đáp ứng yêu cầu đề ban đầu Cảm ơn giảng viên phản biện thầy cô hội đồng chấm luận văn với lời khuyên, góp ý quý báu bổ ích Từ luận văn em trở nên hoàn thiện Lời cuối cùng, em xin dành lời cảm ơn gửi tới gia đình, anh chị, bạn bè ln bên cạnh để động viên đóng góp ý kiến q trình hồn thành khố luận MỤC LỤC Chương MỞ ĐẦU 1.1 Lí chọn đề tài 1.2 Mục đích 1.3 Đối tượng 1.4 Phạm vi nghiên cứu Chương TỔNG QUAN ĐỀ TÀI 2.1 Thực trạng toán 2.2 Khảo sát ứng dụng 2.2.1 Ứng dụng CookBook – Nấu ăn ngon ngày 2.2.2 Ứng dụng I’m hungry 2.3 Vấn đề tồn hướng giải 10 2.3.1 Vấn đề tồn 10 2.3.2 Hướng giải 10 Chương CƠ SỞ LÝ THUYẾT 11 3.1 Tổng quan Flutter 11 3.1.1 Khái niệm 11 3.1.2 Kiến trúc 11 3.2 Tổng quan Dart 12 3.2.1 Khái niệm 12 3.2.2 Đặc điểm 12 3.3 Tổng quan Firebase 13 3.3.1 Khái niệm 13 3.3.2 Lịch sử phát triển 13 3.3.3 Cách thức hoạt động 13 3.3.3.1 Firebase Realtime Database 13 3.3.3.2 Firebase Authentication 14 3.3.3.3 Firebase storage 14 3.3.3.4 Firebase Cloud Messaging 15 3.3.4 Tổng quan NestJs 15 3.3.5 Tổng quan Postgresql 15 Chương HIỆN THỰC HỆ THỐNG 17 4.1 Phân tích yêu cầu hệ thống 17 4.1.1 Yêu cầu chức 17 4.1.1.1 Yêu cầu lưu trữ 17 4.1.1.2 Yêu cầu tính 17 4.1.2 Phân tích yêu cầu phi chức 17 4.1.3 Phân tích yêu cầu người dùng 18 4.1.3.1 Mơ hình Use case toàn hệ thống 19 4.1.3.2 Danh sách Actor 19 4.1.3.3 Danh sách Use case 20 4.2 Phân tích thiết kế hệ thống 23 4.2.1 Thiết kế xử lý 23 4.2.1.1 Sơ đồ Đăng ký 23 4.2.1.2 Sơ đồ Đăng nhập 25 4.2.1.3 Sơ đồ Đăng nhập với Google account 26 4.2.1.4 Sơ đồ Quên mật 27 4.2.1.5 Sơ đồ Thay đổi mật 28 4.2.1.6 Sơ đồ cập nhật thông tin 29 4.2.1.7 Sơ đồ Upload file 30 4.2.1.8 Sơ đồ Tạo viết 31 4.2.1.9 Sơ đồ Cập nhật viết 32 4.2.1.10 Sơ đồ Lưu viết 33 4.2.1.11 Sơ đồ Tạo ăn 34 4.2.1.12 Sơ đồ Lưu ăn 35 4.2.1.13 Sơ đồ Đánh giá ăn 36 4.2.1.14 Sơ đồ Yêu thích viết 37 4.2.1.15 Sơ đồ Bình luận cho viết, hướng dẫn nấu ăn 38 4.2.1.16 Sơ đồ Tạo album 39 4.2.1.17 Sơ đồ Nhắn tin với người dùng 40 4.2.1.18 Sơ đồ Trò chuyện với chatbot 41 4.2.1.19 Sơ đồ Duyệt ăn 42 4.2.1.20 Sơ đồ Tạo đơn vị 43 4.2.1.21 Sơ đồ Tạo nguyên liệu 44 4.2.1.22 Sơ đồ Tạo chủ đề 45 4.2.2 Thiết kế liệu 46 4.2.2.1 Sơ đồ sở liệu 46 4.2.2.2 Danh sách bảng liệu 47 4.2.2.3 Chi tiết bảng liệu 48 4.2.3 Thiết kế kiến trúc hệ thống 70 4.2.4 Thiết kế giao diện 71 4.2.4.1 Danh sách hình 71 4.2.4.2 Giao diện số hình ứng dụng 73 4.3 Triển khai hệ thống 81 Chương KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 84 5.1 Đánh giá 84 5.1.1 Thuận lợi 84 5.1.2 Khó khăn 84 5.2 Kết đạt 84 5.3 Hướng phát triển 85 DANH MỤC HÌNH Hình 2.1: Giao diện danh sách ăn ứng dụng CookBook Hình 2.2: Giao diện thơng tin ăn ứng dụng CookBook Hình 2.3: Giao diện ứng dụng I’m Hungry Hình 3.1: Kiến trúc Flutter 11 Hình 4.1: Sơ đồ Use case hệ thống 19 Hình 4.2: Sơ đồ Đăng ký 23 Hình 4.3: Sơ đồ Đăng Nhập 25 Hình 4.4: Sơ đồ Đăng nhập với Google Account 26 Hình 4.5: Sơ đồ Quên mật 27 Hình 4.6: Sơ đồ Thay đổi mật 28 Hình 4.7: Sơ đồ Cập nhật thông tin 29 Hình 4.8: Sơ đồ Upload file 30 Hình 4.9: Sơ đồ Tạo viết 31 Hình 4.10: Sơ đồ Cập nhật viết 32 Hình 4.11: Sơ đồ Lưu viết 33 Hình 4.12: Sơ đồ Tạo ăn 34 Hình 4.13: Sơ đồ Lưu ăn 35 Hình 4.14: Sơ đồ Đánh giá ăn 36 Hình 4.15: Sơ đồ u thích viết 37 Hình 4.16: Sơ đồ Bình luận cho viết, hướng dẫn nấu ăn 38 Hình 4.17: Sơ đồ Tạo album 39 Hình 4.18: Sơ đồ Nhắn tin với người dùng 40 Hình 4.19: Sơ đồ Trò chuyện với chatbot 41 Hình 4.20: Sơ đồ Duyệt ăn 42 Hình 4.21: Sơ đồ Tạo đơn vị 43 Hình 4.22: Sơ đồ Tạo nguyên liệu 44 Hình 4.23: Sơ đồ Tạo chủ đề 45 Hình 4.24: Sơ đồ sở liệu 46 Hình 4.25: Sơ đồ kiến trúc hệ thống 70 Hình 4.26: Màn hình đăng nhập 74 Hình 4.27: Màn hình đăng ký 74 Hình 4.28: Màn hình xác thực email 74 Hình 4.29: Màn hình chọn chủ đề 74 Hình 4.30: Màn hình bảng tin 75 Hình 4.31: Màn hình xem đăng theo chủ đề 75 Hình 4.32: Màn hình tìm kiếm người dùng 75 Hình 4.33: Màn hình tạo đăng 75 Hình 4.34: Màn hình tạo đăng kèm đường dẫn đến hướng dẫn nấu ăn 76 Hình 4.35: Màn hình tạo đăng gợi ý ăn nên không nên sử dụng 76 Hình 4.36: Màn hình bình luận 76 Hình 4.37: Màn hình hiển thị danh sách ăn 76 Hình 4.38: Màn hình hiển thị chi tiết hướng dẫn nấu ăn (1) 77 Hình 4.39: Màn hình hiển thị chi tiết hướng dẫn nấu ăn (2) 77 Hình 4.40: Màn hình đánh giá ăn 77 Hình 4.41: Màn hình hiển thị đánh giá ăn người dùng 77 Hình 4.42: Màn hình tạo hướng dẫn nấu ăn 78 Hình 4.43: Màn hình hiển thị danh sách đăng lưu 78 Hình 4.44: Màn hình hiển thị danh sách ăn nên sử dụng lưu 78 Hình 4.45: Màn hình hiển thị danh sách ăn khơng nên sử dụng lưu 78 Hình 4.46: Màn hình hiển thị thơng báo 79 Hình 4.47: Màn hình hiển thị danh sách trị chuyện 79 Hình 4.48: Màn hình nhắn tin 79 Hình 4.49: Màn hình trang cá nhân người dùng 79 Hình 4.50: Màn hình chỉnh sửa thơng tin cá nhân 80 Hình 4.51: Màn hình tạo album 80 Hình 4.52: Màn hình xem album 80 Hình 4.53: Màn hình thay đổi mật 80 nhiều hình ảnh dạng lướt dọc 10 Bình luận Hiển thị bình luận người dùng 11 Danh sách ăn Hiển thị danh sách ăn có hướng dẫn ứng dụng 12 13 Chi tiết hướng dẫn nấu Hiển thị chi tiết hướng dẫn nấu ăn (tên, ăn nguyên liệu, bước, video) Chia sẻ ăn Tạo đăng đính kèm đường dẫn tới ăn người dùng muốn chia sẻ 14 Đánh giá ăn Người dùng đánh giá ăn (người dùng cho điểm từ đến kèm theo bình luận) 15 16 Xem đánh giá ăn Xem đánh giá ăn tất người người dùng dùng Tạo hướng dẫn nấu ăn Người dùng tạo cơng thức hướng dẫn nấu ăn 17 Danh sách trò Danh sách tin nhắn người dùng chuyện 18 Nhắn tin Hiển thị tin nhắn người dùng với người dùng khác với chatbot 19 Thông báo Hiển thị thông báo người dùng 20 Trang cá nhân Hiển thị thông tin cá nhân người dùng (ảnh đại diện, tên, danh sách đăng, album) 21 Tạo album Người dùng tạo album 22 Thông tin album Hiển thị thông tin album 23 Xem danh sách đăng, Hiển thị danh sách đăng, ăn mà 72 ăn lưu người dùng lưu 24 Chỉnh sửa thông tin cá nhân Chỉnh sửa thông tin cá nhân người dùng 25 Cài đặt thông báo Người dùng bật tắt tính nhận thơng báo 26 Đổi mật Người dùng thay đổi mật tài khoản 27 Quên mật Người dùng nhập email dùng để đăng ký tài khoản để hệ thống gửi email xác nhận thiết lập lại mật 28 Thay đổi danh sách chủ đề Người dùng thay đổi danh sách chủ đề mà quan tâm quan tâm Bảng 4.34: Danh sách hình 4.2.4.2 Giao diện số hình ứng dụng 73 Hình 4.26: Màn hình đăng nhập Hình 4.27: Màn hình đăng ký Hình 4.28: Màn hình xác thực email Hình 4.29: Màn hình chọn chủ đề 74 Hình 4.30: Màn hình bảng tin Hình 4.31: Màn hình xem đăng theo chủ đề Hình 4.32: Màn hình tìm kiếm người dùng 75 Hình 4.33: Màn hình tạo đăng Hình 4.34: Màn hình tạo đăng kèm Hình 4.35: Màn hình tạo đăng gợi đường dẫn đến hướng dẫn nấu ăn ý ăn nên khơng nên sử dụng Hình 4.36: Màn hình bình luận Hình 4.37: Màn hình hiển thị danh sách ăn 76 Hình 4.38: Màn hình hiển thị chi tiết Hình 4.39: Màn hình hiển thị chi tiết hướng dẫn nấu ăn (1) hướng dẫn nấu ăn (2) Hình 4.40: Màn hình đánh giá ăn Hình 4.41: Màn hình hiển thị đánh giá ăn người dùng 77 Hình 4.42: Màn hình tạo hướng dẫn nấu Hình 4.43: Màn hình hiển thị danh ăn sách đăng lưu Hình 4.44: Màn hình hiển thị danh sách Hình 4.45: Màn hình hiển thị danh ăn nên sử dụng lưu sách ăn khơng nên sử dụng lưu 78 Hình 4.46: Màn hình hiển thị thơng Hình 4.47: Màn hình hiển thị danh báo sách trị chuyện Hình 4.48: Màn hình nhắn tin Hình 4.49: Màn hình trang cá nhân người dùng 79 Hình 4.50: Màn hình chỉnh sửa thơng tin Hình 4.51: Màn hình tạo album cá nhân Hình 4.53: Màn hình thay đổi mật Hình 4.52: Màn hình xem album 80 Hình 4.54: Màn hình bật tắt tính Hình 4.55: Màn hình chỉnh sửa nhận thơng báo chủ đề người dùng theo dõi 4.3 Triển khai hệ thống Hình 4.56: Sơ đồ triển khai hệ thống 81 Máy chủ API triển khai hệ thống đám mây Heroku, hoạt động 1000 tháng Sau 30 phút khơng có truy cập hệ thống tự động chuyển trạng thái ngủ phải chờ khoảng thời gian nhỏ đánh thức để sử dụng Hình 4.57: Thơng tin máy chủ triển khai Database ứng dụng sử dụng Add-ons PostgreSql Heroku, Hobby-Dev với số dòng liệu 10000, sức chứa 1GB, tối đa 20 kết nối (connection) lúc Hình 4.58: Thơng tin sở liệu triển khai Hệ thống sử dụng MongoDB Atlat search engine, phiên Shared với thiết lập bản, sức chứa tối đa 512MB, RAM dùng chung Hình 4.59: Thơng tin thiết lập MongoDB Atlat 82 Ngồi ra, hệ thống sử dụng dịch vụ Firebase Firestorage Firestore với thông số: - Firestorage: sức chứa tối đa 5GB, giới hạn số lượt tải xuống 50K/ngày, giới hạn số lượt tải lên 20K/ngày - Firestore: sức chứa tối đa 1GB, số lượt đọc, ghi xóa 50K/ngày, 20K/ngày 20K/ngày 83 Chương KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 5.1 Đánh giá 5.1.1 - Thuận lợi Trên thị trường có nhiều ứng dụng chia sẻ phương pháp nấu ăn ứng dụng mạng xã hội, giúp nhóm có nhiều ý tưởng thiết kế giao diện liệu - Các tài liệu công cụ thực đồ án có đầy đủ chi tiết mạng - Giảng viên hướng dẫn đưa nhiều gợi ý giúp nhóm định hình hướng q trình thực khóa luận 5.1.2 Khó khăn - Mất nhiều thời gian để làm quen với ngơn ngữ, cơng cụ - Tìm kiếm tài liệu hướng dẫn nấu ăn gặp nhiều khó khăn - Các cơng nghệ cịn chưa hoàn thiện, thường xuyên gặp vấn đề liên quan đến mã nguồn 5.2 Kết đạt - Hoàn thành yêu cầu đặt ban đầu, có đầy đủ tính cần thiết ứng dụng mạng xã hội chia sẻ phương pháp nấu ăn dinh dưỡng - Sinh viên thực nắm cách thức làm ứng dụng di động - Sinh viên nắm công nghệ phổ biến như: Flutter, Firebase, NestJs, MongoDB, Postgresql Ưu điểm: - Giao diện đơn giản, tươi sáng, người dùng dễ dàng theo tác ứng dụng - Tốc độ phản hồi thao tác nhanh Nhược điểm: - Chưa đưa gợi ý thực đơn dựa số sức khỏe người dùng - Tính ứng dụng chatbot chưa cao 84 - Cần cập nhật thêm sở liệu hướng dẫn nấu ăn (Hiện có khoảng 250 món) 5.3 Hướng phát triển - Cải thiện khả xử lý chatbot - Thêm tính tạo thực đơn, đưa gợi ý thực đơn dựa tiêu chí sức khỏe người dùng (chiều cao, cân nặng,…) - Hỗ trợ tính thay đổi ngơn ngữ - Tối ưu hóa code để tăng tốc độ tương tác 85 TÀI LIỆU THAM KHẢO [1] Multiple Authors – MongoDB Documentation – [Online] https://docs.mongodb.com/ [2] Multiple Authors – Flutter Documentation – [Online] https://docs.flutter.dev [3] Multiple Authors – Getting Started on Heroku with Node.js – [Online] https://devcenter.heroku.com/articles/getting-started-with-nodejs [4] Multiple Authors – NestJs Documentation – [Online] https://docs.nestjs.com/ [5] Multiple Authors – OneSignal Documentation – [Online] https://documentation.onesignal.com/docs [6] Multiple Authors – Firebase Service Documentation – [Online] https://firebase.google.com/docs [7] Marcin Wanago – NestJs Tutorial – [Online] https://wanago.io/courses/api-withnestjs/ 86 ... KHĨA LUẬN Khoá luận với đề tài ? ?Xây dựng ứng dụng mạng xã hội chia sẻ phương pháp nấu ăn dinh dưỡng? ?? tập trung vào nghiên cứu, phân tích thực trạng ứng dụng cơng nghệ để từ xây dựng thành ứng dụng. .. mê nấu nướng Với mong muốn tạo nơi kết nối người có niềm đam mê nấu ăn đem lại ăn ngon, dinh dưỡng cho người dùng, nhóm chúng em tạo ứng dụng ? ?Mạng xã hội chia sẻ phương pháp nấu ăn dinh dưỡng? ??... BÁ CƯỜNG – 18520013 TRƯƠNG HỮU MINH ĐỨC - 18520626 KHÓA LUẬN TỐT NGHIỆP XÂY DỰNG ỨNG DỤNG MẠNG XÃ HỘI CHIA SẺ PHƯƠNG PHÁP NẤU ĂN DINH DƯỠNG