CHƯƠNG 1: CƠ SỞ CỦA ĐỀ TÀI 1. Các công nghệ sử dụng 1. Spring boot Spring Boot là một framework của JAVA cho phép bạn dễ dàng tạo ra các ứng dụng JAVA độc lập dựa trên Spring. Spring Boot thường được dùng trong kiến trúc microservice bởi vì tính tối giản mà Spring Boot cung cấp.
Các ứng dụng tạo ra từ Spring boot có thể được thực thi bằng một dòng lệnh đơn giản: java -jar cũng như cho phép deploy bằng file war. Spring boot hỗ trợ: + Tomcat + Jetty + Undertow Spring boot cung cấp một số các tính năng cho phép bạn hoàn thiện các yêu cầu phi chức năng cho dự án(cung cấp các cấu hình bên ngoài, security, metrics, health checks) Spring boot cũng cung cấp rất nhều module: + Spring boot DevTools: Cung cấp live-reload giúp tăng tốc độ thực hiện + Spring boot Actuator: Cung cấp khả năng giám sát và quản lý ứng dụng + Spring boot Starters: Cung cấp các dependency giúp tối giản hóa các bước cấu hình các công nghệ được sử dụng. + Spring boot AutoConfiguration: Cung cấp các cấu hình mẫu của các công nghệ giúp giảm thời gian cài đặt. Lợi ích của Spring Boot: Tối đa hóa năng suất khi thực hiện dự án.
Thay vì phải tốn thời gian tìm kiếm các công nghệ cần thiết cũng như phiên bản phù hợp. Spring sẽ thay bạn thực hiện việc đó với Spring – starter POM Đơn giản hóa việc triển khai ứng dụng, bằng cách cho phép tạo các file thực thi jar, đồng thời hỗ trợ triển khai trên các server ứng dụng Hỗ trợ nhiều maven plugin Tương tác với các công cụ trong kiến trúc micro service để xây dựng các ứng dụng với tính khả dụng cao và chịu lỗi tốt. Sử dụng Dependency Injection và Inversion Of Control từ Spring FrameWork Cung cấp các tính năng giúp hỗ trợ các yêu cầu phi chức năng phổ biến của dự án. 13 Mô tả đồ án khóa luận tốt nghiệp chuyên ngành Công Nghệ Phần Mềm 1.
ReactJS React(Hay còn được biết đến với tên Reactjs) là một thư viện mã nguồn mở được phát triển bởi Facebook. React được dùng để xây dựng các giao diện người dùng và các ứng dụng Web nhanh chóng và hiệu quả. Đồng thời giảm số lượng mã nguồn phải viết so với JavaScript. Khi sử dụng React, bạn phát triển ứng dụng của bạn bằng cách tạo ra các component có thể tái sử dụng (Giống như một miếng lego).
Các component là các mảnh rời rạc của giao diện cuối mà khi tập hợp lại sẽ tại nên toàn bộ giao diện người dùng. Vai trò chính của React trong ứng dụng là xử lý tầng view, giống như ký tự V trong mô hình MVC (Model-View-Controller) bằng cách cung cấp cách render tối ưu và hiệu quả nhất. Thay vì phải xử lý giao diện người dùng như là một đối tượng duy nhất. React khuyến khích các lập trình viên chia nhỏ các Uis phức tạp thành các component có thể tái sử dụng, giống như một viên gạch khi xây dựng UI.
Các công nghệ sử dụng Back-end 1. Mysql MySQL là một hệ thống quản lý cơ sở dữ liệu quan hệ mã nguồn mở (RDBMS) được phát triển bởi Oracle dựa trên ngôn ngữ truy vấn có cấu trúc (SQL). MySQL là một phần không thể thiếu trong nhiều ứng dụng phổ biến hiện nay. Mã nguồn mở, tính ổn định và các tính năng hổ trợ phong phú là ưu điểm của MySQL và được Oracle cập nhật, hỗ trợ liên tục.
14 Mô tả đồ án khóa luận tốt nghiệp chuyên ngành Công Nghệ Phần Mềm Cơ sở dữ liệu của MySQL là một hệ thống client/server bao gồm một hệ thống cơ sở dữ liệu đa luồng hỗ trợ nhiều ngôn ngữ Back End khác nhau, hỗ trợ nhiều chương trình và thư viện khác nhau, các công cụ quản trị và hàng loạt các giao diện lập trình ứng dụng. Cloudinary Cloudinary là một nền tảng cung cấp Software as a Service cung cấp giải pháp để quản lý các dữ liệu hình ảnh, video trên cloud. Cloudinary cung cấp giải pháp cho mọi video, hình ảnh từ việc upload, lưu trữ, quản lý, biến đổi. Việc upload, xử lý được xử lý trên server riêng của Cloudinary có sử dụng công nghệ tự động mở rộng trong trường hợp lượng truy cập tăng đột ngột.
Hình 2: Các nền tảng Cloudinary hỗ trợ 1. Google map Google Maps API là một bộ công cụ phát triển ứng dụng của Google cho phép lập trình viên tích hợp dữ liệu địa lý và chức năng bản đồ vào các ứng dụng web và di động. API này cung cấp một loạt các giao diện lập trình ứng dụng (APIs) để truy cập và tùy chỉnh dữ liệu địa lý, bản đồ và các tính năng liên quan. Mục tiêu của khóa luận này là tìm hiểu, nghiên cứu và ứng dụng công nghệ Google Maps API vào một vấn đề cụ thể.
Phạm vi của khóa luận sẽ tập trung vào việc phân tích và sử dụng các tính năng của Google Maps API để giải quyết một vấn đề liên quan đến địa lý hoặc bản đồ. Các tính năng chính của Google Maps API: - Hiển thị bản đồ: API cho phép nhúng bản đồ tương tác vào ứng dụng của bạn, hiển thị dữ liệu địa lý và tùy chỉnh giao diện người dùng. - Tìm kiếm địa điểm: API cung cấp khả năng tìm kiếm và đề xuất địa điểm dựa trên từ khóa hoặc vị trí. - Chỉ đường và điều hướng: Sử dụng API, bạn có thể tích hợp chức năng chỉ đường và điều hướng vào ứng dụng của mình, cho phép người dùng tìm đường đi từ điểm A đến điểm B.
- Tương tác với dữ liệu địa lý: API cho phép truy xuất và tương tác với dữ liệu địa lý, bao gồm thông tin về địa điểm, tọa độ và các thuộc tính khác. 15 Mô tả đồ án khóa luận tốt nghiệp chuyên ngành Công Nghệ Phần Mềm - Định vị và theo dõi vị trí: API hỗ trợ việc định vị vị trí của người dùng và theo dõi vị trí di chuyển của họ trên bản đồ. - Ứng dụng Google Maps API trong khóa luận: 1. KHẢO SÁT HIỆN TRẠNG Trong những năm gần đây, ngành du lịch Việt Nam phát triển nhanh chóng với số lượng khách du lịch, không chỉ trong nước mà còn cả khách du lịch nước ngoài, không ngừng tăng lên so với nhiều năm.
Nhu cầu tìm hiểu về các địa điểm du lịch, tour tham quan, hay đặt phòng khách sạn, địa điểm nhà hàng ăn uống ngày càng lớn, sau đó là nhiều ứng dụng du lịch và tìm kiếm thông tin. Để đáp ứng nhu cầu đó, nhóm của chúng tôi đã ấp ủ ý tưởng phát triển một website hỗ trợ người dùng xem và tìm kiếm các tour du lịch, thông tin về các địa điểm du lịch mà họ muốn đến, lên kế hoạch,. Tripadvisor Hình 3: Tripadvisor Một số tính năng nổi bật của website: Hỗ trợ tìm kiếm các dịch vụ đặt phòng khách sạn, vé máy bay, nhà hàng tại trong và ngoài nước với nhiều ưu đãi hấp dẫn một cách dễ dàng. Nhiều ưu đãi, voucher giảm giá hấp dẫn.
Khám phá các nhà hàng theo loại thức ăn. Dễ dàng so sánh giá phòng khách sạn và vé máy bay. 16 Mô tả đồ án khóa luận tốt nghiệp chuyên ngành Công Nghệ Phần Mềm 1. Airbnb App Hình 4: Airbnb App Airbnb là một website du lịch tiện dụng giúp người dung khám phá những chỗ ở tuyệt vời cho mỗi kì nghỉ và những trải nghiệm mới khi đi du lịch.
Người dùng sẽ thu thập được giá trị thông tin về các địa điểm du lịch, ăn uống ở nhiều nơi và dễ dàng tương tác với thành viên có sở thích du lịch. Một số tính năng nổi bật của ứng dụng: Lên kế hoạch cho các chuyến đi du lịch mỗi cách dễ dàng. Dễ dàng tìm thấy các địa điểm ăn uống, khách sạn, homestay phù hợp với nhu cầu của người dùng. Khám phá các điểm du lịch hàng đầu, tham quan nổi tiếng nên đi.
Xem và viết nhận xét cá nhân về những nơi bạn đã đến. 17 Mô tả đồ án khóa luận tốt nghiệp chuyên ngành Công Nghệ Phần Mềm CHƯƠNG 2: MÔ HÌNH HÓA YÊU CẦU 2. XÁC ĐỊNH YÊU CẦU 2. Yêu cầu chức năng Bảng 01: Yêu cầu xác định chức năng Đối Chức năng Yêu cầu tượng Website Khách Đăng kí Không cần có App hàng Thấy được thông tin của khách sạn ở hoặc có tài tiềm trang chính khoản trên hệ năng Tìm kiếm địa điểm thống Thấy được đánh giá của khách du lịch về khách sạn.
Thấy thông tin của mỗi địa điểm. Quên mật khẩu Khách Đăng nhập Người dùng hàng đã Đăng xuất bắt buộc phải đăng kí Đánh giá khách sạn. có tài khoản tài Thêm, xóa khách sạn yêu thích. trên hệ thống khoản.
Thanh toán vnpay, hủy đặt phòng. Thanh toán lại. Chỉnh sửa thông tin cá nhân Thêm, xóa, sửa xem lại kế hoạch chuyến đi Admin Đăng nhập, đăng xuất Quản trị viên Thống kê các địa điểm, khách sạn được phải đăng xem nhiều nhất nhập thành Quản lý Địa điểm công. Xem Thống kê báo cáo các địa điểm, nhà nghỉ nổi bật (khám phá) Quản lý người dùng (block user) Quản lý tập hợp các điểm đến nổi bật (explore) Quản lý tiện ích (tags) Quản lý dịch vụ Quản lý vị trí Khách Đăng kí Người dùng hàng Đăng nhập bắt buộc phải đăng kí Quản lý mục cho thuê có tài khoản làm chủ Thêm loại phòng trên hệ thống nhà Thêm số lượng Thêm địa chỉ 18 Mô tả đồ án khóa luận tốt nghiệp chuyên ngành Công Nghệ Phần Mềm Thêm tiện nghi nổi bật ( ulities: bể bơi, bồn tắm, sân, lò nướng, bếp đốt, .), tiên nghi yêu thích, tiện nghi an đảm bảo an toàn (máy báo khói, bộ sơ cứu, máy phát hiện khí CO,.
) Thêm hình ảnh Tạo tiêu đề Thêm điểm dịch vụ phòng Tạo mô tả Thêm giá tiền Quản lý được thông tin đặt phòng 2. Yêu cầu phi chức năng ● Giao diện: o Thân thiện người dùng. o Thuận tiện cho việc sử dụng. ● Độ tin cậy: o Đảm bảo bảo mật thông tin người dùng.
o Đảm bảo bảo mật thông tin tài khoản. o Yêu cầu an toàn việc sử dụng hệ thống không được gây hại cho người dùng. Hiệu năng thực hiện: o Tốc độ tìm kiếm nhanh chóng. o Thời gian xử lý nhanh.
o Có khả năng mở rộng. o Hệ thống phản hồi nhanh và chính xác với từng request của người dùng. o Hệ thống có tính mở rộng cao có thể dễ dàng thêm các tính năng mới trong tương lai hay bảo trì dự án. Định hướng phát triển - Xây dựng ứng dụng web - Xây dựng ứng dụng mobile 19 Mô tả đồ án khóa luận tốt nghiệp chuyên ngành Công Nghệ Phần Mềm 2.