shopyo


Nameshopyo JSON
Version 4.12.1 PyPI version JSON
download
home_pagehttps://github.com/shopyo/shopyo
SummaryHighly modular web framework built for big apps on top of Flask with Django advantages
upload_time2024-10-11 19:49:39
maintainerNone
docs_urlNone
authorAbdur-Rahmaan Janhangeer
requires_python>=3.6
licenseMIT
keywords flask django web framework modular
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            <h1 align="center">
  <br>
  <a href="https://github.com/shopyo"><img src="https://github.com/shopyo/shopyo/blob/dev/assets/github_banner.png" alt="shopyo" width="" height=""></a>

</h1>

[![Downloads](https://static.pepy.tech/badge/shopyo/month)](https://pepy.tech/project/shopyo) [![Codecov](https://codecov.io/gh/shopyo/shopyo/branch/dev/graph/badge.svg?token=J4TL2MDTSS)](https://codecov.io/gh/shopyo/shopyo) ![Tests](https://github.com/shopyo/shopyo/actions/workflows/tests.yaml/badge.svg) [![PyPI version shields.io](https://img.shields.io/pypi/v/shopyo.svg)](https://pypi.python.org/pypi/shopyo/) [![Documentation Status](https://readthedocs.org/projects/shopyo/badge/?version=latest)](https://shopyo.readthedocs.io/en/latest/?badge=latest) [![CII Best Practices](https://bestpractices.coreinfrastructure.org/projects/5350/badge)](https://bestpractices.coreinfrastructure.org/projects/5350) [![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/shopyo/shopyo/badge)](https://api.securityscorecards.dev/projects/github.com/shopyo/shopyo)

Featured on [Weekly Python issue 436](https://newsletry.com/Home/Python%20Weekly/9a578693-14ba-47c5-8a8e-08d7b0139fe7) 🌟

A 45 mins talk was dedicated to it at [EuroPython](https://youtu.be/rkzXQOC1T0Q) 🌟

Must watch: [Shopyo: Your Mega Flask Machine](https://youtu.be/pvwvRi6iMds) (short vid)

E-commerce modules transferred to [ShopCube](https://github.com/shopyo/shopcube)

**[ [DOCS](https://shopyo.readthedocs.io/en/latest/) | [DISCORD](https://discord.gg/k37Ef6w) | [CONTRIBUTE](https://shopyo.readthedocs.io/en/latest/contrib.html) | [TWITTER](https://twitter.com/shopyoproject)]**

# What?

Your next-level modular web framework. Get organisation & scalability from day 1.

Built on top of Flask, it offers most Django features, sometimes a tidbit more with far more flexibility.

# Why?

| Perk |  |
|:--|:--:|
| 🥏 No learning  | Does not get into the way, uses common flask-packages. You only need to know Flask. |
| 🏗️ Architecture | Never think about architecture of your app, just build & integrate extensions. |
| 🏢 Scalable | As your app grows, Shopyo caters for your codebase with powerful features. |
| 🥢 Good practices | Testing, docs etc are covered. Don't make those afterthoughts. |
| 🔧 Ease your life | We've been there. Awesome utils to ease development. |
| 🪜 Scaffolding | Don't waste time writing boilerplate code. We've got you covered. |
| 🖍️ Theming system | You need theme in your apps? We integrate a default theme system. |

# Features

- ⚛️ i18n setup
- 🔐 Login & Auth
- 📧 Email
- 📦 2-level modularity
- 🪐 Designed for really BIG apps
- 🌅 Assets management

# Quick start

```bash
pip install shopyo>=4.11
mkdir blog
cd blog
shopyo new -m # -m adds static files
cd blog
# comment out in app.py
# from shopyo_base import ShopyoBase
# ...
# sh_theme.init_app(app)
shopyo initialise
flask shopyo-seed
flask run --debug
```

If errors do (linux, use `set <VAR>` for Windows):

```
export SHOPYO_CONFIG_PROFILE=development
export FLASK_ENV=development # < flask 2.2.x
export ENV=development
export FLASK_DEBUG=development # < flask 2.2.x
export FLASK_APP=app.py
```

`SHOPYO_CONFIG_PROFILE` is what is defined as keys of `app_config` in `config.py`

It is recommended to use a venv in root folder.

`python -m venv venv`

If for dev install dev_requirements.txt also.

`python -m pip install -r requirements/dev.txt`

go to http://127.0.0.1:5000/dashboard with credentials admin@domain.com / pass

![](https://github.com/shopyo/shopyo/blob/dev/comparison.png)

-   Not framework docs but docs for the project you are building.

# First time contributing?

We have a 100% first-timers friendly policy. Check out the [testimonials](https://github.com/shopyo/shopyo/discussions/307).

> Thank you! One of the best onboarding experiences I've had. Learned a lot too (Ramon from Codesee.io)

# Glimpse

![](https://github.com/shopyo/shopyo/raw/dev/assets/comparison.png)

# Who uses Shopyo?

|   site name    |    description     |
| :------------: | :----------------: |
| Maurilearn.com | Elearning platform |
| Linkolearn.com |   Learn By links   |
|  FlaskCon.com  |  Conference soft   |

# Big??

Powered by apps / modules. Add as many as you like.

Apps are not enough, organise them in boxes and get the ultimate order you need.

You need a customised Django? This is the project. You need to build an ERP? This is the project.

# Linux??

Hackable to the core. Even the dashboard is but a module.

Don't need our modules? Nuke them. Look boring? modify them

# Reliable?

We don't maintain middlewares. We rely on battle tested batteries like:

-   flask_sqlalchemy
-   flask_login & co

Heck remove them if you don't want. Want to use Peewee? You can.

# Rich Flask API

Common flask patterns are integrated, the structure is over the moon.

Common flask tasks are provided with an API: custom notifications, bulk form errors

# Back office feel & Theme

All looks are 100% customisable with themes ~ Backend, bootstrap included by default.

Again blow it up & use what you want. It's possible

# Transparent: Code your own web distro

Everything is clear, not hidden. You can 100% customise whatever you want.

We did not hardcode our choices. Our APIS are incremental. You can always use barebones.

# Plug & Play

The modules are put by copy paste. No blueprint codes to write.

# Contribute

We follow a 100% first-timers friendly policy.

👉 Get started [here](https://shopyo.readthedocs.io/en/latest/contrib.html)

👉 Join the [Discord](https://discord.gg/k37Ef6w), ask questions & learn about Flask tricks during our dev talks!

# 📚 Docs

👉 Link: [shopyo.readthedocs.io/](https://shopyo.readthedocs.io/en/latest/)

# 📞 Contact (inlcuding in case of vulns)

Support team if you are stuck

-   [Abdur-Rahmaan Janhangeer](https://github.com/Abdur-rahmaanJ) - arj.python@gmail.com
-   [Nathan](https://github.com/blips5) -
-   [Arthur Nangai](https://github.com/arthurarty) - arthurnangaiarty@yahoo.co.uk
-   [Shamsuddin Rehmani](https://github.com/rehmanis) - rehmani@usc.edu

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/shopyo/shopyo",
    "name": "shopyo",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.6",
    "maintainer_email": null,
    "keywords": "Flask, Django, web framework, modular",
    "author": "Abdur-Rahmaan Janhangeer",
    "author_email": "arj.python@gmail.com",
    "download_url": "https://files.pythonhosted.org/packages/00/2c/a244cd614dfdc1884cab55cefe2ab470b8fe9c5453afb2f4fc4dd0575b41/shopyo-4.12.1.tar.gz",
    "platform": null,
    "description": "<h1 align=\"center\">\n  <br>\n  <a href=\"https://github.com/shopyo\"><img src=\"https://github.com/shopyo/shopyo/blob/dev/assets/github_banner.png\" alt=\"shopyo\" width=\"\" height=\"\"></a>\n\n</h1>\n\n[![Downloads](https://static.pepy.tech/badge/shopyo/month)](https://pepy.tech/project/shopyo) [![Codecov](https://codecov.io/gh/shopyo/shopyo/branch/dev/graph/badge.svg?token=J4TL2MDTSS)](https://codecov.io/gh/shopyo/shopyo) ![Tests](https://github.com/shopyo/shopyo/actions/workflows/tests.yaml/badge.svg) [![PyPI version shields.io](https://img.shields.io/pypi/v/shopyo.svg)](https://pypi.python.org/pypi/shopyo/) [![Documentation Status](https://readthedocs.org/projects/shopyo/badge/?version=latest)](https://shopyo.readthedocs.io/en/latest/?badge=latest) [![CII Best Practices](https://bestpractices.coreinfrastructure.org/projects/5350/badge)](https://bestpractices.coreinfrastructure.org/projects/5350) [![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/shopyo/shopyo/badge)](https://api.securityscorecards.dev/projects/github.com/shopyo/shopyo)\n\nFeatured on [Weekly Python issue 436](https://newsletry.com/Home/Python%20Weekly/9a578693-14ba-47c5-8a8e-08d7b0139fe7) \ud83c\udf1f\n\nA 45 mins talk was dedicated to it at [EuroPython](https://youtu.be/rkzXQOC1T0Q) \ud83c\udf1f\n\nMust watch: [Shopyo: Your Mega Flask Machine](https://youtu.be/pvwvRi6iMds) (short vid)\n\nE-commerce modules transferred to [ShopCube](https://github.com/shopyo/shopcube)\n\n**[ [DOCS](https://shopyo.readthedocs.io/en/latest/) | [DISCORD](https://discord.gg/k37Ef6w) | [CONTRIBUTE](https://shopyo.readthedocs.io/en/latest/contrib.html) | [TWITTER](https://twitter.com/shopyoproject)]**\n\n# What?\n\nYour next-level modular web framework. Get organisation & scalability from day 1.\n\nBuilt on top of Flask, it offers most Django features, sometimes a tidbit more with far more flexibility.\n\n# Why?\n\n| Perk |  |\n|:--|:--:|\n| \ud83e\udd4f No learning  | Does not get into the way, uses common flask-packages. You only need to know Flask. |\n| \ud83c\udfd7\ufe0f Architecture | Never think about architecture of your app, just build & integrate extensions. |\n| \ud83c\udfe2 Scalable | As your app grows, Shopyo caters for your codebase with powerful features. |\n| \ud83e\udd62 Good practices | Testing, docs etc are covered. Don't make those afterthoughts. |\n| \ud83d\udd27 Ease your life | We've been there. Awesome utils to ease development. |\n| \ud83e\ude9c Scaffolding | Don't waste time writing boilerplate code. We've got you covered. |\n| \ud83d\udd8d\ufe0f Theming system | You need theme in your apps? We integrate a default theme system. |\n\n# Features\n\n- \u269b\ufe0f i18n setup\n- \ud83d\udd10 Login & Auth\n- \ud83d\udce7 Email\n- \ud83d\udce6 2-level modularity\n- \ud83e\ude90 Designed for really BIG apps\n- \ud83c\udf05 Assets management\n\n# Quick start\n\n```bash\npip install shopyo>=4.11\nmkdir blog\ncd blog\nshopyo new -m # -m adds static files\ncd blog\n# comment out in app.py\n# from shopyo_base import ShopyoBase\n# ...\n# sh_theme.init_app(app)\nshopyo initialise\nflask shopyo-seed\nflask run --debug\n```\n\nIf errors do (linux, use `set <VAR>` for Windows):\n\n```\nexport SHOPYO_CONFIG_PROFILE=development\nexport FLASK_ENV=development # < flask 2.2.x\nexport ENV=development\nexport FLASK_DEBUG=development # < flask 2.2.x\nexport FLASK_APP=app.py\n```\n\n`SHOPYO_CONFIG_PROFILE` is what is defined as keys of `app_config` in `config.py`\n\nIt is recommended to use a venv in root folder.\n\n`python -m venv venv`\n\nIf for dev install dev_requirements.txt also.\n\n`python -m pip install -r requirements/dev.txt`\n\ngo to http://127.0.0.1:5000/dashboard with credentials admin@domain.com / pass\n\n![](https://github.com/shopyo/shopyo/blob/dev/comparison.png)\n\n-   Not framework docs but docs for the project you are building.\n\n# First time contributing?\n\nWe have a 100% first-timers friendly policy. Check out the [testimonials](https://github.com/shopyo/shopyo/discussions/307).\n\n> Thank you! One of the best onboarding experiences I've had. Learned a lot too (Ramon from Codesee.io)\n\n# Glimpse\n\n![](https://github.com/shopyo/shopyo/raw/dev/assets/comparison.png)\n\n# Who uses Shopyo?\n\n|   site name    |    description     |\n| :------------: | :----------------: |\n| Maurilearn.com | Elearning platform |\n| Linkolearn.com |   Learn By links   |\n|  FlaskCon.com  |  Conference soft   |\n\n# Big??\n\nPowered by apps / modules. Add as many as you like.\n\nApps are not enough, organise them in boxes and get the ultimate order you need.\n\nYou need a customised Django? This is the project. You need to build an ERP? This is the project.\n\n# Linux??\n\nHackable to the core. Even the dashboard is but a module.\n\nDon't need our modules? Nuke them. Look boring? modify them\n\n# Reliable?\n\nWe don't maintain middlewares. We rely on battle tested batteries like:\n\n-   flask_sqlalchemy\n-   flask_login & co\n\nHeck remove them if you don't want. Want to use Peewee? You can.\n\n# Rich Flask API\n\nCommon flask patterns are integrated, the structure is over the moon.\n\nCommon flask tasks are provided with an API: custom notifications, bulk form errors\n\n# Back office feel & Theme\n\nAll looks are 100% customisable with themes ~ Backend, bootstrap included by default.\n\nAgain blow it up & use what you want. It's possible\n\n# Transparent: Code your own web distro\n\nEverything is clear, not hidden. You can 100% customise whatever you want.\n\nWe did not hardcode our choices. Our APIS are incremental. You can always use barebones.\n\n# Plug & Play\n\nThe modules are put by copy paste. No blueprint codes to write.\n\n# Contribute\n\nWe follow a 100% first-timers friendly policy.\n\n\ud83d\udc49 Get started [here](https://shopyo.readthedocs.io/en/latest/contrib.html)\n\n\ud83d\udc49 Join the [Discord](https://discord.gg/k37Ef6w), ask questions & learn about Flask tricks during our dev talks!\n\n# \ud83d\udcda Docs\n\n\ud83d\udc49 Link: [shopyo.readthedocs.io/](https://shopyo.readthedocs.io/en/latest/)\n\n# \ud83d\udcde Contact (inlcuding in case of vulns)\n\nSupport team if you are stuck\n\n-   [Abdur-Rahmaan Janhangeer](https://github.com/Abdur-rahmaanJ) - arj.python@gmail.com\n-   [Nathan](https://github.com/blips5) -\n-   [Arthur Nangai](https://github.com/arthurarty) - arthurnangaiarty@yahoo.co.uk\n-   [Shamsuddin Rehmani](https://github.com/rehmanis) - rehmani@usc.edu\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "Highly modular web framework built for big apps on top of Flask with Django advantages",
    "version": "4.12.1",
    "project_urls": {
        "Changelog": "https://github.com/shopyo/shopyo/blob/dev/CHANGES.md/",
        "Homepage": "https://github.com/shopyo/shopyo",
        "Issue Tracker": "https://github.com/shopyo/shopyo/issues/",
        "Source Code": "https://github.com/shopyo/shopyo/",
        "Twitter": "https://twitter.com/shopyoproject/"
    },
    "split_keywords": [
        "flask",
        " django",
        " web framework",
        " modular"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "8e0af35b81dc2616121172e1c60fd51b804d40e3cc8999e29e3f968054bc80fd",
                "md5": "c5d7ecb1613b34bd1e59b6648667df20",
                "sha256": "a051d306c356b69799bc08416188016bf81b37a719665959791ce00c1c69b5db"
            },
            "downloads": -1,
            "filename": "shopyo-4.12.1-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "c5d7ecb1613b34bd1e59b6648667df20",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.6",
            "size": 5439186,
            "upload_time": "2024-10-11T19:49:36",
            "upload_time_iso_8601": "2024-10-11T19:49:36.792704Z",
            "url": "https://files.pythonhosted.org/packages/8e/0a/f35b81dc2616121172e1c60fd51b804d40e3cc8999e29e3f968054bc80fd/shopyo-4.12.1-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "002ca244cd614dfdc1884cab55cefe2ab470b8fe9c5453afb2f4fc4dd0575b41",
                "md5": "161b60fce0d397d0dd25aa6d5677d546",
                "sha256": "cb0036552187b87803d0131947b11272a2409c24a89b8eba63bd76e1b5188c20"
            },
            "downloads": -1,
            "filename": "shopyo-4.12.1.tar.gz",
            "has_sig": false,
            "md5_digest": "161b60fce0d397d0dd25aa6d5677d546",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.6",
            "size": 5424604,
            "upload_time": "2024-10-11T19:49:39",
            "upload_time_iso_8601": "2024-10-11T19:49:39.477724Z",
            "url": "https://files.pythonhosted.org/packages/00/2c/a244cd614dfdc1884cab55cefe2ab470b8fe9c5453afb2f4fc4dd0575b41/shopyo-4.12.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-10-11 19:49:39",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "shopyo",
    "github_project": "shopyo",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "tox": true,
    "lcname": "shopyo"
}
        
Elapsed time: 0.62141s