NGHIÊN CỨU LẬP TRÌNH DI ĐỘNG ĐA NỀN TẢNG VÀ XÂY DỰNG ỨNG DỤNG CHO THUÊ PHÒNG TRỌ DỰA TRÊN SỰ KẾT HỢP FLUTTER, GOLANG VÀ GRAPHQL

130 3 0
NGHIÊN CỨU LẬP TRÌNH DI ĐỘNG ĐA NỀN TẢNG VÀ XÂY DỰNG ỨNG DỤNG CHO THUÊ PHÒNG TRỌ DỰA TRÊN SỰ KẾT HỢP FLUTTER, GOLANG VÀ GRAPHQL

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

TRƯỜNG ĐẠI HỌC SƯ PHẠM KHOA TIN HỌC @&? BÁO CÁO THỰC TẬP TỐT NGHIỆP NGÀNH CÔNG NGHỆ THÔNG TIN ĐỀ TÀI NGHIÊN CỨU LẬP TRÌNH DI ĐỘNG ĐA NỀN TẢNG VÀ XÂY DỰNG ỨNG DỤNG CHO THUÊ PHÒNG TRỌ DỰA TRÊN SỰ KẾT HỢP FLUTTER, GOLANG VÀ GRAPHQL Giảng viên hướng dẫn: TS Nguyễn Thị Ngọc Anh Nhóm thực hiện: Trịnh Nhật Hạ Vy – 18CNTT3 Nguyễn Đình Toản – 18CNTT4 Đà Nẵng, tháng 02 năm 2022 NHẬN XÉT CỦA CÁN BỘ HƯỚNG DẪN Đà Nẵng, ngày … tháng … năm … Cán hướng dẫn NHẬN XÉT CỦA HỘI ĐỒNG PHẢN BIỆN Đà Nẵng, ngày … tháng … năm … Hội đồng phản biện LỜI CAM ĐOAN Chúng em tên Trịnh Nhật Hạ Vy – 18CNTT3 Nguyễn Đình Toản – 18CNTT4 Chúng em xin cam đoan đề tài chúng em thực Các nội dung kết nghiên cứu trình bày báo cáo tốt nghiệp trung thực tham khảo trích dẫn, rõ nguồn tham khảo theo quy định Sinh viên thực Trịnh Nhật Hạ Vy Nguyễn Đình Toản LỜI CẢM ƠN Đầu tiên, em xin chân thành cảm ơn Quý Thầy/Cô khoa Tin học trang bị kiến thức cho chúng em suốt trình học tập Trường Đại học Sư phạm – Đại học Đà Nẵng vừa qua Chính nhờ cơng lao giảng dạy, bảo tận tình Q Thầy/Cơ mà chúng em trang bị kiến thức chuyên ngành cơng nghệ thơng tin để thực tiếp chặng đường học tập, vận dụng sáng tạo sản phẩm hữu ích góp phần phục vụ lĩnh vực khác Với lịng kính trọng biết ơn sâu sắc, chúng em xin gửi lời cảm ơn đến giảng viên hướng dẫn, TS Nguyễn Thị Ngọc Anh tận tình giúp đỡ chúng em từ bước xây dựng ý tưởng nghiên cứu, đề cương suốt trình thực hoàn thiện báo cáo tốt nghiệp Chúng em xin gửi lời cảm ơn chân thành tới anh/chị đồng nghiệp đơn vị thực tập The Bay City tạo điều kiện thuận lợi giúp đỡ chúng thời gian học tập nghiên cứu thực báo cáo tốt nghiệp này Mặc dù chúng em cố gắng nổ lực để hoàn thành báo cáo tốt nghiệp phạm vi khả cho phép, chắn báo cáo không tránh khỏi thiếu sót Chúng em mong nhận thơng cảm, góp ý tận tình bảo Q Thầy/Cơ để báo cáo hồn thiện Chúng em xin chân thành cảm ơn! Nhóm sinh viên thực Trịnh Nhật Hạ Vy Nguyễn Đình Toản KẾ HOẠCH THỰC HIỆN ĐỀ TÀI CỦA NHÓM Thời gian thực Nội dung công việc Người thực Kết đạt Chương 1: Cơ sở lí thuyết 1.1 Tổng quan ngôn ngữ Dart 1.2 Tổng quan framework Flutter Trịnh Nhật Hạ Vy 14/02/2022 – 18/02/2022 1.3 Tổng quan ngôn ngữ Javascript 1.4 Tổng quan framework ReactJS 1.5 Tổng quan ngôn ngữ Golang 1.6 Tổng quan gRPC 1.7 Tổng quan GraphQL Hồn thành nội Nguyễn Đình Toản dung viết báo cáo chương 1.8 Hệ quản trị sở liệu PostgetQL Chương 2: Phân tích thiết kế hệ thống 2.1 Phân tích yêu cầu đề tài 2.2 Nghiên cứu trạng 2.3 Đặc tả hệ thống 21/02/2022 – Trịnh Nhật Hạ Vy 01/04/2022 Nguyễn Đình Toản 2.5 Biểu đồ hoạt động Hoàn thành nội dung viết báo Trịnh Nhật Hạ Vy cáo chương 2.6 Biểu đồ Nguyễn Đình Toản 2.7 Thiết kế sở liệu Nguyễn Đình Toản Hồn thiện mã nguồn cho tất chức ứng dụng trang web (bao gồm Frontend Backend) 2.4 Biểu đồ ca sử dụng Lập trình giao diện ứng dụng Lập trình giao diện dành cho doanh nghiệp ứng dụng Lập trình giao diện dành cho người thuê ứng dụng Trịnh Nhật Hạ Vy Trịnh Nhật Hạ Vy Lập trình trang web cho người quản trị Lập trình giao diện tin nhắn ứng dụng Lập trình giao diện phương thức tốn cho ứng dụng Lập trình API Nguyễn Đình Toản Lập trình API cho doanh nghiệp Lập trình API cho người thuê Lập trình API cho người quản trị Lập trình API tin nhắn Lập trình API phương thức toán Chương 3: Cài đặt chương trình kết 3.1 Cài đặt chương trình Trịnh Nhật Hạ Vy Nguyễn Đình Toản 3.2 Kết chương trình 04/04/2022 – 08/04/2022 Hồn thành nội dung viết báo cáo chương Chương 4: Kết luận hướng phát triển 4.1 Kết luận 4.2 Định hướng phát triển 11/04/2022 – 15/04/2022 Trịnh Nhật Hạ Vy Hoàn thành Nguyễn Đình Toản chương Hồn thiện sản phẩm báo cáo TTTN Báo cáo thực tập tốt nghiệp – Trịnh Nhật Hạ Vy & Nguyễn Đình Toản MỤC LỤC LỜI CAM ĐOAN LỜI CẢM ƠN KẾ HOẠCH THỰC HIỆN ĐỀ TÀI CỦA NHÓM MỤC LỤC i DANH MỤC BẢNG BIỂU vi DANH MỤC HÌNH VẼ vii LỜI MỞ ĐẦU Lí chọn đề tài .2 Mục tiêu nghiên cứu .3 Đối tượng phạm vi nghiên cứu 4 Phương pháp nghiên cứu Ý nghĩa đề tài Bố cục đề tài .4 Đóng góp đồ án CHƯƠNG I: CƠ SỞ LÝ THUYẾT 1.1 Tổng quan ngôn ngữ Dart 1.1.1 Khái niệm Dart 1.1.2 Lịch sử hình thành ngơn ngữ Dart 1.1.3 Tại sử dụng ngôn ngữ Dart 1.1.4 Tính Dart .8 1.2 Tổng quan framework Flutter 10 1.2.1 Khái niệm Flutter .10 1.2.2 Kiến trúc Flutter 11 1.2.3 Đặc điểm Flutter 12 1.2.4 Tính Flutter .13 1.2.5 Ưu nhược điểm Flutter 14 1.3 Tổng quan ngôn ngữ Javascript .15 1.3.1 Khái niệm Javascript 15 1.3.2 Lịch sử Javascript 16 1.3.3 Đặc điểm Javascript 17 1.3.4 Ưu điểm nhược điểm Javascript .18 Báo cáo thực tập tốt nghiệp – Trịnh Nhật Hạ Vy & Nguyễn Đình Toản 1.3.5 1.4 Sự khác Javascript với ngôn ngữ lập trình web khác 20 Tổng quan framework ReactJS 21 1.4.1 Khái niệm ReactJS 21 1.4.2 Đặc trưng ReactJS .21 1.4.3 Ưu nhược điểm ReactJS 23 1.4.4 Sự phát triển ReactJS 24 1.5 Tổng quan ngôn ngữ Golang 25 1.5.1 Khái niệm Golang 25 1.5.2 Lịch sử hình thành ngôn ngữ Golang 25 1.5.3 Đặc điểm Golang .26 1.5.4 Ưu nhược điểm Golang 27 1.5.5 Các lĩnh vực ứng dụng Golang 28 1.6 Tổng quan gRPC 28 1.6.1 Khái niệm gRPC 28 1.6.2 Các kiểu gRPC APIs 30 1.6.3 Ưu nhược điểm gRPC 31 1.7 Tổng quan GraphQL 31 1.7.1 Khái niệm GraphQL 31 1.7.2 Cấu trúc GraphQL 32 1.7.3 Đặc điểm GraphQL 33 1.7.4 Ưu nhược điểm GraphQL 34 1.8 Hệ quản trị sở liệu PostgetQL .34 1.8.1 Khái niệm PostgetQL 34 1.8.2 Tính PostgetQL 35 1.8.3 Vai trò PostgetSQL 36 1.8.4 So sánh PostgetSQL MySQL .36 CHƯƠNG II: PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG 40 2.1 Phân tích yêu cầu đề tài 40 2.1.1 Phát biểu toán .40 2.1.2 Yêu cầu toán 42 2.2 Nghiên cứu trạng 43 2.3 Đặc tả hệ thống .44 2.4 Biểu đồ ca sử dụng 44 Báo cáo thực tập tốt nghiệp – Trịnh Nhật Hạ Vy & Nguyễn Đình Toản 2.4.1 Biểu đồ ca sử dụng hệ thống 46 2.4.2 Biểu đồ ca sử dụng quản lí (dành cho người quản trị) 46 2.4.3 Biểu đồ ca sử dụng nhắn tin hệ thống 47 2.5 Biểu đồ hoạt động 47 2.5.1 Biểu đồ hoạt động đăng kí 49 2.5.2 Biểu đồ hoạt động đăng nhập 50 2.5.3 Biểu đồ hoạt động khôi phục mật .50 2.5.4 Biểu đồ hoạt động tạo nhà 51 2.5.5 Biểu đồ hoạt động chỉnh sửa nhà 51 2.5.6 Biểu đồ hoạt động xố tồ nhà 51 2.5.7 Biểu đồ hoạt động thêm phòng 52 2.5.8 Biểu đồ hoạt động chỉnh sửa phòng 52 2.5.9 Biểu đồ hoạt động xố phịng 52 2.5.10 Biểu đồ hoạt động tạo hoá đơn 52 2.5.11 Biểu đồ hoạt động chỉnh sửa hoá đơn .53 2.5.12 Biểu đồ hoạt động xoá hoá đơn 53 2.5.13 Biểu đồ hoạt động đặt cọc 53 2.5.14 Biểu đồ hoạt động xác nhận đặt cọc 54 2.5.15 Biểu đồ hoạt động rút lại tiền đặt cọc 54 2.5.16 Biểu đồ hoạt động toán hoá đơn 55 2.5.17 Biểu đồ hoạt động xác nhận trạng thái hoá đơn 55 2.5.18 Biểu đồ hoạt động tạo trò chuyện .55 2.5.19 Biểu đồ hoạt động tạo nhóm hội thoại .56 2.5.20 Biểu đồ hoạt động cập nhật hội thoại nhóm 56 2.5.21 Biểu đồ hoạt động xoá hội thoại .56 2.5.22 Biểu đồ hoạt động nhắn tin .57 2.5.23 Biểu đồ hoạt động gửi hình ảnh 57 2.5.24 Biểu đồ hoạt động xoá tin nhắn 57 2.6 Biểu đồ 57 2.6.1 Biểu đồ đăng kí với email .60 2.6.2 Biểu đồ đăng nhập với email 60 2.6.3 Biểu đồ tạo nhà .61 2.6.4 Biểu đồ chỉnh sửa nhà .61 Báo cáo thực tập tốt nghiệp – Trịnh Nhật Hạ Vy & Nguyễn Đình Toản Là người quản trị hệ thống, người dùng đăng nhập vào trang web https://dominic.name.vn/ để đăng nhập thực chức quản lí Hình 139: Trang web đăng nhập dành cho người quản lí 3.2.36 Giao diện quản lí người dùng (website quản lí) Trang web quản lí người dùng cung cấp đầy đủ danh sách toàn người dùng hệ thống, bao gồm doanh nghiệp, người thuê người quản lí Hình 140: Trang web quản lí người dùng Báo cáo thực tập tốt nghiệp – Trịnh Nhật Hạ Vy & Nguyễn Đình Toản Thơng tin người dùng hiển thị dạng card với đầy đủ thông tin Hình 141: Thơng tin chi tiết tài khoản Với chức thêm/sửa/xoá tài khoản giúp người quản trị dễ dàng quản lí người dùng Báo cáo thực tập tốt nghiệp – Trịnh Nhật Hạ Vy & Nguyễn Đình Toản Hình 142: Form thêm tài khoản Hình 143: Form chỉnh sửa tài khoản Báo cáo thực tập tốt nghiệp – Trịnh Nhật Hạ Vy & Nguyễn Đình Toản Hình 144: Xố tài khoản 3.2.37 Giao diện quản lí tồ nhà, hộ (website quản lí) Trang web quản lí tồ nhà hiển thị đầy đủ tồ nhà với giá thuê, số lượng phòng trống, thuê, đặt cọc tác vụ kèm Hình 145: Trang web quản lí tồ nhà Báo cáo thực tập tốt nghiệp – Trịnh Nhật Hạ Vy & Nguyễn Đình Toản Hình 146: Chi tiết tồ nhà Quản lí tồ nhà gồm chức xem/thêm/sửa/xoá với giao diện Báo cáo thực tập tốt nghiệp – Trịnh Nhật Hạ Vy & Nguyễn Đình Toản Hình 147: Form thêm tồ nhà Hình 148: Form chỉnh sửa nhà Báo cáo thực tập tốt nghiệp – Trịnh Nhật Hạ Vy & Nguyễn Đình Toản Hình 149: Xố tồ nhà Hình 150: Chi tiết hộ Quản lí hộ gồm chức xem/thêm/sửa/xoá với giao diện Báo cáo thực tập tốt nghiệp – Trịnh Nhật Hạ Vy & Nguyễn Đình Toản Hình 151: Form thêm hộ Báo cáo thực tập tốt nghiệp – Trịnh Nhật Hạ Vy & Nguyễn Đình Toản Hình 152: Form chỉnh sửa hộ Hình 153: Xố hộ 3.2.38 Giao diện quản lí hợp đồng (website quản lí) Trang web quản lí hợp đồng hiển thị đầy đủ hợp đồng với thông tin chi tiết thời gian, trạng thái hợp đồng, trạng thái toán, phương thức toán đặt cọc, v.v Báo cáo thực tập tốt nghiệp – Trịnh Nhật Hạ Vy & Nguyễn Đình Toản Hình 154: Trang web quản lí hợp đồng Hình 155: Chi tiết hợp đồng Với chức chỉnh sửa hợp đồng, người quản trị cập nhật thời gian, trạng thái phương thức toán Báo cáo thực tập tốt nghiệp – Trịnh Nhật Hạ Vy & Nguyễn Đình Toản Hình 156: Chỉnh sửa hợp đồng Với chức kết thúc hợp đồng, người quản trị kết thúc hợp đồng cho th hộ/phịng đó, trả trạng thái phịng trống ban đầu thuê thời gian tới Hình 157: Xác nhận kết thúc hợp đồng Báo cáo thực tập tốt nghiệp – Trịnh Nhật Hạ Vy & Nguyễn Đình Toản KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN Kết đạt Về kiến thức học tập Đối với lần thực tập này, chúng em xem hội thử thách thân để tự học hỏi, rèn luyện điều lạ từ ngôn ngữ lập trình hay framework chúng Khi tiếp xúc thực hành dùng ngôn ngữ, chúng nhận thú vị, đặc trưng riêng biệt mà chúng hỗ trợ Bên cạnh đó, việc áp dụng kiến thức học tự học điều thu hút em Điển ngơn ngữ C++, HTML, CSS,… thầy cô truyền tải cho chúng em giảng đường, bây giờ, lại trở thành kiến thức bản, tảng để em tiếp tục đường tự tìm tịi, học hỏi Đặc biệt, khả phân tích, thiết kế hệ thống hay giải vấn đề trình nghiên cứu lần củng cố, áp dụng cách linh hoạt Xây dựng sở liệu q trình nghiên cứu phân tích hệ thống nhằm đáp ứng tốt cho việc viết chương trình Và khơng quên trọng vào việc tìm hiểu nghiên cứu cấu trúc hệ thống để đảm bảo trải nghiệm tốt cho người dùng Về phần mềm Phần mềm viết ngơn ngữ Golang đóng vai trị server để xử lí logic, để tìm kiếm, lưu trữ, thay đổi liệu phục vụ trở lại người dùng Phần mềm viết ngơn ngữ Dart (thơng qua Framework Flutter) đóng vai trò Client, hệ thống giao diện người sử dụng để tương tác trực tiếp với người dùng Phần mềm viết rõ ràng phần liên quan đến ngôn ngữ nên hệ thống vận hành cách nhanh chóng xác, đảm bảo trải nghiệm cho người dùng cách tốt Bên cạnh việc tìm kiếm đặt phịng mà mục tiêu hệ thống nhằm hướng đến người sử dụng khách hàng nên việc đảm bảo tốc độ tải trang, khả truy suất thực cần thiết Bên cạnh việc thiết kế bố cục, tương phản châu chuốt kĩ lưỡng để thu hút thích thú người tiêu dùng Về phía hệ thống, xử lí tốt liệu, yêu cầu người dùng gửi đến, đảm bảo tính đắn, nhanh chóng Thêm vào đó, hệ thống cịn cung cấp trang web quản lí dành cho người quản trị với số tính nhằm quản lí, theo dõi kịp thời xử lí tình giúp doanh nghiệp người th Báo cáo thực tập tốt nghiệp – Trịnh Nhật Hạ Vy & Nguyễn Đình Toản Hạn chế đề tài Hệ thống dành cho doanh nghiệp, người thuê người quản lí thật hệ thống lớn, cần đầu tư thời gian, công sức nỗ lực để hoàn thiện Song, thời gian nghiên cứu có hạn, hệ thống mà chúng em phân tích thiết kế cịn nhiều hạn chế: - Chưa đăng kí thành cơng ứng dụng với cơng thương nên chưa thể tốn qua ví điện tử Momo Zalo Pay - Chưa thực toán qua liên kết ngân hàng - Chưa tối ưu hoàn toàn chức nhắn tin hệ thống - Chưa phát triển chức gọi điện thoại hệ thống - Chưa thực chức thay đổi ngôn ngữ, thông báo ứng dụng - Chưa hồn thiện chức thống kê tài cho doanh nghiệp - Chưa thực đầy đủ chức người quản trị - Tính bảo bảo mật cho hệ thống chưa hoàn chỉnh - Kiến thức thực tế kiến thức lập trình cịn hạn chế nên tính chuyên nghiệp chương trình chưa cao, bắt lỗi chưa kĩ số chổ số tính chưa tối ưu Hướng phát triển Hướng phát triển cần bổ sung tính mới, cơng nghệ vào đề tài nhằm khắc phục hạn chế đề tài phát triển hệ thống hoàn chỉnh, thân thiện với người sử dụng TÀI LIỆU THAM KHẢO [1] Sanjib Sinha, “Quick Start Guide to Dart Programming”, Apress, 2020 [2] https://dart.dev/ [3] Raywenderlich   Tutorial   Team,   Mike   Katz,   Kevin   David   Moore, Vincent Ngo, “Flutter Apprentice (First Edition): Learn to Build Cross­Platform Apps”, Amazon Digital Services LLC ­ KDP Print US, 2020 [4] https://docs.flutter.dev/ Báo cáo thực tập tốt nghiệp – Trịnh Nhật Hạ Vy & Nguyễn Đình Toản [5]  Marijn   Haverbeke,   “Eloquent   JavaScript,   3rd   Edition:   A   Modern Introduction to Programming,” Amazon.com Services LLC, 2018 [6] https://developer.mozilla.org/javascript [7] https://reactjs.org/ [8] Anthony Accomazzo, Nate Murray, Ari Lerner, “Fullstack React: The Complete Guide to ReactJS and Friends”, Fullstack.io, 2017 [9] https://go.dev/ [10]   Alan   Donovan,   Brian   Kernighan,   Go   Programming   Language,   The (Addison­Wesley Professional Computing Series), Addison­Wesley Professional, 2015 [11] https://grpc.io/   [12] https://graphql.org/   [13] Simon Riggs, Gianni Ciolli, “PostgreSQL 14 Administration Cookbook”, Packt Publishing, 2022 [14] http://sqladvice.com/postgresql­la­gi­so­sanh­mysql­va­postgresql/   Báo cáo thực tập tốt nghiệp – Trịnh Nhật Hạ Vy & Nguyễn Đình Toản

Ngày đăng: 09/12/2022, 16:03