Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/samuelcardenasg23/natours

This is a tour booking web app made with Node.js, Express.js, MongoDB and much more.
https://github.com/samuelcardenasg23/natours

express javascript mongodb nodejs pug-template-engine

Last synced: 7 days ago
JSON representation

This is a tour booking web app made with Node.js, Express.js, MongoDB and much more.

Awesome Lists containing this project

README

        

# Natours

Welcome to Natours project! This web application allows users to browse through different tour offers, sign up, log in, and purchase tours.

## Features

- **User Authentication**: Users can sign up for an account and log in securely.
- **Browse Tours**: Users can view available tour offers.
- **Purchase Tours**: Authenticated users can book and purchase tours.
- **Validation**: Includes comprehensive validation to ensure data integrity and security.
- **MongoDB Integration**: Utilizes MongoDB for database storage.
- **Express Server**: Utilizes Express.js for handling server-side logic.
- **Security**: Implements **bcrypt** for password hashing and JWT for secure authentication.
- **Email Notifications**: Utilizes nodemailer to send email notifications.
- **And much more!**

## Technologies Used

- Node.js
- Express.js
- MongoDB
- Mongoose
- bcrypt
- jsonwebtoken
- nodemailer
- Other dependencies

## Installation

1. Clone the repository:

```bash
git clone https://github.com/samuelcardenasg23/natours
```

2. Navigate to the project directory:

```bash
cd natours
```

3. Install dependencies:

```bash
npm install
```

4. Start the server:

```bash
npm start:prod
```

## Usage

1. Open your web browser and visit http://localhost:3000.
2. Sign up for an account or log in if you already have one.
3. Browse through available tour offers.

## Contributing

Contributions are welcome! If you'd like to contribute to this project, please follow these steps:

1. Fork the repository.
2. Create a new branch (`git checkout -b feature/your-feature`).
3. Make your changes.
4. Commit your changes (`git commit -am 'Add new feature'`).
5. Push to the branch (`git push origin feature/your-feature`).
6. Create a new pull request.

## License

This project is licensed under the [MIT License](LICENSE).