Skip to content

OlehK25/natours-advanced

Repository files navigation

👩‍💻 Natours API: Your Gateway to Adventure

Explore and book your next adventure with the Natours API, a RESTful web service designed to bring travel enthusiasts and tour vacations together. Built with Node.js and MongoDB, this project showcases the application of modern web development technologies to create a dynamic and user-friendly experience.

🕸️ About

The Natours API powers a full-stack application that caters to individuals who crave travel and tour vacations. It provides various services such as viewing and booking tours, leaving reviews, and more. Every tour is carefully curated to ignite the adventurous spirit in each user. Users can browse through the available tours, delve into detailed information about each tour, and upon signing up or logging in, book the tour of their choice. This API is built as a pet project, aimed at refining the developer's full-stack web development skills.

🗒️ Technology Stack

The Natours API leverages a robust set of tools and technologies to deliver a seamless user experience:

  • HTML: Structures and contents of web pages.
  • CSS: Styling of web pages.
  • Pug: Template engine for dynamic web page generation.
  • JavaScript: Provides interactivity and API request handling.
  • Node.js: Server-side JavaScript execution.
  • Express: A Node.js framework to simplify building complex server-side applications.
  • MongoDB: Database for persistent data storage.
  • Mongoose: A MongoDB object modeling tool.
  • Mapbox: Map service for displaying tour locations.
  • Stripe: Payment processing system.
  • JSON Web Token (JWT): User authentication.
  • Nodemailer & Brevo: Email services for communication with users.
  • MailTrap: Email debugging tool in development environment.

🌐 Run Locally

Clone the project

  git clone https://github.com/OlehK25/natours-advanced.git

Install all necessary dependencies as defined in the package.json file.

  npm install

Parcel build:

  npm run build:js

Start the server (dev)

  npm start

Start the server (prod)

  npm run start:prod

Set up accounts with MongoDB, Mapbox, Stripe, Brevo, and MailTrap if you haven't already.

🔜 Future Improvements and Issues

No known issues are present as of now. Future improvements will be based on user feedback and developer insights. Check the issues section on the GitHub page for updates.

🔗 Links

linkedin

Extensive documentation with examples here

🧷 License

This project is licensed under the MIT License

💫 Happy exploring and happy coding!