The purpose of X-Beer Ordering app is to allow restaurants to place orders for brand X-Beer cases from the distributor in the restaurant’s city using Android and iOS apps
The back-end architecture and business logic for X-Beer Ordering app is built on Node.js.
Entities & User types
Entities
There are various types of entities which governs the usage for each type of user.
Regions, Districts, Organisations, Distributor
User types:
There are 4 type of users of the application and they have different level of access and functionality -
Organisation User, Distributor User, Sales user, Global user
Functionality
The functionality for each type of user/entity is described below.
Order:
Structure:
Consists of quantity of different types of beer required. Type of beer can increase in the future. Units of an order is only in terms of cases, not individual bottles.
It is placed to a single outlet. Assigned to a single distributor.
Once an order is created, it cannot be edited or cancelled by the outlet that created it. If they want to edit/cancel it, they need to contact either the Local Sales Team or the Distributor and then they will do it through the app themselves, and note the reason provided for it.
Adding note(New Order)
Adding note(Local Team Note)
Viewing Outlet Note
Viewing Local Team Note
Outlet:
Structure:
There are 2 levels to an outlet: User level and Location Level. User Level is defined by the Restaurant/Store/Bar Name and email ID. Location Level has Outlet Name, Outlet Type, Permit No, Address, District, Google Maps Link, Contact Name, Contact Number and Contact Email ID.
There are 2 levels required because of 2 cases: 1) There are different branches of an outlet, but is managed by a single user and 2) It’s a multi-outlet hotel, where each one is again managed by a single user.
Outlets can be labelled Starred by the Local and Global Sales Teams (The list of what’s starred should be shared between both; if the local team stars an outlet, it is starred for the Global team as well and vice versa).
Functionality
Creating Orders, Viewing Orders, Accounts Access, Login, Reset Password
Notifications
Order Request Accepted, Order Request Declined, Order Request Accepted with Edits, Order Shipped, Order Delayed, Order Delivery Confirmation, Order Edited
Distributor:
Structure:
There will be only one distributor per Region. Requests from all outlets in that region will go to that one distributor. Distributor user will contain: Distributor Name, Location, Region Serving, Contact Name, Contact Email, Contact Phone Number. Distributor accounts can be created by the Local team, or Global Team.
Functionality
Creating Orders, Accepting/Declining/Editing + Accepting Order Requests, Shipping Orders, Delayed Orders, Viewing Orders, Edit Orders, Deleting Orders, Accounts Access, Restaurant Search, Login, Reset Password
Notifications
New Order Request, Order Delayed, Order Edited, Order Cancelled
Local Sales Team:
Functionality:
Will be similar to Distributor except, local team cannot:
Accept/Decline orders, Cannot mark orders as shipped, Cancel orders
Notifications
Same notifications as distributor, except the following notifications won’t be sent -
Order Cancelled
Only the users of a region, in which the restaurant is will get the notification.
Global Sales Team:
Functionality:
Outlets: CRUD entities
Outlet Users: CRUD accounts
Organisations: CRUD entities
Organisation Users: CRUD accounts
X-Beer Local Teams: CRUD entities
X-Beer Local Team Users: CRUD accounts
Region & District Entities: CRUD entities
Viewing Orders: See all orders, and filter by status.
Password change prompt