An open source solution to all your inventory management and billing problems. Apart from that, a few DATA SCIENCE hacks to enhance your business.
- About the Project
- Getting Started
- Usage
- Data Science Involvement
- Roadmap
- Contributing
- Contact
- Acknowledgements
This project is mainly built to help small and medium sized businesses maintain their stocks and create bills with a database based on Google Sheets. Aloing with that, it has a few other scripts that can help visualise potential orders to make that can increase profit, customers to look out for and more.
Here's what it can do:
- Create bills by searching products in the sheets that track stocks.
- Write each bill detail with customerName, date, total, etc. to a sheet that tracks sales.
- Update stocks each time products are sold.
There are a few things that will need to be setup to use this smoothly. Please follow instuctions as is.
-
Create a spreadsheet which has 2 sheets ( with names - DETAIL and BROAD ( exact ) ) with the columns as given below. Lets call the spreadsheet billSheet.
-
Create spreadsheets per brand ( of products ) with each spreadhseet having different sheets for orders made over time as. Lets call the below spreadsheet stockSheet1.
-
Create a spreadsheet as below that will be used to track items that were not in stock but customer came to look for it. Lets call this spreadsheet extraSheet.
- Clone the repo
git clone https://github.com/avisheksanvas/Billvoice.git
- Install required packages in the local git directory
pip install tkinter
pip install google_spreadsheet
pip install google-auth-oauthlib
pip install pandas
pip install matplotlib
and so on for other packages you get an error for...
Make sure to place these files directly in the local directory that was created when you cloned
- credentials.json
See Step 1 of Google Tutorial to get the credentials.json file and and enable google sheets API. - Create sheetData.py as:
# Say the sharing link to you spreadsheet is:
# https://docs.google.com/spreadsheets/d/<ID>/edit?usp=sharing
# Then ID is the spreadsheet ID
# billSheetID = ID of billSheet ( that we created above )
# extraSheetID = ID of extraSheet ( that we created above )
# stockSheet1ID = ID of stockSheet1 ( that we created above )
billSheetID = '<billSheetID>'
extraSheetID = '<extraSheetID>'
sheets = []
# orders should be equal to the number of ORDER sheets in each stock spreadsheet
sheets.append( { 'brand' : 'MAHINDRA',
'id' : '<stockSheet1ID>',
'orders' : 3 } )
sheets.append( { 'brand' : 'XYZ',
'id' : '<stockSheet2ID>',
'orders' : <noOfOrderSheetsForXYZ> } )
- To run the billing software
python main.py
- To view a plot of the most sold products
python dataVisual.py
Working on a script to generate the next items to order, so that tha maximum profit is made. The input to this script will be the previous sold items data. This data is used to generate the most frequently sold items and also items which are not sold frequently, but make high profit. The data is plotted into a graph with quantity sold on one axis ( X axis ) and profit made on one axis ( Y axis ). What we are looking for are items in Quadrant 2,3 and 4. Q4 items are most frequently sold and that make most profit. It can easily be seen that the problem of finding the optimum lines for quadrants is a Machine Learning problem.
Working on a script to create a basic profile for customers based on which brand items they buy most frequently, to give them information when new and popular items of that brand arrive. Also, for cusomters that create more profit for the firm, give more dicsounts.
See the open issues for a list of proposed features (and known issues).
Contributions are what make the open source community such an amazing place to be learn, inspire, and create. Any contributions you make are greatly appreciated.
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature
) - Commit your Changes (
git commit -m 'Add some AmazingFeature'
) - Push to the Branch (
git push origin feature/AmazingFeature
) - Open a Pull Request