This is Supply Tracker, a website application designed to help small business to track their supply, stock, income and outcome.
https://www.youtube.com/watch?v=eGryu3QppGw overview showing what the applications can do
- Make sure python 3.5.x installed
- Run command
pip install -r PackageRequirements.txt
, the text file is in the root of this repository - Run command
python run.py
to start the server - Open
localhost:5000
or127.0.0.1:5000
to open the web application (if you are accessing the website from other device in the local area network simply open the local ip address where the server runs on - Now you can use the app!
Note: If you are a windows user there is a .zip
file which contains .exe
to start the server, which I made using PyInstaller. You can download the .exe
from here . After extracting the file, just run run.exe
to start the server, and open the address localhost:5000
as mentioned above
- Flask
- WTForm
- SQLAlchemy
- Bootstrap
Database used:
- SQLite
- To populate data use the forms in the
Add
sections ItemType
is defining the type of item, e.g. book, table, chair, pencil, pen, laptop, etcSupplier
is contact information of where user gets the item fromCustomer
is contact information about people whom purchase the user's itemsCourier
is list of parties which do the delivery to user's customersTransactionMedium
is how the transaction takes place, e.g. through chat from facebook, message, phone call, face to face, etcPurchaseTransaction
is record of what involves in the transaction between user and the supplier. There are entries for transaction date, supplier, transaction items (with price, item type, and quantity), and finally note. This is the main entry where user registers their stock or items in their supply storage.SaleTransaction
is record of transaction between user and the customer. There are entries for transaction date, delivery fee*, customer, courier*, transaction medium*, transaction items (with price, item type, and quantity; Be aware that the total quantity of sold items cannot exceed the total of the item in stock or storage and that's why the drop down for sale items have listed total storage so the user will know how much they can sell). The picked item will always be chosen using FIFO method (First in first out) which means the unsold items will be sorted by date in ascending order and the first ones will be put to sale first. *Optional field- To view of records in the database, click the relevant sections from
View
tab ItemList
is a read-only and prepopulated table, these are all the items which the user has bought from suppliers. They come fromPurchaseTransaction
and each of the item marked individually with unique ID (even though it may not the case for the real item), to ease in the income/outcome/profit calculations.ItemTypeList
is a list of item type registered in database, they are editable and deletable. Note: If you delete one of the record it will also delete all theItem
related to this item typeItemStock
is a read-only and prepopulated table containing all items categorized by theItemType
and summary of total item in the storage, total sold, and profit for each typeSupplier
is a list of suppliers and their information, they are associated toPurchaseTransaction
. Note: If you delete one of the record it will also delete all thePurchaseTransaction
related to this supplier, which will chain delete theItem
related to the transactionCustomer
is a list of customers and their information, they are associated toSaleTransaction
. Note: If you delete one of the record it will also delete all theSaleTransaction
related to this customer, which will affect the record of associatedItem
as in they will be losing sold status.Courier
is a list of courier used to deliver item toCustomer
, they are optional field inSaleTransaction
TransactionMedium
is a list of how the transaction happens, they are optional field inSaleTransaction
PurchaseTransaction
is a list of items purchased fromSupplier
with relevant information about the transaction, and this is the gateway for user to enterItem
to database. If one record of this transaction is deleted, it will also delete theItem
in the database which will affect record ofSaleTransaction
too. User can edit the record to remove and adding items or edit the transaction record itself, such as date, supplier and notes.SaleTransaction
is a list of items sold to theCustomer
with relevant information about the transaction. OnceItem
is sold or registered in one of this record, the profit will be calculated by substracting sale price with selected item purchase price (chosen by FIFO method). If you delete one of this record, it will only affect the status ofItem
, it will be marked back as 'unsold' item (or going back to storage), just be careful if theSaleTransaction
is kind of old, you will be returning 'old sold' items back to the storage with its original purchased price, and pretty sure the next sale transaction of same item type will pick these items (because FIFO) system