Featured on Weekly Python issue 436 🌟
🎁 Open inventory management and Point of sales (powered by python) for small shops.
It also makes a great Flask base and supports commands such as:
python manage.py startapp loans
pip install shopyo
close and reopen your cmd
shopyo new <path> <project folder>
shopyo new /home/profiles/arj/desktop shopyotest
then cd into the folder
then install requirements (install in venv if you like)
pip install -r requirements.txt
python manage.py initialise python manage.py runserver
go to url ^^
beta - now in beta!
alpha - highly volatile, core features not yet finished
🇲🇺 🇩🇪 🇨🇳 🇬🇧 🇸🇬 🇺🇬 🇲x
If you want to use the project as a Flask base, just remove the shop modules in modules/
This is my first time contributing to a public repo and I have quite enjoyed it. If you're a
first-time-contributorthe community is very helpful and can help you progress. Since I have been helping in this repo, I have also learnt a few things myself. The owner of the repo is active and is always willing to help.
Also, if I'm around and you're stuck give us a shout. I'll help if I can.
Months ago, I was searching github for a point of sales solution that used Python. What bothered me was that many of the applications I found were not ideal. Some required Posgres with the expectation that a user would already have this installed, others had codebases that were a mess of spaghetti code, yet others were django-based accounting monsters ...
I decided to try making my own solution, modeled after a client request, I had once recived. I Made it flask-based with SQLalchemy and SQLite. You can instantly get started with no hassle, switching to something more powerful when you want to (since it uses an ORM)
For the UI, we used the latest, bootstrap4, fa5 and jq3. Interestingly enough, I had two shop owners try it and they were very impressed with the ease of use.
It is still in devolopment and supports instant lookup. Long story short, with some programming skills, you can solve some everyday problems. And yes, no cdn, all libs are bundled so that you can use it completely offline
See this linked-in article!
python -m pip install -r requirements.txt
python -m pip install -r dev_requirements.txtif you want to contribute
cd into shopyo/shopyo if not already.
initialise and setup app.
python manage.py initialise
run the app.
python manage.py runserver
go to the indicated url
Super User password
User ID: user password: pass
In case of change to models, do
python manage.py db migrate pyhton manage.py db upgrade
shopyo folderand run the command.
python manage.py db init # create db from new python manage.py db migrate python manage.py db upgrade
python manage.py clean
create new module
python manage.py startapp modulename
python manage.py rundebug python manage.py runserver
create new module
Sphinx docs generater
sphinx-build -b html sphinx_source docs
shopyo/ to generate docs
Modules are found in the modules folder.
A typical structure is as follows:
apple/ templates/ apple/ view.py models.py info.json
You must ensure that
<nameofmodulefolder>_blueprint, in this demo
And ... the app will load all the modules, just make sure in info.json you keep url_prefix, type, name, and fa-icon
For the time being it's best to look into existing modules and do the same.
Shopyo internals explained here: Shopyo: Enhance Your Flask by Exploring An Advanced Flask App
If you want to contribute, go ahead, we ❤️ it. We follow a 💯 % first-timers-friendly policy.
Create a new branch. For example:
Once you have add your changes ensure tests are still passing.
Add tests for any new functionality added.
Ensure you commits follow the standard specified here.
Follow the Pull request template.
Add your country flag in readme after accepted PR
Update fork as below then
git push origin <branch-name>
Fixes #94for example, as seen here
devbranch, not master
cd <your/local/cloned/repo/path/here> git remote add upstream https://github.com/Abdur-rahmaanJ/shopyo.git git fetch upstream git pull upstream master
Why do we need another folder in templates?
Flask loads all templates in one namespace. If you specify
apple/index.html flask will load the index.html in the apple folder in templates
pip install -e .
pip install -e . --upgrade
shopyo <your options>
Support team if you are stuck