Natours is a Node.js web application that allows visitors to register for tours. The website's home page displays all available tours. To register for a tour, a user must authenticate themselves, navigate to the tour details page, and click the registration button. Clicking the register button redirects the user to a Stripe checkout page where they can make a payment for the selected tour.
If the payment is successful, Stripe redirects the user back to the application. On the user's profile page, they can view all the tours they have registered for, along with the corresponding tour dates. Additionally, users can change their password and edit their profile details.
Functionalities: Data Modeling for easy, flexible, fast, and secure interaction with the MongoDB database, Authentication and Authorization, Password reset, Payment Integration with Stripe, and Map Integration with Mapbox.
This web application was built using modern technologies:
- Node js,
- Express: A nodejs backend framework for easy development of backend applications and apis with nodejs.
- MongoDB & Mongoose: a document database for flexible development of applications.
- Stripe: a complex, secure and easy-to-use tool for accepting payments in an application.
- Mapbox: with Mapbox, you can integrate map and geolocation in your application.
- Heroku: a platform for hosting applications and other cloud services.
- Developed a comprehensive tourism website aimed at promoting travel destinations and facilitating bookings.
- Developed the front end using HTML5, CSS3, JavaScript, and React ensuring a visually appealing and responsive user interface.
- Implemented a user-friendly search functionality using React and Redux, allowing visitors to easily find destinations, attractions, and accommodations.
- Integrated Google Maps API to provide interactive maps, enabling users to explore and navigate travel destinations.
- Developed RESTful APIs using Node.js and Express.js to handle user registration, login, and booking functionalities.
- Utilized MongoDB for database management, implementing data models and schemas to store and retrieve information related to destinations, attractions, and bookings.
- Integrated a payment gateway system using Stripe, enabling secure and convenient online transactions.
- Implemented user authentication and authorization systems using industry-standard protocols like JSON Web Tokens (JWT).
Key Achievements:
- Implemented a dynamic itinerary builder feature, allowing users to customize and plan their travel itineraries, resulting in a 20% increase in user engagement.
- Integrated a user review and rating system, fostering user-generated content and enhancing the credibility of featured destinations and accommodations.
Before I dive into running the application locally, this application is hosted here.
Now to run the application locally:
- Clone this repository into your computer.
- Open the project in your favorite code editor or IDE.
- Install the dependencies by running "npm install" inside the project directory.
- When the project fires up, open your browser and visit "http://localhost:3000".
!!!