KHÓA LUẬN TỐT NGHIỆP XÂY DỰNG ỨNG DỤNG CHIA SẺ KINH NGHIỆM VÀ LỊCH TRÌNH DU LỊCH

120 10 0
KHÓA LUẬN TỐT NGHIỆP  XÂY DỰNG ỨNG DỤNG CHIA SẺ  KINH NGHIỆM VÀ LỊCH TRÌNH DU LỊCH

Đ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

ĐẠ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 PHAN THANH DUY NGUYỄN TRUNG NGUYÊN KHÓA LUẬN TỐT NGHIỆP XÂY DỰNG ỨNG DỤNG CHIA SẺ KINH NGHIỆM VÀ LỊCH TRÌNH DU LỊCH BUILDING AN APPLICATION TO SHARE TRAVELING EXPERIENCES AND SCHEDULES KỸ SƯ NGÀNH KỸ THUẬT PHẦN MỀM TP HỒ CHÍ MINH, 2021 ĐẠ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 PHAN THANH DUY – 16520303 NGUYỄN TRUNG NGUYÊN – 16520848 KHÓA LUẬN TỐT NGHIỆP XÂY DỰNG ỨNG DỤNG CHIA SẺ KINH NGHIỆM VÀ LỊCH TRÌNH DU LỊCH BUILDING AN APPLICATION TO SHARE TRAVELING EXPERIENCES AND SCHEDULES 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, 2021 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 ĐẠI HỌC QUỐC GIA 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 TP HCM, ngày… tháng… năm…… 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Ẻ KINH NGHIỆM VÀ LỊCH TRÌNH DU LỊCH Nhóm SV thực hiện: Cán hướng dẫn/phản biện: Phan Thanh Duy 16520303 Nguyễn Trung Nguyên 16520848 ThS Lê Thanh Trọng Đánh giá Khóa luận Về báo cáo: Số trang Số bảng số liệu Số tài liệu tham khảo Số chương Số hình vẽ 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: Phan Thanh Duy: ……… /10 Nguyễn Trung Nguyên: ……… /10 Người nhận xét (Ký tên ghi rõ họ tên) ĐẠI HỌC QUỐC GIA 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 TP HCM, ngày… tháng… năm…… 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Ẻ KINH NGHIỆM VÀ LỊCH TRÌNH DU LỊCH Nhóm SV thực hiện: Cán hướng dẫn/phản biện: Phan Thanh Duy 16520303 Nguyễn Trung Nguyên 16520848 Đánh giá Khóa luận Về báo cáo: Số trang Số bảng số liệu Số tài liệu tham khảo Số chương Số hình vẽ 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: Phan Thanh Duy: ……… /10 Nguyễn Trung Nguyên: ……… /10 Người nhận xét (Ký tên ghi rõ họ tên) LỜI CẢM ƠN Sau năm học tập rèn luyện Trường Đại học Cơng nghệ Thơng tin, tận tình giảng dạy giúp đỡ quý thầy cô, đặc biệt quý thầy cô khoa Công nghệ Phần mềm, chúng em gặt hái nhiều kiến thức tảng bổ ích, áp dụng vào luận văn áp dụng chặng đường sau Chúng em xin chân thành cảm ơn quý thầy cô trường Đại học Công nghệ Thơng tin nói chung, q thầy khoa Cơng nghệ Phần mềm nói riêng, đặc biệt thầy Lê Thanh Trọng tận tình hướng dẫn đóng góp ý kiến để chúng em hồn thành khóa luận cách tốt Bên cạnh đó, nhóm xin gửi lời cảm ơn đến bạn lớp có lời góp ý, động viên để nhóm có thêm động lực thực khóa luận khoảng thời gian khó khăn Trong suốt q trình chúng em tìm hiểu thực khóa luận, thời gian khả có giới hạn nên chúng em cịn nhiều thiếu sót Do đó, nhóm chúng em mong nhận thông cảm ý kiến đóng góp chân thành từ q thầy bạn Một lần nữa, nhóm chúng em xin chân thành cảm ơn người Thành phố Hồ Chí Minh, tháng 01 năm 2021 Phan Thanh Duy Nguyễn Trung Nguyên ĐẠI HỌC QUỐC GIA 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ẻ kinh nghiệm lịch trình du lịch Cán hướng dẫn: ThS Lê Thanh Trọng Thời gian thực hiện:Từ ngày 03/10/2020 đến ngày 02/01/2021 Sinh viên thực hiện: Phan Thanh Duy - 16520303 Nguyễn Trung Nguyên - 16520848 Nội dung đề tài: Mục tiêu: - Xây dựng ứng dụng kết nối bạn trẻ có đam mê xê dịch lại với - Thúc đẩy phát triển ngành du lịch quốc tế - Giúp bạn dễ dàng lên kế hoạch cho chuyến đi, dễ dàng tìm bạn đồng hành tin cậy Phạm vi: Đề tài tập trung phát triển dành cho người dùng Android với tính chính: - Tham khảo tour du lịch: hệ thống cho phép người dùng tham khảo tour du lịch cá nhân doanh nghiệp, book tour du lịch có nhu cầu - Đăng tải tour: hệ thống cho phép đối tác đăng tải tour du lịch có sẵn lên website - Đánh giá tour tham gia: hỗ trợ lưu phản ánh, kinh nghiệm người dùng vào hệ thống, giúp người dùng khác hiểu thêm tour tham gia - Nhắn tin: thành viên tour nhắn tin với để lên kế hoạch, chuẩn bị đồ dùng cho tour tới, hay để người dẫn đồn phổ biến nội quy chuyến - Xem vị trí: hướng dẫn viên theo dõi vị trí thành viên khác thông qua ứng dụng di động - Hệ thống hỗ trợ quản lý người dùng bao gồm đăng nhập, đăng xuất, đổi mật khẩu, thơng tin cá nhân, người dùng đăng bài, tạo feedback, kết bạn, chat Đối tượng: Đề tài nhằm đến đối tượng: - Các bạn trẻ động, đam mê khám phá - Các doanh nghiệp hoạt động du lịch với mong muốn phát triển thị phần Phương pháp thực hiện: - Tìm hiểu đối thủ cạch tranh - Tìm hiểu nhu cầu thị trường - Áp dụng mơ hình scum vào phát triển ứng dụng - Xây dựng server theo kiến trúc micro-services Kết mong đợi: - Xây dựng ứng dụng Mạng xã hội du lịch - Hiểu sâu hệ thống micro-services để ứng dụng vào việc xây dựng ứng dụng 10 6.3 ASP.NET MVC 6.3.1 ASP.NET MVC gì? ASP.NET MVC framework tuyệt vời hỗ trợ pattern MVC cho ASP.NET Nếu bạn muốn hiểu ASP.NET MVC làm việc nào, bạn cần phải có hiểu biết rõ ràng mơ hình MVC MVC cụm từ viết tắt Model-ViewController, phân chia pattern ứng dụng thành phần - model, controller view  Model giúp lưu trữ liệu ứng dụng trạng thái Nó sở liệu tập tin XML  View coi giao diện người dùng sử dụng khách truy cập trang web bạn để nhìn thấy liệu Các trang ASPX thường sử dụng để hiển thị view ứng dụng ASP.NET MVC  Controller chịu trách nhiệm xử lý tương tác người dùng với trang web Nó sử dụng để xác định loại view cần phải hiển thị Controller sử dụng cho mục đích giao tiếp với model Framework nhẹ cung cấp khả kiểm thử, tích hợp với tính có ASP.NET xác thực (authentication) dựa membership master page 6.3.2 Tại nên dùng ASP.NET MVC? Bạn nên sử dụng ASP.NET MVC framework cho việc tạo ứng dụng web lý liệt kê sau đây: SoC: Một lợi ích đưa ASP.NET MVC Separation of Concern (phân tách mối bận tâm) Framework cung cấp phân tách rõ ràng model, logic nghiệp vụ, giao diện người dùng liệu Control: Khi bạn sử dụng framework ASP.NET MVC, bạn cung cấp control mạnh mẽ JavaScript, HTML CSS so với control cung cấp số hình thức truyền thống web 106 Có khả kiểm thử: Framework ASP.NET MVC hỗ trợ việc kiểm thử ứng dụng web tốt Vì vậy, bạn muốn kiểm thử ứng dụng web trước đưa chúng cho người sử dụng, bạn cần sử dụng ASP.NET MVC Gọn nhẹ: Framework không sử dụng Viewstate, hỗ trợ bạn việc làm giảm băng thông request nhiều Nhiều chuyên gia khuyên bạn nên sử dụng framework bạn quan tâm đến việc tạo ứng dụng MVC tuyệt vời hữu ích dựa web View Size Control: Các framework ASP.NET thường phải đối mặt với vấn đề viewstate kích thước control HTML Phần view lưu toàn liệu rendered kích thước tập tin HTML trở nên lớn Nếu bạn sử dụng đường kết nối internet chậm, bạn quan sát thấy độ trễ việc tải trang web ứng dụng Vấn đề khơng cịn tồn framework ASP.NET MVC khơng chứa khái niệm view Bằng cách sử dụng ASP.NET MVC, bạn khơng cịn phải đối mặt với vấn đề thời gian tải trang nửa Tích hợp: Khi bạn tích hợp MVC với jQuery, bạn viết code chạy trình duyệt web Điều giúp giảm tải cho web server bạn Khả sử dụng: Bạn khơng cần phải có nhiều kiến thức kỹ thuật sử dụng framework ASP.NET MVC Tuy nhiên, bạn thích sau học cách làm cho hoạt động Framework tốt nhiều so với nhiều hình thức trang web khác Lý hoạt động gần với chiến lược làm việc web coi dễ dàng thú vị để sử dụng API Services: Một lợi lớn khác việc rendered MVC giúp bổ sung thêm API web services Nếu bạn muốn thêm service tới ứng dụng web mình, bạn chắn cần phải tìm hiểu làm service hoạt động 107 6.4 Microservices 6.4.1 Microservices gì? Thực tế có nhiều định nghĩa khác Microservices hiểu theo cách đơn giản thì, microservice kiểu kiến trúc phần mềm Các module phần mềm chia thành service nhỏ (microservice) Mỗi service đặt server riêng -> dễ dàng để nâng cấp scale ứng dụng 6.4.2 Monolithic applications Tưởng tượng bạn phải xây dựng dịch vụ gọi taxi qua di động cạnh tranh với Uber Hailo Sau số buổi họp thu thập yêu cầu phân tích thiết kế, bạn chọn công nghệ (technology stack) tạo dự án Rails, Spring Boot, Play, hay Maven Dự án có kiến trúc chia khối lục giác (hexagonal architecture) Kiến trúc đa diện giúp ứng dụng chun biệt mơ hình liệu đầu vào, đầu Trong lõi ứng dụng business logic thể khối dịch vụ, đối tượng cho vùng nghiệp vụ (domain objects) kiện (events: khách đặt xe, khách hủy xe, xe nhận khách ) Xung quanh lõi chuyển đổi (adapter) ví dụ kết nối vào sở liệu, gửi nhận thông điệp (messaging), web service giao diện web front end Kiến trúc khối có nhiều mặt, business logic trung tâm Mặc dù có cấu trúc module hóa hợp lý, ứng dụng kiểu đóng gói cài đặt thành khối (monolithic) Mã chạy cụ thể tùy thuộc vào ngôn ngữ lập trình hay thư viện framework Ví dụ ứng dụng Java đóng file WAR, triển khai application server Tomcat Jetty Dùng framework khác, ứng dụng Java file tự đóng gói để chạy JAR Ứng Rails hay Nodejs đóng gói theo cấu trúc thư mục phân cấp Ứng dụng viết kiểu phổ biến Chúng dễ viết, dễ thử nghiệm, dễ copy & paste cơng cụ lập trình IDE dự án mẫu tối ưu để tạo ứng dụng khối đơn /*Do cần thuyết phục lập trình viên theo cơng nghệ/framework nên nhà sản xuất phải lập trình cần New Project, ấn 108 nút Build & Run ứng dụng chạy ln*/ Có thể kiểm thử tự động giao diện web với Selenium Ứng dụng khối đơn dễ triển khai PHP, Python cần cập nhật mã Một số khác có chức khởi động nóng (hot reload: dịch lại nạp lên chạy tiếp) Node.js, Play Framework, Revel Để tăng khả chịu tải bổ xung thêm web application server giống sau cân tải (load balancer) 6.4.3 Ưu điểm Hiện nay, ứng dụng thường lớn liên tục update ví dụ facebook, linkin… Với kiến trúc monolith, việc gồm toàn ứng dụng vào khối làm việc nâng cấp trở nên khó khăn thời gian Để giải vấn đề đó, ứng dụng lớn cần thiết tách thành service nhỏ Mỗi service quản lý sở liệu riêng, nằm server riêng, tách biệt hoàn toàn với Các ưu điểm sau:  Điều quan trọng dễ nâng cấp scale up, scale down Giả sử bạn làm trang web liên quan tới vận tải, kho bãi Khi số lượng xe hay hàng hóa tăng lên, việc nâng cấp server cho service liên quan đến nghiệp vụ kho… (ngược lại, giảm sever cần thiết) Với cloud computing, việc nâng cấp server vô dễ dàng với vài cú click chuột Điều khó thực với monolith  Do tách biệt nên service bị lỗi, tồn hệ thống hoạt động bình thường Với monolith, module bị lỗi kéo sập toàn hệ thống  Các service nằm tách biệt nhau, chúng sử dụng ngơn ngữ lập trình riêng, database riêng VD service xử lý ảnh viết C++, service tổng hợp data viết Python  Có thể áp dụng quy trình tự động hóa, build, deploy, monitoring 109  Khi chia nhỏ service, team size giảm người làm việc hiệu 6.4.4 Nhược điểm  Các module giao tiếp qua mạng nên tốc độ khơng cao monolith Ngoài ra, module phải tự giải vấn đề bảo mật, transaction, lỗi kết nối, quản lý log files  Việc đảm bảo tính đồng liệu trở nên phức tạp  Sử dụng nhiều service nên việc theo dõi, quản lý service phức tạp  Cần đội ngũ thật ngon để thiết kế triển khai bao gồm software architect xịn 6.5 Heroku 6.5.1 Heroku gì? Heroku tảng đám mây cho phép công ty xây dựng, phân phối, theo dõi mở rộng ứng dụng - Heroku cung cấp cách nhanh để chuyển từ ý tưởng sang URL, bỏ qua tất sở hạ tầng phức tạp khó hiểu Heroku cách nhanh để trở thành công ty ứng dụng Heroku dịch vụ cho phép công ty dành thời gian để phát triển triển khai ứng dụng để tạo giá trị Heroku trải nghiệm tuyệt vời dành cho developer Heroku giúp developer cần tập trung vào chun mơn phát triển ứng dụng 6.5.2 Đặc điểm heroku Bảo mật: Heroku xây dựng tin tưởng bảo mật Sự tin cậy minh bạch nguyên tắc cốt lõi Heroku Heroku cung cấp khả 110 theo dõi threat liên tục, vá lỗ hổng hệ điều hành tự động vận hành ops suốt ngày đêm Hơn 23 tỷ yêu cầu ngày, tạo triệu ứng dụng, 150 dịch vụ bổ trợ Dữ liệu: Heroku tảng dành cho data apps - cung cấp database-as-a-service an tồn, có khả mở rộng với nhiều công cụ dành cho nhà phát triển database followers, forking, dataclip health checks tự động Dữ liệu giữ vai trò quan trọng ứng dụng nào, từ liệu khách hàng đến liệu dịch vụ, ứng dụng liệu đôi với Hệ sinh thái phong phú Heroku bao gồm Heroku Postgres - dịch vụ sở liệu tích hợp sẵn Các developer khơng cần phải tìm hiểu cách cung cấp sở liệu tối ưu thông qua trial error, thay vào họ có quyền truy cập vào sở liệu có khả mở rộng cao với tính rollback hỗ trợ ứng dụng development style Một hệ sinh thái dịch vụ: Heroku hệ sinh thái dịch vụ đám mây, sử dụng để mở rộng ứng dụng với dịch vụ quản lý hoàn toàn Sử dụng dịch vụ chất lượng cao giúp nhà phát triển xây dựng nhiều hơn, nhanh cách sử dụng dịch vụ đáng tin cậy cung cấp chức mà họ cần Heroku Add-ons dịch vụ quản lý hồn tồn, tích hợp để sử dụng với Heroku Chúng cung cấp thu nhỏ lệnh cho phép nhà phát triển mở rộng khả ứng dụng Hơn 150 Tiện ích có sẵn, cung cấp dịch vụ từ sở liệu đến cảnh báo thời gian hoạt động, dịch vụ nhắn tin lưu tự động nhằm thực search, metrics mail delivery 6.5.3 Tại chọn Heroku - Heroku có cung cấp gói dịch vụ free với chất lượng tốt phù hợp cho đồ án môn học sinh viên 111 - Heroku hỗ trợ sẵn cho dịch vụ liệu Ở dự án sử dụng Postgresql Heroku hỗ trợ sẵn tối ưu với biến môi trường cung cấp sẵn cho dự án - Heroku có tính tự động deploy app bạn có thay đổi Điều hữu ích developer để tập trung vào code mà lo đến vấn đề khác - Heroku hỗ trợ tốt với Nodejs hỗ trợ tốt với nodejs thiết lập để viết với typescript 6.6 Docker 6.6.1 Docker gì? Docker tảng cho developers sysadmin để develop, deploy run application với container Nó cho phép tạo môi trường độc lập tách biệt để khởi chạy phát triển ứng dụng môi trường gọi container Khi cần deploy lên server cần run container Docker application bạn khởi chạy 6.6.2 Tại phải dùng Docker? Việc setup deploy application lên nhiều server vất vả từ việc phải cài đặt công cụ, môi trường cần cho application đến việc chạy ứng dụng chưa kể việc không đồng môi trường nhiều server khác Chính lý Docker đời để giải vấn đề 6.6.3 Tại phải dùng Docker?  Không máy ảo Docker start stop vài giây  Bạn khởi chạy container hệ thống mà bạn muốn  Container build loại bỏ nhanh máy ảo  Dễ dàng thiết lập môi trường làm việc Chỉ cần config lần cài đặt lại dependencies Nếu bạn thay đổi máy 112 có người tham gia vào project bạn cần lấy config đưa cho họ  Nó giữ cho word-space bạn bạn xóa mơi trường mà ảnh hưởng đến phần khác 6.6.4 Một số khái niệm? Hình 40 Hình ảnh mơ tả khái niệm docker  Docker Client: cách mà bạn tương tác với docker thông qua command terminal Docker Client sử dụng API gửi lệnh tới Docker Daemon  Docker Daemon: server Docker cho yêu cầu từ Docker API Nó quản lý images, containers, networks volume  Docker Volumes: cách tốt để lưu trữ liệu liên tục cho việc sử dụng tạo apps  Docker Registry: nơi lưu trữ riêng Docker Images Images push vào registry client pull images từ registry Có thể sử dụng registry riêng bạn registry nhà cung cấp như: AWS, Google Cloud, Microsoft Azure  Docker Hub: Registry lớn Docker Images (mặc định) Có thể tìm thấy images lưu trữ images riêng bạn Docker Hub (miễn phí) 113  Docker Repository: tập hợp Docker Images tên khác tags VD: golang:1.11-alpine  Docker Networking: cho phép kết nối container lại với Kết nối host nhiều host  Docker Compose: công cụ cho phép run app với nhiều Docker containers cách dễ dàng Docker Compose cho phép bạn config command file docker-compose.yml để sử dụng lại Có sẵn cài Docker  Docker Swarm: để phối hợp triển khai container  Docker Services: containers production service run image mã hố cách thức để run image — sử dụng port nào, container run để service có hiệu cần thiết 6.7 Restful 6.7.1 Restful gì? REST viết tắt cụm từ Representational State Transfer (đơi cịn viết ReST) kiểu kiến trúc sử dụng việc giao tiếp máy tính (máy tính cá nhân máy chủ trang web) việc quản lý tài nguyên internet REST sử dụng nhiều việc phát triển ứng dụng Web Services sử dụng giao thức HTTP giao tiếp thông qua mạng internet Các ứng dụng sử dụng kiến trúc REST gọi ứng dụng phát triển theo kiểu RESTful 6.7.1 Restful Web Services gì? RESTful Web Service Web Service viết dựa kiến trúc REST REST sử dụng rộng rãi thay cho Web Service dựa SOAP WSDL RESTful Web Service nhẹ (lightweight), dễ dàng mở rộng bảo trì Những khái niệm REST (REpresentational State Transfer) đưa vào năm 2000 luận văn tiến sĩ Roy Thomas Fielding (đồng sáng lập giao thức HTTP) Trong luận văn ông giới thiệu chi tiết ràng buộc, quy ước cách thức thực với hệ thống để có hệ thống REST 114 REST định nghĩa quy tắc kiến trúc để bạn thiết kế Web services, trọng vào tài nguyên hệ thống, bao gồm trạng thái tài nguyên định dạng truyền tải qua HTTP, viết nhiều ngôn ngữ khác Nếu tính theo số dịch vụ mạng sử dụng, REST lên vài năm qua mơ hình thiết kế dịch vụ chiếm ưu Trong thực tế, REST có ảnh hưởng lớn gần thay SOAP WSDL đơn giản dễ sử dụng nhiều REST quy tắc để tạo ứng dụng Web Service, mà tuân thủ nguyên tắc thiết kế sau:  Sử dụng phương thức HTTP cách rõ ràng  Phi trạng thái  Hiển thị cấu trúc thư mục Urls  Truyền tải JavaScript Object Notation (JSON), XML hai REST đặt quy tắc đòi hỏi lập trình viên xác định rõ ý định thông qua phương thức HTTP Thông thường ý định bao gồm lấy liệu, thêm liệu, cập nhập liệu xóa liệu Vậy bạn muốn thực ý định lưu ý quy tắc sau:  Để tạo tài nguyên máy chủ, bạn cần sử dụng phương thức POST  Để truy xuất tài nguyên, sử dụng GET  Để thay đổi trạng thái tài nguyên để cập nhật nó, sử dụng PUT  Để huỷ bỏ xóa tài nguyên, sử dụng DELETE Chú ý nguyên tắc khơng bắt buộc, thực tế bạn sử dụng phương thức GET để yêu cầu lấy liệu, trèn, sửa xóa liệu Server Tuy nhiên REST đưa nguyên tắc mục đích đưa thứ trở lên rõ ràng dễ hiểu 115 Một đặc điểm REST phi trạng thái (stateless), có nghĩa khơng lưu giữ thơng tin client Chẳng hạn bạn vừa gửi yêu cầu để xem trang thứ tài liệu, bạn muốn xem trang (sẽ trang 3) REST không lưu trữ lại thông tin trước phục vụ bạn trang số Điều có nghĩa REST khơng quản lý phiên làm việc (Session) Các thành phần máy chủ phi trạng thái phức tạp để thiết kế, viết phân bổ thông qua máy chủ cân tải Dịch vụ phi trạng thái không hoạt động tốt hơn, cịn chuyển hầu hết vai trị trì trạng thái sang ứng dụng máy khách Trong dịch vụ mạng RESTful, máy chủ chịu trách nhiệm đưa phản hồi cung cấp cách thức cho phép Client trì trạng thái ứng dụng REST đưa cấu trúc để người dùng truy cập vào tài ngun thơng qua URL, tài nguyên tất mà bạn gọi tên (Video, ảnh, báo cáo thời tiết ) Bạn cần tạo REST service để trả cho người dùng nguồn tài nguyên tương ứng Các địa REST service cần phải thật trực quan đến mức người dùng dễ đoán Hãy nghĩ địa (URL) giống gợi ý rõ ràng, dễ đốn trỏ tới cung cấp tài nguyên Tóm lại, cấu trúc URI nên đơn giản, dự đốn, dễ hiểu 116 CHƯƠNG 7: KẾT QUẢ ĐẠT ĐƯỢC 7.1 Kết quả: - Sau thời gian tìm hiểu, nghiên cứu thực đề tài, nhóm đạt số kết sau: + Về cơng nghệ:  Tìm hiểu công nghệ NET, kết hợp xây dựng ứng dụng điện thoại Flutter phần quản lý quản trị viên ASP.NET MVC  Tìm hiểu cách xây dựng API cho ứng dụng công nghệ RESTful  Sử dụng kiến trúc Microservices để xây dựng kết nối phần ứng dụng + Về ứng dụng:  Xây dựng tính phía người dùng cuối ứng dụng chia sẻ thông tin thơng thường như: đăng nhập, đăng xuất, tìm kiếm thông tin, lọc thông tin, xem thông tin chuyến đi, tạo chuyến đi, đăng ký tham gia, phản hồi đánh giá chuyến  Xây dựng tính phía quản trị viên hệ thống hệ thống cần quản lý thông tin ứng dụng cần có như: phân quyền cho người dùng, quản lý thông tin người dùng, quản lý thông tin chung cho ứng dụng dịch vụ chuyến đi, quản lý tất chuyến khuôn mẫu chuyến đi, xử lý tác vụ có vấn đề xảy ra,  Xây dựng tính mở rộng theo ý tưởng ứng dụng như: cho phép người dùng chỉnh sửa trang thơng tin cá nhân mình, cho phép người dùng kết nối với mạng xã hội thu nhỏ thơng qua việc kết bạn với nhau, nhắn tin cho nhau, đăng viết, hình ảnh, đánh giá người dùng khác tương tác với hoạt động đó, thành viên chuyến trực tiếp liên lạc với thơng qua nhóm trị chuyện chung chuyến đi, 117 + Về quy trình, nghiệp vụ, cách làm việc nhóm:  Áp dụng quy trình phát triển phần mềm Agile vào trình làm việc, xây dựng phát triển ứng dụng, đảm bảo sau giai đoạn phát triển, ứng dụng ln trạng thái sẵn sàng để sử dụng  Tìm hiểu thêm nghiệp vụ quản lý chuyến đi, người tham gia phía quản trị viên lẫn người dùng cuối, quy trình nghiệp vụ để người dùng tương tác với thơng qua việc tìm hiểu từ ứng dụng có sẵn  Sử dụng công cụ quản lý công việc làm việc nhóm Slack, Trello, Github, Zenhub, Microsoft Teams, để quản lý cơng việc làm việc nhóm hiệu  Sử dụng công cụ online để thiết kế ứng dụng Figma để thiết kế hình, SqlDBM để thiết kế sở liệu, Lucidchart để vẽ sơ đồ phân tích đặc tả nghiệp vụ cho ứng dụng, 7.2 Hạn chế: - Vì thời gian có hạn, kiến thức tìm hiểu chưa sâu nên số chức chưa thực được, chưa thực thiết kế - Nhóm thực cịn sinh viên, nên góc nhìn cịn chưa đủ tổng quan, bao qt, cịn góc mà nhóm chưa nhìn - Vì sản phẩm ứng dụng nhóm xây dựng để học hỏi, chưa đưa thực tế nên chưa đo lường sản phẩm có đáp ứng nhu cầu thực tế người dùng hay không, mức độ tiếp nhận sản phẩm người dùng 7.3 Hướng phát triển: - Hồn thiện tính mà nhóm chưa thực được, cải thiện giao diện logic cho phù hợp 118 - Đưa sản phẩm thị trường để người dùng trực tiếp trải nghiệm, từ thu phản hồi ý kiến người dùng để phát triển, cải thiện ứng dụng hoàn thiện hơn, phù hợp với nhu cầu người dùng - Thêm tính tốn đăng ký tham gia chuyến để đảm bảo tính ổn định xác nhận tham gia từ người đăng ký, tạo cam kết hai bên người tổ chức chuyến người tham gia chuyến đi, đảm bảo chất lượng hạn chế rủi ro cho người dùng sản phẩm 119 Tài liệu tham khảo Authentication https://techtalk.vn/authentication-trong-spa-reactjs-vuejs-nen-luu-token-o-dauco-nhung-van-de-lien-quan-den-security.html Flutter https://flutter.dev/ https://medium.com/flutter-community/parsing-complex-json-in-flutter747c46655f51 ASP.NET MVC https://docs.microsoft.com/en-us/dotnet/framework/ https://extcore.readthedocs.io/en/latest/getting_started/tutorial_mvc.html ASP.NET CORE https://docs.microsoft.com/en-us/aspnet/core/?view=aspnetcore-3.1 HALOHALO https://landing-mobile.hahalolo.com/ https://hcmcpv.org.vn/tin-tuc/nhung-xu-huong-du-lich-moi-cua-the-gioi-va-vietnam-1491857151 120 ... 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Ẻ KINH NGHIỆM VÀ LỊCH TRÌNH DU LỊCH Nhóm SV thực hiện: Cán hướng dẫn/phản biện: Phan Thanh Duy 16520303... 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Ẻ KINH NGHIỆM VÀ LỊCH TRÌNH DU LỊCH Nhóm SV thực hiện: Cán hướng dẫn/phản biện: Phan Thanh Duy 16520303... quan để ứng dụng vào xây dựng ứng dụng chia sẻ kinh nghiệm lịch trình du lịch - Hồn thành ứng dụng chạy tảng android 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

Ngày đăng: 05/09/2021, 20:51

Tài liệu cùng người dùng

Tài liệu liên quan