# Kitchef overview
**Kitchef** is a SAAS application used by restaurant owners to upkeep information generated by third party software used on-site. Things like:
* Accounting
* Staff
* Suppliers
* Products
* Menu
* Orders
* Order items
* Warehouse
* Recipes
All this information in one place that will let clients generate metrics, reports, notifications ant take actions before is too late.
## The idea
**Kitchef** is composed of multiple systems working together. The main application, **Kitchef Server**, lives in the local restaurant’s network and is responsible for communicating with the accounting system, exposing this information to POS systems and syncing the data between the accounting system and **Kitchef Cloud**.
**Kitchef Pod** is a multi-platform application used by the restaurant staff to take orders. **Kitchef Pod*** communicates directly with **Kitchef Server** over the local network so the staff can access the menu faster and without needing an internet connection.
Kitchef Cloud is the platform that consumes this information and processes it to create reports, metrics, alerts and notifications. Managers can grant access to staff members and assign working hours, permissions and goals.
### Kitchef Server
**Kitchef Server** is a small service application living in the local network that communicates with the restaurant accounting system. Depending on the system the restaurant is using, Kitchef Server can be configured for accessing the accounting database in order to upkeep the information with the other systems.
#### Configuration
**Kitchef Server** can be configured through a UI interface where managers can set the credentials for the accounting database. This might be a challenging process due to the fact that the customer should provide the database credentials and host.
Having this information in place, the first synchronization process should begin. Depending on the accounting system vendor **Kitchef Server** should query the specific database tables in order to create the data structures needed by **Kitchef Cloud** and **Kitchef Pod**.
#### Syncing
They can also force two-way synchronization, that is to say pull data coming form the accounting database or push data to **Kitchef Cloud**. This processes is supposed to happen automatically by setting a synchronization interval.
#### Local API
**Kitchef Server** also exposes an API for **KItchef Pod** to consume. This way, the staff members are able to take orders either from their phone, a tablet, or a PC running the desktop version.
### Kitchef Pod
**Kitchef Pod** is the client application where all the orders are taken in. Staff members can download and sign in to their restaurant account using a defined staff member ID and PIN or password.
**Kitchef Pod** can also be installed on a regular desktop application and be able to take orders as well.
## Sign up
Customers start the sign up process by creating an account on [Kitchef Cloud](https://kitchef.live/signup). After signing up for an account, a 30 days trial period starts. This time should be enough to set up their account, integrate their accounting system and try the application.
This process should be fast and simple, only a few details about the customer should be asked.
* Owner name
* Restaurant name
* Email address
* Password
* Password confirmation
The owner name is asked for marketing purposes only for generating correct email messages, etc., but one of the most important fields is the restaurant name. The restaurant name should be unique and is used to generate a restaurant-specific URL. For example:
Given the restaurant name **_The Best Food in Town_** the generated URL will be **_https://the-best-food-in-town.kitchef.live_**. This will then be used by **KItchef Server** to communicate by the restaurant’s API.
Once the customer has signed up, downloaded and installed the **Kitchef Server** application, the customer should configure the access to the accounting system’s database.
After a couple of minutes, depending on the amount of data in the database, all the catalogs needed for the operation should be in place on **KItchef Cloud**.
## Restaurant set up
In order to create and publish the restaurant’s menu, the customer should create a series of recipes to create menu items. All the needed information to complete this step should already be in place after configuring **Kitchef Server**:
* Products
* Inventory
* Warehouse
* Units of measure
* Suppliers
This information: units of measurement, quantities needed for each item, stock levels, etc., are then used to create notifications about the stock levels, reorder levels, reorder quantities, sales goals, etc.
## Day-to-day operation
**Kitchef Cloud** can also manage staff creating, scheduling and authorization. This way, staff members can download **Kitchef Pod** on their mobile phones to operate and take orders. These orders are then sent to **Kitchef Server** where they are processed and sent back to the accounting system and **Kitchef Cloud**.
### TODO
* Table layout
#kitchef #kitchef/overview #kitchef/planning