You are on page 1of 4

Express POS

Abstract: This will be a POS (Point Of Sale) application that manages a single shop. For this application
will be used IONIC/Angular - Firebase. Application should be available to work also offline (Enable
offline persistence on firebase) In this document you will find requirements to release this application.

Functional Requirements:
1. IDM
2. Products
3. Orders
4. Cashier
5. Reports
6. File System
7. Notifications
8. Purchases

IDM - Identity Management


We need a basic system users management with two roles:
1. Admin (Shop Admin)
2. Cashier (Sale)

User will have these attributes:


1. Full name
2. Email
3. Password
4. Status (Active/Not Active)
5. Role - (Admin, Cashier)

Based on the role we are going to render sections on the app. Admin can have access to all sections.

Cashier can do:


1. Sell on shop (create/edit orders)
2. Register products
3. Register Purchases

But we need the ability to create roles dynamically where we can attach permissions to new roles. And a
role can be attached to a user.
Products

Related with products we need basic product fields:


1. Product name
2. Barcode
3. Categories ( Many To Many Relationship)
4. Inventory Id (A product can have many inventories, but can be optional - One To Many)
5. Tax percentage

Inventory will be a dedicated table where will have these attributes:


1. Id
2. Product Id
3. Is Active
4. Quantity
5. Selling price (tax included)
6. Sale Unit
7. Buying unit

Unit will be another table where user is available to add units. But when we register a stock we have to
make conversion of units.
Example:

Sale unit Buying Unit Units

PCS Coca Cola Box 6

So a coca cola box has 6 pcs. A product can have only one active inventory.

Orders (Sale Invoice)


When we create an invoice, cash is increased. Basically it is a Sale Invoice which will contain:
1. Date Time
2. Cashier
3. Invoice number (System Number)
4. Items
a. Product Name
b. Quantity (Decrease from inventory which is active) - ex: 2 pc
c. Sale price (which will be readed from inventory which is active) ex: 50$
d. Tax value -ex (product tax percentage is 15%) 15$
e. Total ex: (100$)
5. Total Tax (computed based on products percentage they have - an invoice can have products with
different tax percentages. We have to compute tax per each item on invoice and sum all of them
in the end)
6. Invoice total price (summary of all total items)

We should be available also to edit invoices only to remove products or to cancel them.

Cashier
Cashier is a person who sells and works with shifts.

When a cashier login in for first time each day we have to save:
1. First Time Login
2. Initial Cash State
3. Final Cash State (When close shift)
4. Time when shift is closed

Also we have to track when the cashier withdrawals or deposits money and actual cash state will be added
or subtracted.

Reports
We need basic reports of sales and purchases within a time range. (Only Admin)
1. Table view (should be available to be exported in excel)
2. Chart view

File system
Will be a section which will read from another endpoint (To be defined). We will provide a mock
response for this. (Only Admin)

Notifications
Will be a section where the admin will receive notifications and read them.
Purchases
Purchase invoice is the same as the sale invoice. Will be a section where the admin can register a purchase
invoice and from here quantity of products will be updated. When registering this invoice product field
should be available to be scanned with barcode.

Ex:
Date 22-05-2021

Invoice number 1234

Product Buying Unit Quantity Price Tax Total

Coca Cola Coca Cola Box 6 5$ 15$ 30$

So when we register this invoice 6 coca cola boxes should be converted to 36 pcs and update product
active stock.

You might also like