# Outline

### Initiating Server

`npm start`&#x20;

## Mongodb

We used [Mongodb](https://www.mongodb.com) which is a NoSql database. In the project we have configured it to used it with [mLab](https://mlab.com/) which is used as cloud database for both local and production enviroment by default. You can create your own mLab account and integrate it with your database by entering `connectionstring` in `olo-api/app.js`&#x20;

## Express JS

Express JS contains all the configuration details related to node server. It performs the following tasks:

1. Create and start server
2. Add different middleware namely:
3.
   * **bodyParser:** Parse body params and attache them to req.body
   * **Compress:** Helps in decreasing the size of the response body and improve the speed of the API calls.
   * **Json web token:** Helps in generating authentication token

## **GraphQL Routes**

It handles the different GraphQL routes of the application, namely:

* **auth:** This route contains different routes related to the user such as registration of the new user, updating the user details, manages login and logout.
* **listing:** Manages listing schema such as adding, deleting, editing and liking listing.

## Api Routes

It handles the different REST routes of the application, namely:

* **GraphQL:** It handles all routes related to GraphQL.&#x20;
* **Paypal:** It handles when payment is made using Paypal.
* **Stripe:** It handles when payment is made using Stripe.
