Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 118 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
118
Dung lượng
11,22 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 NGUYỄN HỒNG PHÚC KHÓA LUẬN TỐT NGHIỆP XÂY DỰNG ỨNG DỤNG CHIA SẺ VÀ TRAO ĐỔI SÁCH Building an app to share and exchange books KỸ SƯ NGÀNH KỸ THUẬT PHẦN MỀM TP HỒ CHÍ MINH, 2020 ĐẠ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 NGUYỄN HỒNG PHÚC – 16520951 KHÓA LUẬN TỐT NGHIỆP XÂY DỰNG ỨNG DỤNG CHIA SẺ VÀ TRAO ĐỔI SÁCH Building an app to share and exchange books 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, 2020 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 – Chủ tịch – Thư ký – Ủy viên – Ủy viên ĐHQG TP HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CƠNG NGHỆ THƠNG TIN CỘNG HỊA XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc Lập - Tự Do - Hạnh Phúc TP HCM, ngày… tháng… năm 2020 NHẬN XÉT KHÓA LUẬN TỐT NGHIỆP (CỦA CÁN BỘ HƯỚNG DẪN) Tên khóa luận: XÂY DỰNG ỨNG DỤNG CHIA SẺ VÀ TRAO ĐỔI SÁCH Nhóm SV thực hiện: Cán hướng dẫn: Nguyễn Hồng Phúc 16520951 Ths Lê Thanh Trọng Đánh giá Khóa luận Về báo cáo: Số trang 97 _ Số chương Số bảng số liệu 23 _ Số hình vẽ 51 _ Số tài liệu tham khảo 18 _ Sản phẩm Một số nhận xét hình thức báo cáo: Về nội dung nghiên cứu: Về chương trình ứng dụng: Về thái độ làm việc sinh viên: Đánh giá chung:Khóa luận đạt/khơng đạt u cầu khóa luận tốt nghiệp kỹ sư/ cử nhân, xếp loại Giỏi/ Khá/ Trung bình Điểm sinh viên: Nguyễn Hồng Phúc:……… /10 Người nhận xét (Ký tên ghi rõ họ tên) ĐHQG TP HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CƠNG NGHỆ THƠNG TIN CỘNG HỊA XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc Lập - Tự Do - Hạnh Phúc TP HCM, ngày… tháng… năm 2020 NHẬN XÉT KHÓA LUẬN TỐT NGHIỆP (CỦA CÁN BỘ PHẢN BIỆN) Tên khóa luận: XÂY DỰNG ỨNG DỤNG CHIA SẺ VÀ TRAO ĐỔI SÁCH Nhóm SV thực hiện: Cán phản biện: Nguyễn Hồng Phúc 16520951 *Name of lecturer* Đánh giá Khóa luận Về báo cáo: Số trang 97 _ Số chương Số bảng số liệu 23 _ Số hình vẽ 51 _ Số tài liệu tham khảo 18 _ Sản phẩm Một số nhận xét hình thức báo cáo: Về nội dung nghiên cứu: Về chương trình ứng dụng: Về thái độ làm việc sinh viên: Đánh giá chung:Khóa luận đạt/khơng đạt u cầu khóa luận tốt nghiệp kỹ sư/ cử nhân, xếp loại Giỏi/ Khá/ Trung bình Điểm sinh viên: Nguyễn Hồng Phúc:……… /10 Người nhận xét (Ký tên ghi rõ họ tên) LỜI CẢM ƠN Khoá luận tốt nghiệp với đề tài “Xây dựng ứng dụng chia sẻ trao đổi sách” minh chứng cho trình cố gắng khơng ngừng việc tìm tịi, học hỏi suốt năm học tập trường Đại học Công nghệ Thông tin Thể khả thân việc áp dụng kiến thức chuyên môn vào giải tốn thực tế Trong q trình thực khoá luận, em nhận hướng dẫn tận tình từ q thầy cơ, giúp đỡ hỗ trợ từ gia đình bạn bè Một cách đặc biệt, em xin gửi lời cảm ơn chân thành đến: Các thầy cô trường Đại học Công nghệ Thơng Tin nói chung thầy Khoa Cơng nghệ Phần mềm nói riêng tận tình truyền đạt kiến thức tới em năm học tập trường Đó tài sản quý báu giúp em hồn thành khố luận hành trang cho đường nghiệp thân sau Em xin gửi lời cảm ơn sâu sắc tới Ths Lê Thanh Trọng, người trực tiếp hướng dẫn, bảo, giúp đỡ em lúc khó khăn, đưa lời khun bổ ích để khố luận hoàn thành tiến độ đá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è bên cạnh để động viên đóng góp ý kiến q trình hồn thành khố luận Thành phố Hồ Chí Minh, tháng 01 năm 2020 Sinh viên Nguyễn Hồng Phúc ĐHQG TP HỒ CHÍ MINH CỘNG HỊA XÃ HỘI CHỦ NGHĨA VIỆT NAM TRƯỜNG ĐẠI HỌC Độc Lập - Tự Do - Hạnh Phúc CÔNG NGHỆ THÔNG TIN ĐỀ CƯƠNG CHI TIẾT TÊN ĐỀ TÀI: XÂY DỰNG ỨNG DỤNG CHIA SẺ VÀ TRAO ĐỔI SÁCH Cán hướng dẫn: Ths Lê Thanh Trọng Thời gian thực hiện: Từ ngày 07/09/2020 đến ngày 02/01/2021 Sinh viên thực hiện: Nguyễn Hồng Phúc - 16520951 Nội dung đề tài: Mục tiêu: - Xây dựng ứng dụng kết nối người yêu sách, tạo môi trường chia sẻ, học hỏi từ sách khuyến khích thói quen đọc sách người - Tận dụng nguồn tài nguyên sách cộng đồng thông qua chức mượn trao đổi sách - Tìm hiểu ứng dụng công nghệ mới, nâng cao kỹ phát triển phần mềm Phạm vi: Đề tài tập trung vào xây dựng ứng dụng tảng di động (iOS) với chức chính: - Trị chuyện: Dễ dàng nhắn tin với bạn bè hỗ trợ định dạng văn bản, biểu tượng cảm xúc, nhãn dán, hình ảnh - Thảo luận: Chia sẻ, bàn luận thể cảm xúc tức học/ trích dẫn thể loại sách - Nhận xét/ Đánh giá: Bất kỳ người dùng để lại đánh giá nhận xét sách nhiều tiêu chí, giúp người dùng khác chọn sách phù hợp sở thích - Trao đổi sách: Tìm kiếm, trao đổi sách giấy - Mượn sách: Yêu cầu mượn sách giấy kho sách chung (kho sách chứa tất sách người dùng trạng thái “sẵn sàng cho mượn”) tới chủ sở hữu - Quản lý tủ sách: Thêm mới, cập nhật tình trạng trạng thái sách Thêm học rút từ sách tủ - Thông báo: Luôn nhận thông báo kể không mở ứng dụng - Khởi tạo tài khoản: Không cần đăng ký, tích hợp với mạng xã hội Facebook Đối tượng sử dụng: Là người sử dụng thiết bị di động (iOS) có nhu cầu: - Người có sở thích đọc chia sẻ sách - Người có nhu cầu tìm kiếm sách phù hợp để đọc - Người sở hữu sách muốn lan toả tri thức cách cho mượn sách Phương pháp thực hiện: - Tìm hiểu đánh giá giải pháp có - Đề xuất, cải thiện tính cần thiết - Áp dụng mơ hình thác nước vào xây dựng ứng dụng Kết mong đợi: - Hiểu rõ framework liên quan (Vapor, Websocket, Combine, SwiftUI, …) để ứng dụng vào xây dựng ứng dụng chia sẻ trao đổi sách - Hoàn thành ứng dụng chạy tảng iOS với đầy đủ yêu cầu chức đề - Ứng dụng có độ hồn thiện cao, có khả đưa vào thực tiễn 4.2.4.2 Giao diện số hình ứng dụng Hình 4.24: Màn hình tạo viết Hình 4.25: Màn hình hiển thị viết Hình 4.26: Màn hình hiển thị chi tiết Hình 4.27: Màn hình sách yêu viết thích 83 Hình 4.28: Màn hình sách Hình 4.29: Màn hình danh sách người chờ trao đổi dùng có sẵn sách cho mượn Hình 4.30: Màn hình gửi yêu cầu Hình 4.31: Màn hình tạo sách chờ trao mượn sách đổi 84 Hình 4.32: Màn hình kết đổi sách Hình 4.33: Màn hình lịch sử mượn trao đổi sách Hình 4.34: Màn hình trang cá nhân Hình 4.35: Màn hình tủ sách cá nhân 85 Hình 4.36: Màn hình chi tiết Hình 4.37: Màn hình thơng báo hoạt sách cá nhân động Hình 4.38: Màn hình cài đặt tài khoản Hình 4.39: Màn hình cập nhật vị trí 86 Hình 4.40: Màn hình yêu cầu truy cập Hình 4.42: Màn hình đăng nhập lần vị trí đầu Hình 4.41: Màn hình danh sách Hình 4.43: Màn hình nhắn tin trị chuyện 87 Hình 4.44: Màn hình đánh giá sách Hình 4.46: Màn hình chi tiết đầu sách Hình 4.45: Màn hình tạo yêu cầu đổi Hình 4.47: Màn hình chấp nhận yêu sách cầu mượn sách 88 Hình 4.48: Màn hình xem yêu cầu mượn sách 4.3 Triển khai hệ thống 4.3.1 Máy chủ Máy chủ triển khai hệ thống đám mây Heroku Đây RESTful API server phục vụ nhu cầu truy vấn, cập nhật liệu hệ thống thông qua phương thức HTTP Cung cấp API cần thiết khác để lắng nghe thay đổi liệu thơng qua WebSocket 89 Hình 4.49: Quá trình triển khai ứng dụng lên tảng đám mây Ứng dụng tạo quản lý thông qua Heroku CLI30, sử dụng trực tiếp terminal Sử dụng gói triển khai miễn phí tài khoản xác thực, 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.50: Thơng tin máy chủ triển khai31 30 31 Tài liệu sử dụng Heroku CLI xem tại: https://devcenter.heroku.com/articles/heroku-cli Stack Heroku-18 sử dụng Ubuntu18.04, có sẵn từ năm 2018 hỗ trợ đến tháng 04/2023 90 Database ứng dụng sử dung Addons 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.51: Thơng tin sở liệu triển khai 4.3.2 Ứng dụng di động Ứng dụng cài đặt chạy thử máy ảo thiết bị iPhone 6S, thiết bị đăng ký để kiểm thử tải khoản thành viên nhà phát triển Apple, sử dụng để nhận thơng báo đẩy Tất thiết bị chưa đăng ký sử dụng toàn chức mà ứng dụng cung cấp Ứng dụng hoạt động ổn định, phiên hệ điều hành yêu cầu iOS 13 trở lên 91 Chương KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 5.1 Kết đạt Thơng qua việc nghiên cứu tìm hiểu công nghệ, đặc biệt công nghệ mới, em phát triển ứng dụng chia sẻ trao đổi sách hồn chỉnh Do giới hạn kinh phí đăng ký tài khoản nhà phát triển, ứng dụng dừng lại giai đoạn chạy thử, chưa thể đẩy lên chợ ứng dụng Appstore Tuy nhiên kết chạy thử cho thấy hệ thống hoạt động tốt, mở rộng, phát triển thêm tương lai Về mặt kỹ thuật, em đạt kết sau: - Tìm hiểu Vapor, cơng nghệ để xây dựng máy chủ Tận dụng tối đa ưu điểm ngôn ngữ Swift, giúp dễ dàng phát triển đồng thời máy chủ máy khách nhóm làm việc cỡ nhỏ - Tìm hiểu SwiftUI, cơng nghệ để lập trình giao diện với cách tiếp cận hoàn toàn khác, mã nguồn viết tự nhiên tái sử dụng cho hệ điều hành khác Apple cung cấp - Áp dụng kiến thức lập trình mạng, WebSocket, SMTP, … học vào xây dựng ứng dụng - Hiểu biết cách sử dụng số dịch vụ dành riêng cho nhà phát triển Apple đăng ký chứng nhà phát triển, chứng kiểm thử cho thiết bị, chứng tạo thông báo đẩy - Tìm hiểu dịch vụ lưu trữ liệu Amazone S3 Amazone Web Services cung cấp - Tìm hiểu biết cách triển khai máy chủ lên tảng đám mây để sử dụng khơng mạng cục 92 Về mặt thực tiễn em đạt được: - Nâng cao khả tìm hiểu nghiên cứu công nghệ, đặc biệt công nghệ - Hiểu quy trình phát triển ứng dụng hoàn chỉnh - Cải thiện kỹ lên kế hoạch điều phối công việc - Xây dựng ứng dụng triển khai phục vụ nhu cầu thực tế sống 5.2 Thuận lợi khó khăn 5.2.1 Thuận lợi - Các cơng nghệ có cú pháp thân thiện, dễ dàng tiếp cận để hiểu mức độ - Giảng viên hướng dẫn có nhiều kiến thức kinh nghiệm giúp đỡ em nhiều việc định hướng giải đáp vướng mắc q trình thực khố luận - Được giảng viên tạo động lực tìm tịi, học hỏi ln có tinh thần tốt để làm việc 5.2.2 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 Cùng với cộng đồng phát triển chưa lớn mạnh công nghệ cũ gây tốn nhiều thời gian để sửa lỗi - Khối lượng công việc cần thực nhiều nên chịu áp lực mặt thời gian - Nhiều thành phần giao diện chưa hỗ trợ, phải tự phát triển từ đầu 93 5.3 Hướng phát triển Đề tài cịn mở rộng phát triển thêm nhiều tính hữu ích cho người dùng như: - Tạo tài khoản thức (Offical Account) - Là tài khoản tổ chức, xác thực Tài khoản hỗ trợ tính tạo hoạt động quên góp, phát trao đổi sách Người tham gia đóng góp sách tính điểm ưu tiên có nhu cầu mượn xin sách hoạt động - Cho phép tìm kiếm kết nối bạn đọc gần - Đánh giá điểm uy tín người mượn sách Giúp chủ sở hữu sách có sở để định có nên đồng ý yêu cầu mượn sách hay không - Hỗ trợ đa ngôn ngữ đa chủ đề giao diện - Cho phép thêm sách quét mã sách - Gửi báo cáo vi phạm, khoá tài khoản người dùng vi phạm quy định sử dụng ứng dụng Sau hồn thiện, ứng dụng triển khai lên App Store để người tải xuống sử dụng 94 TÀI LIỆU THAM KHẢO Tài liệu tiếng Anh [1] N Agarwal “Lifecycle of Docker Container,” Jan 2017 [Online] Availabe: https://medium.com/@BeNitinAgarwal/lifecycle-of-docker-container-d2da9f85959 [Accessed 15 Sep 2020] [2] Apple, “Setting Up a Remote Notification Server,” [Online] Availabe: https://developer.apple.com/documentation/usernotifications/setting_up_a_remote_ notification_server [Accessed Dec 2020] [3] J Beswick, “Uploading to Amazon S3 directly from a web or mobile application,” 14 Sep 2020 [Online] Availabe: https://aws.amazon.com/blogs/compute/uploadingto-amazon-s3-directly-from-a-web-or-mobile-application [Accessed 27 Nov 2020] [4] F Brancati “Combine: Getting Started,” Apr 2020 [Online] Availabe: https://www.raywenderlich.com/7864801-combine-getting-started [Accessed 16 Sep 2020] [5] A Freas “How to use CocoaPods with your internal iOS frameworks,” 14 May 2019 [Online] Availabe: https://medium.com/@akfreas/how-to-use-cocoapodswith-your-internal-ios-frameworks-192aa472f64b [Accessed 17 Oct 2020] [6] J Hammink “An introduction to PostgreSQL,” 20 April 2020 [Online] Availabe: https://aiven.io/blog/an-introduction-to-postgresql [Accessed Oct 2020] [7] Heroku “Heroku Postgres,” 09 July 2020 [Online] Availabe: https://devcenter.heroku.com/articles/heroku-postgresql [Accessed 15 Dec 2020] [8] J Koopman “An Introduction to WebSockets,” Oct 2020 [Online] Availabe: https://www.raywenderlich.com/13209594-an-introduction-to-websockets [Accessed 16 Sep 2020] 95 [9] R Kliffer “Alamofire Tutorial: Getting Started,” 25 Apr 2018 [Online] Availabe: https://www.raywenderlich.com/35-alamofire-tutorial-getting-started [Accessed 17 Sep 2020] [10] W McGinty “Basic Authentication with Vapor 3,” 21 May 2018 [Online] Availabe: https://medium.com/rocket-fuel/basic-authentication-with-vapor-3- c074376256c3 [Accessed Oct 2020] [11] B Orlov “iOS Architecture Patterns,” 29 Nov 2015 [Online] Availabe: https://medium.com/ios-os-x-development/ios-architecture-patterns-ecba4c38de52 [Accessed Oct 2020] [12] N Rolnik “Sending Push Notifications With Vapor,” 16 Jul 2020 [Online] Availabe: https://www.raywenderlich.com/11238593-sending-push-notifications- with-vapor [Accessed Dec 2020] [13] K Sookocheff, “How Do Websockets Work?,” April 2019 [Online] Availabe: https://sookocheff.com/post/networking/how-do-websockets-work [Accessed 16 Sep 2020] [14] A Verma “Upload Images, video, audio, or any type of files to AWS S3 Bucket using Swift 4,” Feb 2020 [Online] Availabe: https://medium.com/@iamayushverma/uploading-photos-videos-files-to-aws-s3using-swift-4-1241f690a993 [Accessed 27 Nov 2020] Tài liệu tiếng Việt [1] M Hà, “26% người Việt Nam hồn tồn khơng đọc sách,” 18/04/2019 [Trực tuyến] Địa chỉ: https://thanhnien.vn/thoi-su/26-nguoi-viet-nam-hoan-toan-khong-doc-sach1072672.html [Truy cập 10/09/2020] 96 [2] N.T.T Hằng, “Ý tưởng ‘Trao đổi sách - Book Exchange’,” 27/09/2019 [Trực tuyến] Địa chỉ: http://www.thanhdoan.hochiminhcity.gov.vn/ThanhDoan/webtd/News/32823 [Truy cập 12/09/2020] [3] B.T Khơi, “Hình thành thói quen đọc sách giới trẻ,” 19/06/2020 [Trực tuyến] Địa chỉ: https://nhandan.com.vn/baothoinay-xahoi-songtre/hinh-thanh-thoiquen-doc-sach-trong-gioi-tre-581261 [Truy cập 12/09/2020] [4] H Ngọc, “Ý nghĩa, vai trò đọc sách đời sống xã hội nhân Ngày Sách Việt Nam,” 16/04/2020 [Trực tuyến] Địa https://sotttt.yenbai.gov.vn/noidung/tintuc/Pages/chi-tiet-tintuc.aspx?ItemID=539&l=Tinhoatdong&lv=28 [Truy cập 10/09/2020] 97 chỉ: ... - Áp dụng mơ hình thác nước vào xây dựng ứng dụng Kết mong đợi: - Hiểu rõ framework liên quan (Vapor, Websocket, Combine, SwiftUI, …) để ứng dụng vào xây dựng ứng dụng chia sẻ trao đổi sách -... KHÓA LUẬN TỐT NGHIỆP (CỦA CÁN BỘ PHẢN BIỆN) Tên khóa luận: XÂY DỰNG ỨNG DỤNG CHIA SẺ VÀ TRAO ĐỔI SÁCH Nhóm SV thực hiện: Cán phản biện: Nguyễn Hồng Phúc 16520951 *Name of lecturer* Đánh giá Khóa. .. KHÓA LUẬN TỐT NGHIỆP (CỦA CÁN BỘ HƯỚNG DẪN) Tên khóa luận: XÂY DỰNG ỨNG DỤNG CHIA SẺ VÀ TRAO ĐỔI SÁCH Nhóm SV thực hiện: Cán hướng dẫn: Nguyễn Hồng Phúc 16520951 Ths Lê Thanh Trọng Đánh giá Khóa