- Installation
- Database Schema
- Server Api calls
- Pdf with web application and android app : https://github.com/blackanddecker/coffeeManager/blob/master/Screenshots.pdf
-
Import Database Schema
From database file import schema -
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
- Android App
Using ifconfig find inet addr and then add it on MainActivity.java Connect phone with android studio and run compiler
-
User
- GET /select/userId
- POST /updateUser
- POST /addUser
- POST /login_user
-
Product
- GET /select_product/shopId
- POST /add_product
- POST /update_product
-
Order
- POST /add_order
- POST /update_delivered_order
- POST /update_paid_order
- POST /select_order
-
Shop
- GET /selectShop/shopId
- POST /addShop
-
Table
- GET /select_table/{shop_id}
- POST /add_table
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: []
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 }
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: []
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>
}
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 }