{"id":21729986,"url":"https://github.com/shopyo/shopyo","last_synced_at":"2025-04-07T07:04:30.138Z","repository":{"id":40557091,"uuid":"364685531","full_name":"shopyo/shopyo","owner":"shopyo","description":"The package for big, scalable and modular Flask apps. More than just Flask boilerplate","archived":false,"fork":false,"pushed_at":"2024-05-06T22:10:20.000Z","size":16558,"stargazers_count":74,"open_issues_count":5,"forks_count":27,"subscribers_count":4,"default_branch":"dev","last_synced_at":"2024-05-22T21:29:08.371Z","etag":null,"topics":["big","django","first-timers-friendly","flask","fullstack","javascript","module","modules","python","python3","scale","shopyo"],"latest_commit_sha":null,"homepage":"https://shopyo.readthedocs.org","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/shopyo.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"contributing.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-05-05T19:30:06.000Z","updated_at":"2024-05-28T22:04:36.542Z","dependencies_parsed_at":"2024-05-02T02:21:59.561Z","dependency_job_id":"19ca6462-37fc-4b46-8bbc-54c9988f99a2","html_url":"https://github.com/shopyo/shopyo","commit_stats":{"total_commits":904,"total_committers":78,"mean_commits":11.58974358974359,"dds":0.6825221238938053,"last_synced_commit":"cb55dac7d40057c04049feeb455fc786d293572c"},"previous_names":[],"tags_count":26,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shopyo%2Fshopyo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shopyo%2Fshopyo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shopyo%2Fshopyo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shopyo%2Fshopyo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/shopyo","download_url":"https://codeload.github.com/shopyo/shopyo/tar.gz/refs/heads/dev","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247552394,"owners_count":20957260,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["big","django","first-timers-friendly","flask","fullstack","javascript","module","modules","python","python3","scale","shopyo"],"created_at":"2024-11-26T04:11:01.335Z","updated_at":"2025-04-07T07:04:30.106Z","avatar_url":"https://github.com/shopyo.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ch1 align=\"center\"\u003e\n  \u003cbr\u003e\n  \u003ca href=\"https://github.com/shopyo\"\u003e\u003cimg src=\"https://github.com/shopyo/shopyo/blob/dev/assets/github_banner.png\" alt=\"shopyo\" width=\"\" height=\"\"\u003e\u003c/a\u003e\n\n\u003c/h1\u003e\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) 🌟\n\nA 45 mins talk was dedicated to it at [EuroPython](https://youtu.be/rkzXQOC1T0Q) 🌟\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 \u0026 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| 🥏 No learning  | Does not get into the way, uses common flask-packages. You only need to know Flask. |\n| 🏗️ Architecture | Never think about architecture of your app, just build \u0026 integrate extensions. |\n| 🏢 Scalable | As your app grows, Shopyo caters for your codebase with powerful features. |\n| 🥢 Good practices | Testing, docs etc are covered. Don't make those afterthoughts. |\n| 🔧 Ease your life | We've been there. Awesome utils to ease development. |\n| 🪜 Scaffolding | Don't waste time writing boilerplate code. We've got you covered. |\n| 🖍️ Theming system | You need theme in your apps? We integrate a default theme system. |\n\n# Features\n\n- ⚛️ i18n setup\n- 🔐 Login \u0026 Auth\n- 📧 Email\n- 📦 2-level modularity\n- 🪐 Designed for really BIG apps\n- 🌅 Assets management\n\n# Quick start\n\n```bash\npip install shopyo\u003e=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 \u003cVAR\u003e` for Windows):\n\n```\nexport SHOPYO_CONFIG_PROFILE=development\nexport FLASK_ENV=development # \u003c flask 2.2.x\nexport ENV=development\nexport FLASK_DEBUG=development # \u003c 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\u003e 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 \u0026 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 \u0026 Theme\n\nAll looks are 100% customisable with themes ~ Backend, bootstrap included by default.\n\nAgain blow it up \u0026 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 \u0026 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👉 Get started [here](https://shopyo.readthedocs.io/en/latest/contrib.html)\n\n👉 Join the [Discord](https://discord.gg/k37Ef6w), ask questions \u0026 learn about Flask tricks during our dev talks!\n\n# 📚 Docs\n\n👉 Link: [shopyo.readthedocs.io/](https://shopyo.readthedocs.io/en/latest/)\n\n# 📞 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","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshopyo%2Fshopyo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fshopyo%2Fshopyo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshopyo%2Fshopyo/lists"}