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.
- 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.
- 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
- 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 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.
- 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.
- 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.
- 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.
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.