https://github.com/krsoninikhil/shop-counter
A Minimal And Highly Flexible ERP Solution For Small And Medium Businesses
https://github.com/krsoninikhil/shop-counter
desktop-app erp kivy python
Last synced: about 2 months ago
JSON representation
A Minimal And Highly Flexible ERP Solution For Small And Medium Businesses
- Host: GitHub
- URL: https://github.com/krsoninikhil/shop-counter
- Owner: krsoninikhil
- Created: 2018-01-08T05:02:18.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2018-07-24T18:02:40.000Z (almost 7 years ago)
- Last Synced: 2025-01-27T16:47:31.452Z (3 months ago)
- Topics: desktop-app, erp, kivy, python
- Language: Python
- Homepage:
- Size: 33.2 KB
- Stars: 0
- Watchers: 4
- Forks: 1
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Shop Counter
This desktop application aims to provide a minimal and flexible resource management platform for medium businesses to a local shopkeeper.
Currently it supports ledger entries like credit and debit amount in any transaction.
Plan is to add options for taking orders and product sell entries.# Instructions To Use
- Install MongoDB as per you system configuration from [here](https://www.mongodb.com/download-center#community).
- Start the MongoDB server, for Windows - follow [this](https://docs.mongodb.com/tutorials/install-mongodb-on-windows/).
- Download and extract the [Windows package](https://github.com/krsoninikhil/shop-counter/releases/download/v1.0/ShopCounter.zip).
- Change database configuration in `configs/connect_db.json`.
- Start application by executing `ShopCounter.exe`.# Upgrading
- If you've using v1.0, there are some changes in the way data is stored. To
make your presaved data work with new version, run this script:
```bash
mongo utils/upgrade_from_v1.js
```# Project Architecture
- `shop-counter` is designed to be highly flexible to meet different
requirements in the most simplistic way. Most of the elements can be change by
just changing the corresponding properties in `configs/elements.json`.
- It uses Python 3 and is based on awesome open source [kivy](https://kivy.org) framework.
- Each feature like Customer Entry, Ledger, Order Entry, Sells Entry, etc are
defined as `tabs` and can be added and removed from the `json` file itself without modifying the code.
- Codebase is mostly database agnostic meaning you can swich to SQL based database just by changing the corresponding functions in `db_ops.py` module.
- `home.py` is the main module that uses the `elements.py` module to populate the
GUI elements. These elements are defined in the `configs/elements.json`# Contributing / Modifying
You can modify it if the current form doesn't suits you requirements, following
information might be handy:
- Make sure you have ([Python 3.x](https://www.python.org/downloads/)) installed.
- Install the requirements by:
```bash
pip install -r requirements.txt
```
- To make `kivy` work, you might need to follow [this](https://kivy.org/docs/gettingstarted/installation.html).
- Launch application by changing to this directory and running:
```bash
python home.py
```###### Code Related Assumptions:
- `id` field of buttons defined in `json` files is used as function name which
must be defined in `Table` class.
- If `value` field is defined in `columns` field, then there must be a function
with this name in the `Table` class
- To package the app for Windows, follow [this](https://kivy.org/docs/guide/packaging-windows.html).
- While packaging if you get error like [`Unable to find any valuable Window provider`](https://groups.google.com/forum/#!topic/kivy-users/W3dS534BqQI),
copy the `libpng16-16.dll` from your system to `dist` folder of the package,
which mostly can be found at `C:\Users\\AppData\Local\Programs\Python\Python35\share\sdl2\bin`
- If you need any help, feel free to [contact](http://nikhilsoni.me/contact).# License
[MIT License](https://nks.mit-license.org/)