# Introduction

## OLO - Listing App

OLO Listing App is a full-fledge solution for having a listing solution for iOS, Android and Web for dashboard. We have made sure that you get a good design for mobile and dashboard application and a complete solution for you to easily implement this app for any restaurant application.

[React Native](https://github.com/facebook/react-native) with [Expo](https://expo.io) is used to build this application for mobile end. For dashboard panel React has been used. Both mobile and web use [Graphql](https://graphql.org/). For State management and querying end points [Apollo Client](https://github.com/apollographql/apollo-client) is used.  The API is made using [Node](https://nodejs.org/en/) with [Mongodb](https://www.mongodb.com/).

It has all the features that you will ever need to implement this application for any listing application. Some of the features that are included in it are:

* [x] Push Notification for both Mobile and Web
* [x] Email Integration -- Email is sent for some actions such as making Order
* [x] Chat Integration
* [x] Follow Integeration
* [x] Google Authentication integration
* [x] Mobile Responsive Dashboard
* [x] Zones based ads shown
* [x] Favourites Integration

We have made sure that the code is well structured and removed of unnecessary screens to make your development life easier. It is also integrated with the following features so you could have an even better development experience.&#x20;

* [x] [ESLint](https://eslint.org/) to provide you with linting capability in Javascript.
* [x] [Prettier](https://prettier.io/) for code formatting
* [x] [Jest](https://jestjs.io/) for unit testing&#x20;
* [x] [Husky ](https://github.com/typicode/husky)to prevent bad commits.&#x20;

## What will you have in OLO Full App?

* OLO Mobile App
* Admin Web Dashboard
* Application program interface server

## OLO Technology Stack

#### Application program interface (API) server

* [NodeJS](https://nodejs.org/en/)
* [MongoDB](https://www.mongodb.com/)
* [ExpressJS](https://expressjs.com/)
* [Nodemailer](https://nodemailer.com/about/)
* [Firebase](https://firebase.google.com/)(for push notification on web)
* [Express GraphQL](https://graphql.org/)
* [Mongoose](https://mongoosejs.com/)(for mongodb)

#### Web Dashboard

* [React ](https://reactjs.org/)
* [GraphQL](https://graphql.org/)
* [Bootstrap](https://getbootstrap.com/)
* [Firebase](https://firebase.google.com/)(for push notification on web)

#### Mobile App

* [React Native](https://github.com/facebook/react-native)&#x20;
* [Expo](https://expo.io)&#x20;
* [Graphql](https://graphql.org/)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://listing-nb.gitbook.io/olo-full-app/master.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
