MỞ ĐẦU 1. Lý do chọn đề tài Hiện nay, du lịch được xem là ngành kinh tế không khói quan trọng của nhiều nước trên thế giới, trong đó có Việt Nam. Nó dần trở nên phổ biến và là nhu cầu không thể thiếu của con người khi đời sống tinh thần của họ ngày càng phong phú. Thêm vào đó du lịch không chỉ đáp ứng nhu cầu giải trí đơn thuần mà còn giúp con người nâng cao hiểu biết, giao lưu văn hóa giữa các dân tộc, các quốc gia, hỗ trợ sự phát triển nhiều mặt của xã hội.
Nhưng gần đây, ngành du lịch đã phải chịu thiệt hại nặng nề do đại dịch Covid-19 gây ra. Đặc biệt, các hoạt động du lịch gần như phải “ngủ đông” khi đại dịch Covid-19 bùng phát lần thứ 4 vào đầu mùa hè 2021- mùa cao điểm nhất của ngành công nghiệp không khói. Trải qua 4 đợt dịch Covid-19, thị trường đã thay đổi về hành vi tiêu dùng, theo đó nhu cầu của khách du lịch cũng ngày một tăng cao. Vì thế, tôi quyết định chọn đề tài “Xây dựng ứng dụng nền tảng web giới thiệu các địa điểm du lịch” để làm đồ án tốt nghiệp.
Nội dung nghiên cứu - Tìm hiểu bài toán. - Thực hiện phân tích thiết kế hệ thống. - Tìm hiểu cách lưu trữ hình ảnh trên cloud. - Tìm hiểu một hệ quản trị cơ sở dữ liệu, ngôn ngữ lập trình web để xây dựng website giới thiệu các địa điểm du lịch.
Mục đích chọn đề tài Đề tài “Xây dựng ứng dụng nền tảng web giới thiệu các địa điểm du lịch” mục đích giúp quảng bá và giới thiệu các địa điểm du lịch đến tất cả mọi người trên môi trường mạng Internet. Phương pháp nghiên cứu Tổng hợp, tìm hiểu tài liệu và phân tích bài toán. Sau đó, áp dụng các kiến thức đã học vào việc phân tích thiết kế hệ thống và xây dựng website giới thiệu các địa điểm du lịch. * Về mặt lý thuyết - Hiểu được cách thức hoạt động của Client – Server.
- Hiểu được hệ quản trị cơ sở dữ liệu MongoDB và cách sử dụng. - Hiểu được cách phân tích thiết kế hệ thống phần mềm * Về mặt lập trình 1 - Sử dụng thư viện ReactJS của Javascript và TailwindCSS để phát triển giao diện - Sử dụng thư viện Redux để quản lý dữ liệu. - Sử dụng Cloudinary để lưu trữ hình ảnh. - Dùng MongoDBCompass để quản lý và phát triển cơ sở dữ liệu MongoDB.
- Sử dụng NodeJs để hỗ trợ và quản lý giao diện lập trình API (Application Programming Interface) + Về mặt hoạt động - Website phải thực hiện đầy đủ các chức năng theo yêu cầu, đưa ra các kết quả xử lý chính xác. Phạm vi, đối tượng nghiên cứu của đề tài Phạm vi: Website được xây dựng nhằm quảng bá và giới thiệu các địa điểm du lịch đến tất cả mọi người. Giao diện website: Màu sắc, hình ảnh, kiểu chữ, và bố cục trang bắt mắt, thu hút người dùng để tạo ra một trải nghiệm hấp dẫn và dễ sử dụng cho người dùng. Đối tượng: • Người dùng có nhu cầu muốn tìm hiểu về các địa điểm du lịch.
TỔNG QUAN VỀ ĐỀ TÀI 1. Hiện trạng hệ thống giới thiệu các địa điểm du lịch Hiện nay, hệ thống giới thiệu địa điểm du lịch đang phát triển mạnh mẽ với sự kết hợp của nhiều công nghệ mới. Các ứng dụng di động, trang web, và các nền tảng trực tuyến khác đang cung cấp thông tin chi tiết về các địa điểm du lịch, từ thông tin về địa danh đến đánh giá từ người dùng thực tế. Mạng xã hội và các nền tảng chia sẻ hình ảnh như Instagram, Facebook cũng đóng vai trò quan trọng trong việc tạo ra sự quan tâm và tăng cường khả năng giới thiệu địa điểm du lịch thông qua chia sẻ trải nghiệm của người dùng.
Tổng quan, hệ thống giới thiệu địa điểm du lịch ngày càng thông minh và đa dạng, giúp người dùng dễ dàng tìm kiếm thông tin và lựa chọn điểm đến phù hợp với mong muốn và sở thích của mình. Phát biểu bài toán Hiện nay nhu cầu đi du lịch của mọi người là rất cao, nhưng việc tìm dịa điểm để du lịch lại rất khó khăn với nhiều người. Bởi họ không biết được địa điểm nào phù hợp với nhu cầu của họ. Vì vậy việc xây dựng một website giới thiệu địa điểm du lịch là rất cần thiết.
Hệ thống sẽ cung cấp cho người dùng những thông tin về địa điểm du lịch phù hợp với nhu cầu với mọi người. Giải pháp Giải pháp về cơ sở dữ liệu: Xây dựng một cơ sở dữ liệu chứa các bài viết giới thiệu địa điểm du lịch. Các bài viết được phân loại theo vùng miền. Thiết kế giao diện người dùng hấp dẫn: Tạo một giao diện người dùng dễ sử dụng, hấp dẫn và thân thiện.
Sử dụng màu sắc phù hợp với du lịch, bố cục hợp lý và hình ảnh đẹp để nâng cao trải nhiệm của người dùng. Yêu cầu đạt được của hệ thống ❖ Yêu cầu chung - Trang chủ - Quản lý bài viết - Tìm kiếm bài viết - Bình luận bài viết - Mạng xã hội 3 ❖ Yêu cầu của các chức năng - Trang chủ: + Logo + Các bài viết có nội dung nổi bật, hiển thị dạng danh sách. + Hiển thị các bài viết mới nhất. - Trang bài viết chi tiết: + Hiển thị chi tiết của bài viết từ hình ảnh đến văn bản.
+ Hiển thị các bình luận của bài viết - Hệ quản trị nội dung bài viết + Chức năng đăng bài viết. + Chức năng sửa, ẩn, xóa bài viết. + Chức năng khôi phục bài viết đã ẩn. - Quản lý bài đăng + Các bài đăng được quản lý theo dạng danh sách.
+ Người quản trị có thể dễ dàng tìm kiếm bài đã đăng. - Mạng xã hội + Tích hợp đưa người dùng đến các trang mạng xã hội khác của website. Giới thiệu các phần mềm sử dụng để cài đặt chương trình * NodeJs: Node.js là một môi trường thực thi mã nguồn mở được xây dựng dựa trên JavaScript Engine của Google Chrome (V8 Engine). Nó cho phép chạy mã JavaScript không chỉ ở phía máy khách (trình duyệt web) mà còn ở phía máy chủ (server-side).
Một số điểm nổi bật về Node.js bao gồm: 1. Hiệu suất cao: Node.js được xây dựng trên cơ sở của V8 Engine, cho phép mã JavaScript chạy nhanh và hiệu quả.Asynchronous và Event-Driven: Node.js sử dụng mô hình không đồng bộ, cho phép xử lý nhiều yêu cầu cùng một lúc mà không cần tạo ra các luồng mới, điều này giúp giảm thiểu thời gian chờ đợi và tăng hiệu suất. EcosystTôi phong phú*: Node.js có một hệ sinh thái mạnh mẽ với nhiều thư viện và framework hỗ trợ, giúp phát triển ứng dụng một cách nhanh chóng và hiệu quả. Cross-platform: Node.js có thể chạy trên nhiều hệ điều hành khác nhau như Windows, macOS, và Linux.
Single programming language: Bằng cách sử dụng JavaScript ở cả phía máy khách và máy chủ, Node.js cho phép các nhà phát triển sử dụng cùng một ngôn ngữ lập trình cho cả front-end và back-end, giúp đơn giản hóa quá trình phát triển và duy trì mã nguồn.js thường được sử dụng để phát triển các ứng dụng web thời gian thực như ứng dụng chat, ứng dụng phương tiện truyền thông xã hội, các API dịch vụ web, và nhiều ứng dụng khác. * MongoDBCompass: MongoDB Compass là một công cụ giao diện người dùng đồ họa (GUI) được cung cấp bởi MongoDB để quản lý và tương tác với cơ sở dữ liệu MongoDB một cách trực quan và thuận tiện. Được phát triển bởi cùng một nhóm tạo ra MongoDB, Compass cung cấp một cách tiếp cận dễ dàng cho việc xem, truy vấn, và hiểu cấu trúc của dữ liệu MongoDB. Dưới đây là một số tính năng chính của MongoDB Compass: 1.Khám phá dữ liệu: Compass cho phép người dùng duyệt qua cơ sở dữ liệu và các bộ sưu tập, xem cấu trúc của tài liệu, và tìm hiểu về dữ liệu một cách trực quan thông qua giao diện người dùng đồ họa 2.
Truy vấn dữ liệu: Người dùng có thể tạo và thực thi các truy vấn MongoDB bằng cách sử dụng Compass. Các truy vấn có thể được viết bằng MongoDB Query Language (MQL) hoặc sử dụng công cụ tạo truy vấn tự động của Compass. Tối ưu hóa hiệu suất: Compass cung cấp các công cụ giúp tối ưu hóa hiệu suất truy vấn bằng cách giúp định dạng và hiểu cấu trúc của câu truy vấn, đánh giá chỉ số, và hiển thị thông tin về thời gian thực thi 4. Xem và chỉnh sửa dữ liệu: Compass cho phép người dùng xem và chỉnh sửa dữ liệu trực tiếp từ giao diện người dùng, giúp quản lý cơ sở dữ liệu một cách linh hoạt.
Kiểm tra chỉ số: Người dùng có thể xem và quản lý các chỉ số trên các bộ sưu tập, và Compass cung cấp các công cụ để đảm bảo rằng chỉ số được sử dụng một cách hiệu quả. Kết nối dễ dàng: Compass cho phép người dùng kết nối với các cụm MongoDB cục bộ hoặc từ xa một cách dễ dàng thông qua các URL kết nối. 5 MongoDB Compass là một công cụ mạnh mẽ cho việc quản lý và tương tác với cơ sở dữ liệu MongoDB, giúp người dùng thực hiện các tác vụ quản lý và phát triển ứng dụng MongoDB một cách thuận tiện và hiệu quả. *Visual Studio Code Visual Studio Code (VSCode) là một trình biên tập mã nguồn mở và miễn phí được phát triển bởi Microsoft.
Được phát hành lần đầu vào năm 2015, VSCode nhanh chóng trở thành một trong những công cụ phổ biến nhất cho các nhà phát triển phần mềm. Dưới đây là một số điểm nổi bật về Visual Studio Code: 1. Hỗ trợ nhiều ngôn ngữ lập trình: VSCode hỗ trợ nhiều ngôn ngữ lập trình khác nhau như JavaScript, TypeScript, Python, Java, C++, và nhiều ngôn ngữ khác. Điều này làm cho VSCode trở thành một lựa chọn phổ biến cho các dự án đa ngôn ngữ.
Mở rộng linh hoạt: VSCode có một hệ thống mở rộng mạnh mẽ, cho phép người dùng cài đặt các tiện ích mở rộng để mở rộng chức năng của trình biên tập theo nhu cầu cụ thể. Cộng đồng cung cấp một loạt các tiện ích mở rộng phong phú từ thTôies, snippets, đến debuggers và integration với các công cụ như Git. IntelliSense và Debugging: VSCode cung cấp tính năng IntelliSense mạnh mẽ, giúp tự động hoàn thành mã, đề xuất biến, hàm, và API từ ngôn ngữ lập trình đang sử dụng. Nó cũng tích hợp tính năng debugging, cho phép người dùng gỡ lỗi mã nguồn của mình một cách dễ dàng.
Hỗ trợ Git tích hợp: VSCode tích hợp sẵn với Git, cho phép người dùng quản lý phiên bản mã nguồn của họ một cách hiệu quả.