ShopManager

  1. Installation
  2. Database Schema
  3. Server Api calls
  4. Pdf with web application and android app : https://github.com/blackanddecker/coffeeManager/blob/master/Screenshots.pdf

1.Installation

  1. Import Database Schema
    From database file import schema

  2. Starting Server
    After you create a virtual enviroment shopManager/server :

..ShopManager/server$ pip3 install -r requirements.txt
..ShopManager/server$ export FLASK_APP=main.py
..ShopManager/server$ flask run h -0.0.0.0

  1. Android App
    Using ifconfig find inet addr and then add it on MainActivity.java Connect phone with android studio and run compiler

2.Database Schema

Test Image 1

3. ShopManager Server Api calls

  1. User

    • GET /select/userId
    • POST /updateUser
    • POST /addUser
    • POST /login_user
  2. Product

    • GET /select_product/shopId
    • POST /add_product
    • POST /update_product
  3. Order

    • POST /add_order
    • POST /update_delivered_order
    • POST /update_paid_order
    • POST /select_order
  4. Shop

    • GET /selectShop/shopId
    • POST /addShop
  5. Table

    • GET /select_table/{shop_id}
    • POST /add_table

USER

GET /select/userId

Response:


{
    "email": <unique str>,
    "id": <unique id>,
    "name": <str>,
    "password": ********,
    "shop_id": <unique id>,
    "status": <admin/ user>
}

POST /updateUser

Request:

{
    "email":<str>
	"status":<admin/ user>, 
	"name": <str>, 
	"id":<unique id>
}

Response:

On Success { "success": True }
On Error { "success": False }

POST /addUser

{
    "email": <unique str>,
    "id": <unique id>,
    "name": <str>,
    "password": ********,
    "shop_id": <unique id>,
    "status": <admin/ user>
}

Response:

On Success { "success": True }
On Error { "success": False }

POST /login_user

{
    "email": <unique str>,
    "password": ********,
}

Response:

    On success:
[
    {
        "email": <unique str>,
        "id": <unique id>,
        "name": <str>,
        "password": ********,
        "shop_id": <unique id>,
        "status": <admin/ user>
    }
]
On Failure:  []

POST /login_mobile

{
    "email": <unique str>,
    "password": ********,
}

Response:

    On success:
[
    {
        "email": <unique str>,
        "id": <unique id>,
        "name": <str>,
        "password": ********,
        "shop_id": <unique id>,
        "status": <admin/ user>
    }
]
On Failure: []

PRODUCT


GET /select_product/shopId

Response:

    On success:
 [
    {
        "name":<str>,
        "price":<float>,
        "available":<int>,
        "shop_id":<unique int>,
        "details":<str>
    }
    {
        ...
    }
]
On Failure:  []

POST /add_product

Request:

{
	"name":<str>,
	"price":<float>,
	"available":<int>,
	"shop_id":<unique int>,
	"details":<str>
}

Response:

On Success { "success": True }
On Error { "success": False }

POST /update_product

Request:

{
	"name":<str>,
	"price":<float>,
	"available":<int>,
	"shop_id":<unique int>,
	"details":<str>
}

Response:

On Success { "success": True }
On Error { "success": False }

ORDER


POST /add_order

Request:

{
	"table_id":<unique int>,
	"user_id":<unique int>,
	"orderHistory":[
            {"product_id":<unique int>, "details":<str>}, 
            {"product_id":<unique int>, "details":<str>}
        ],
	"order_id":-1
} 

if order_id != -1 we add item to excisting order else we create a new order

Response:

On Success { "success": True }
On Error { "success": False }

POST /update_delivered_order

Request:

{   "order_id":<unique id>  }

Response:

On Success { "success": True }
On Error { "success": False }

POST /update_paid_order

{   "order_id":<unique id>  }

Response:

On Success { "success": True }
On Error { "success": False }


POST /select_order

Request:

{
    "shop_id":<unique id>, 
    "start_date":<date>,
    "end_date":<date>,
    "status": <admin/employee>,
    "employee": <list on names>,
    "table": <list on table>,
    "products": <list on products>
}

Example of requests:

{
	"shop_id":0, 
	"start_date":"2009-10-28",
	"end_date":"2021-10-28",
	"status":["pending", "delivered"],
    "tables":["8"],
    "employees":["0"]
}

Response:

    On success
[
    {
        "date_delivered": <date>,
        "date_order": <date>,
        "date_paid": <date>,
        "employee_id": <unique id>,,
        "id": <unique id>,
        "no_table": <int>,
        "o.table_id": <int>,
        "orderHistory": [
            {
                "details": <str>,
                "name": <str>,
                "o_info": <int>,
                "order_id": <int>,
                "product_id": <int>
            },
            {
                "details": <str>,
                "name": <str>,
                "o_info": <int>,
                "order_id": <int>,
                "product_id": <int>
            }
        ],
        "price": <int>,
        "status": <delivered/paid>,
        "table_id": <int>
    },
]
On Failure:  []

SHOP


POST /addShop

Request:

{   "name": <unique str>  }

Response:

On Success { "success": True }
On Error { "success": False }

GET /selectShop/<shop_id>

response :

{
    "id": <unique id>,
    "name": <unique str>
}

TABLE


GET /show_tables/<shop_id>

Response

    On success:
[
    {
        "no_table": <int>,
        "shop_id": <unique int>,
        "table_id": <unique int>
    },
    {
        ...
    }
]
On Failure:  []

POST /add_table

Request:

{   "shop_id":<unique id>  }

Response:

On Success { "success": True }
On Error { "success": False }