The goal of this task is to find out how good you are at understanding a business requirement and converting it into code. You will be required to build a dashboard with some basic CRUD actions only.
Design a basic version of an inventory and billing management tool for a grocery store
(These are the basic requirements for the tool - which have to be necessarily implemented)
- Allow the shop manager to add inventory of different items. Each item would be called a SKU (stock keeping unit) and should have an unique identifier. It will also have an MRP. Eg:
SKU 1 - Life Buoy 100g Soap - Rs. 45/-
SKU 2 - Himachal Apple Juice 500 ML Pack - Rs. 200
-
The shop manager should be able to add stock for these SKU items. If new stock of 1000 lifebuoy soaps arrives, they should be able to record the addition of stock and the quantity in inventory should get updated
-
The shop manager should be able to create a "Sale Invoice" whenever a customer comes and picks some items and checks out. This sale invoice will have different skus as line items - the number of items of that SKU that the customer is purchasing - the individual prices and the final price. When a "Sale" is recorded, the stock in the inventory should get reduced correspondingly.
(You can implement one or more of these for bonus points.)
-
Create a login/signup system and allow only logged in users to access the shop management dashboard.
-
Include tax calculations in Sale Invoice. The Shop Manager should be able to specify the GST percentage for each SKU in inventory and the invoice should include tax based on that.
-
Earlier we discussed only SKUs which were buyable in discrete quantities. Now add the ability to include items which can be purchased in weighted manner. Eg Rice. When a sale happens, the weight of customer's purchase has to be entered and the price should be determined accordingly SKU 45 - Basmati Rice - Rs.24/kg
-
Allow shop manager to specify discount percentages for different SKU items. The sale invoice should apply that discount and show the price
-
At Inkmonk we use Flask and SQLAlchemy as our backend stack and ReactJS as our frontend framework. If you can use these frameworks to solve the above probem, well and good. But if you are familiar only with some other framework, you can go ahead and use it. But we will expect you to have a decent enough grasp of python and javascript when we conduct the in person interview.
-
It is preferable if you implement the solution as an API first and then use javascript to submit data to the API and fetch and show data from the API. You can google and read about building RESTful API endpoints.