Skip to content

"Natours" serves as a web application for booking tour vacations. The platform offers a curated selection of adventurous tours, carefully designed to captivate the spirit of adventure seekers. Visiting users can explore a catalog of available tours with detailed information. Registered users have the ability to sign in, book tours of their choice.

Notifications You must be signed in to change notification settings

itsRasul/natoursAPI

Repository files navigation

Project: Natours Web Application

Description

Developed a practice project, "Natours," which serves as a web application for booking tour vacations. The platform offers a curated selection of adventurous tours, carefully designed to captivate the spirit of adventure seekers. Visiting users can explore a catalog of available tours with detailed information. Registered users have the ability to sign in, book tours of their choice, and write one review for each booked tour.

Key Contributions

  • Full-Stack Development: Took ownership of the complete project lifecycle, encompassing both front-end and back-end development.
  • Tour Catalog: Created an intuitive catalog of tour packages, showcasing rich tour descriptions, itineraries, and pricing.
  • User Authentication: Implemented robust user authentication and authorization mechanisms for secure booking and review submission.
  • Booking Functionality: Designed and implemented a user-friendly booking system, enabling users to reserve their preferred tours effortlessly.
  • Review Feature: Integrated a review system allowing users to share their tour experiences by submitting one review per booked tour.

Technologies Used

  • Frontend: HTML, CSS, JavaScript, Bootstrap
  • Backend: Node.js, Express.js
  • Database: MongoDB with Mongoose
  • Authentication: Authentication mechanisms (e.g., JWT)
  • Version Control: Git and GitHub

Project Features

Tours

  • Browse Tours: Users can explore a comprehensive selection of tours using flexible filters and sorting options.
  • Individual Tour: Users can access detailed information about a specific tour by providing its unique ID.
  • Admin Tour Creation: Administrators have the privilege to create new tours for the platform.
  • Update Tours: Administrators can update tour details by specifying the tour's ID and providing updated data.
  • Delete Tours: Administrators can remove tours from the platform by specifying the tour's ID.
  • Tour Statistics: Users can retrieve statistical information about tours.
  • Radius-Based Tour Search: Users can find tours within a specific geographic radius.

User Management

  • User Registration and Login: Users can securely sign up and log in to the website.
  • Retrieve User Data: Users can access the profiles of other users by providing their unique ID.
  • User Self-Profile: Users can view and manage their own profile data.
  • Update Non-Sensitive Data: Users can modify their non-sensitive profile information.
  • Password Update: Users can change their account password.
  • Password Recovery: Users can reset their password in case of forgetting it.
  • Logout: Users can log out securely.
  • Admin User Control: Administrators can delete and update user accounts by specifying the user's ID.

Reviews

  • Tour Reviews: Users can leave reviews for any tour they have experienced.
  • Review Retrieval: Both users and administrators can access a comprehensive list of all reviews.
  • Review Deletion: Users can delete their own reviews.
  • Tour-Specific Reviews: Users can access reviews related to a specific tour.

Likes

  • Tour Likes: Users can express their liking for tours they find appealing.
  • Retrieve Likes: Both users and administrators can access a list of all liked tours.
  • Unlike Tours: Users can remove a tour from their liked list.
  • Admin Control: Administrators can delete any liked tour in the system.
  • Liked Tours: Users can view a list of tours they have liked.

Booking

  • Tour Booking: Users can book any tour they desire.
  • Admin Booking Management: Administrators can access all bookings with filtering and sorting capabilities.
  • Booking Deletion: Both users and administrators can cancel bookings.
  • Booking Updates: Users can modify booking details.

These features enhance the functionality and usability of your project, providing a seamless experience for both users and administrators.

Results

The "Natours" practice project offered hands-on experience in building a dynamic web application tailored for adventurous travelers. It included developing a user-friendly interface, implementing secure authentication, and managing tour data in a database. This project showcases proficiency in both frontend and backend development.

About

"Natours" serves as a web application for booking tour vacations. The platform offers a curated selection of adventurous tours, carefully designed to captivate the spirit of adventure seekers. Visiting users can explore a catalog of available tours with detailed information. Registered users have the ability to sign in, book tours of their choice.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published