Skip to content

Instantly share code, notes, and snippets.

@SuryaSankar
Last active April 4, 2018 12:00
Show Gist options
  • Save SuryaSankar/31b8ed4f5b4194e5bb38e06eb1df26ce to your computer and use it in GitHub Desktop.
Save SuryaSankar/31b8ed4f5b4194e5bb38e06eb1df26ce to your computer and use it in GitHub Desktop.
Problem statement to design a basic inventory and billing management tool for a grocery store

Goal

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.

Problem Statement

Design a basic version of an inventory and billing management tool for a grocery store

Basic Requirements

(These are the basic requirements for the tool - which have to be necessarily implemented)

  1. 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

  1. 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

  2. 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.

Additional Requirements

(You can implement one or more of these for bonus points.)

  1. Create a login/signup system and allow only logged in users to access the shop management dashboard.

  2. 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.

  3. 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

  4. Allow shop manager to specify discount percentages for different SKU items. The sale invoice should apply that discount and show the price

Technical Requirements

  1. 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.

  2. 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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment