Ecosyste.ms: Awesome

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

Awesome Lists | Featured Topics | Projects

https://github.com/k0ppai/tours-api

Tours API is a real-world RESTful API with advanced authentication, authorization, mongoose, Node.js security, email sending, and file uploading capabilities.
https://github.com/k0ppai/tours-api

api express heroku-deployment mongodb mongoose nodejs

Last synced: 28 days ago
JSON representation

Tours API is a real-world RESTful API with advanced authentication, authorization, mongoose, Node.js security, email sending, and file uploading capabilities.

Awesome Lists containing this project

README

        

Tours API


# 📗 Table of Contents

- [📖 About the Project](#about-project)
- [🛠 Built With](#built-with)
- [Tech Stack](#tech-stack)
- [Key Features](#key-features)
- [API Documentation](#api-documentation)
- [💻 Getting Started](#getting-started)
- [Prerequisites](#prerequisites)
- [Setup](#setup)
- [Install](#install)
- [Usage](#usage)
- [👥 Authors](#authors)
- [🤝 Contributing](#contributing)
- [⭐️ Show your support](#support)
- [🙏 Acknowledgements](#acknowledgements)
- [📝 License](#license)

# 📖 Tours API

**Tours API** is a real-world RESTful API and web app with authentication, Node.js security, email sending, and file uploading capabilities. This is an API project I coded along with during the course mentioned in the acknowledgments. I took it to the next level by rebuilding it with TypeScript and ES6 modules.

## 🛠 Built With

### Tech Stack

Server


  • Node.js

  • Express.js


Database

  • MongoDB

### Key Features

- **Advanced MongoDB: Geospatial Queries, Aggregation Pipeline, and Operators**
- **Mongoose advanced features: Modeling geospatial data, Populates, Virtual Populates, Indexes**
- **Advanced authentication with user sign up, log in, password reset, secure cookies and authorization with user roles**
- **Security with Encryption, Sanitization, Rate limiting**
- **Sending emails with Mailtrap and Sendgrid and uploading files with Multer**
- **Advanced data modelling: Relationships between data, Embedding, Referencing**

(back to top)

## API Documentation

- Live Documentation

(back to top)

## 💻 Getting Started

To get a local copy up and running, follow these steps.

### Prerequisites

In order to run this project you need:

- A Chrome browser
- npm
- Node.js

### Setup

Clone this repository to your desired folder:

```sh
cd my-folder
git clone https://github.com/K0ppai/Tours-API.git
```

### Install

Install the prerequisites this project using:

```sh
cd Tours-API

npm install
```

### Usage

To run the project, execute the following command:

```
npm run dev
```

(back to top)

## 👥 Authors

👤 **Paing Soe Thu**

- GitHub: [@K0ppai](https://github.com/K0ppai)
- Twitter: [@_koppai_](https://twitter.com/_koppai_)
- LinkedIn: [LinkedIn](https://www.linkedin.com/in/paingsoe-thu)

(back to top)

## 🤝 Contributing

Contributions, issues, and feature requests are welcome!

Feel free to check the [issues page](https://github.com/K0ppai/Tours-API/issues).

(back to top)

## ⭐️ Show your support

If you like this project, don't forget to give it a ⭐️!

(back to top)

## 🙏 Acknowledgments

I would like to give credit to the original creator of this [course](https://www.udemy.com/course/nodejs-express-mongodb-bootcamp/), [Jonas Schmedtmann](https://www.youtube.com/@jonasschmedtmann).

(back to top)

## 📝 License

This project is [MIT](./LICENSE) licensed.

(back to top)