{"id":16220755,"url":"https://github.com/elc/cookiecutter-python-fullstack","last_synced_at":"2025-03-19T11:31:03.164Z","repository":{"id":98144909,"uuid":"381106570","full_name":"ELC/cookiecutter-python-fullstack","owner":"ELC","description":"Generate a Full Stack Python Web App - Choose the framework you want Vue, React, Angular - Can be run in a single container or without Docker at all.","archived":false,"fork":false,"pushed_at":"2021-08-22T20:02:31.000Z","size":82,"stargazers_count":13,"open_issues_count":12,"forks_count":4,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-02-28T18:23:17.127Z","etag":null,"topics":["angular","cookiecutter","cookiecutter-template","diskcache","duckdb","flask","fullstack","python","react","sqlite","tinydb","uwsgi","vue","waitress","zodb"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ELC.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-06-28T17:08:50.000Z","updated_at":"2024-09-21T06:26:05.000Z","dependencies_parsed_at":null,"dependency_job_id":"6fe90772-d115-4ea5-8302-9912babbb3eb","html_url":"https://github.com/ELC/cookiecutter-python-fullstack","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ELC%2Fcookiecutter-python-fullstack","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ELC%2Fcookiecutter-python-fullstack/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ELC%2Fcookiecutter-python-fullstack/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ELC%2Fcookiecutter-python-fullstack/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ELC","download_url":"https://codeload.github.com/ELC/cookiecutter-python-fullstack/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243986081,"owners_count":20379260,"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":["angular","cookiecutter","cookiecutter-template","diskcache","duckdb","flask","fullstack","python","react","sqlite","tinydb","uwsgi","vue","waitress","zodb"],"created_at":"2024-10-10T11:59:29.980Z","updated_at":"2025-03-19T11:31:03.159Z","avatar_url":"https://github.com/ELC.png","language":"Python","readme":"# CookieCutter Python FullStack\n\nThis project allows you to automatically generate all the boilerplate code and files for a Full Stack, modern Python Web App, with different options to choose for backends, frontends, databases and web servers.\n\nThe project follows the [3-tier Architecture](https://en.wikipedia.org/wiki/Multitier_architecture), meaning that each layer is decouple and you can swap front-ends, back-ends and databases seemlessly.\n\nContributions are wellcome!\n\n## Why should I use it?\n\n- Because connecting Back End and Front End is not trivial sometimes.\n- Because Python provides different ways to do things and it is good to try something new.\n- To learn how to use different tools to do the same job and evaluate alternatives.\n- To learn about the advantages of decouple systems (3-Layered Architecture)\n- Because **all possible configurations** were tested using [Pytest](https://docs.pytest.org/en/latest/) in different versions of Python so you can be sure it works out of the box. \n- No Vendor Lock in, once you use the template, you can modify the result in any way you want, this is just a kick off.\n\n## Getting Started\n\nTo use this template you need cookiecutter, if you don't know what it is, check the [2 minute introduction by CalmCode](https://calmcode.io/cookiecutter/the-problem.html). Then install it via pip as:\n\n```\npip install cookiecutter\n```\n\nThen, to generate your custom project simply run:\n\n```\ncookiecutter https://github.com/ELC/cookiecutter-python-fullstack.git\n```\n\n## Run Your Project\n\nYou can run the project directly on your local PC or in a container using Docker\n\n### Without Docker\n\nYou will need [invoke](http://www.pyinvoke.org/) to run the project, install it by running\n\n```\npip install invoke\n```\n\nThen, simply run the following command inside the project folder\n\n```\ninvoke buildAndServe\n```\n\n### With Docker\n\nAn alternative approach is to use [Docker](https://www.docker.com/), you will need the Docker engine running. Go with the terminal to the project folder and run:\n\n```\ndocker build --tag \u003cyour_tag\u003e .\n```\n\nAnd then:\n\n```\ndocker run -p \u003cyour_port\u003e:\u003ccontainer_port\u003e \u003cyour_tag\u003e\n```\n\n## Know the possibilities\n\nThis project offers different alternatives for each of the layers. **All possible combinations have been tested**\n\n### Front-End\n\nThe front-end is taken from the 2021 edition of the Front-End Crash Course by Traversy Media\n\n- **[Vue 3](https://v3.vuejs.org/)**: Vue.js is an open-source model–view–viewmodel front end JavaScript framework for building user interfaces and single-page applications. It was created by Evan You, and is maintained by him and the rest of the active core team members - [Full Tutorial on Youtube](https://www.youtube.com/watch?v=qZXt1Aom3Cs)\n- **[React](https://reactjs.org/) (with WebHooks)**: React (also known as React.js or ReactJS) is a free and open-source front-end JavaScript library for building user interfaces or UI components. It is maintained by Facebook and a community of individual developers and companies - [Full Tutorial on Youtube](https://www.youtube.com/watch?v=w7ejDZ8SWv8\u0026t=2483s)\n- **[Angular 11](https://angular.io/)**: Angular is a TypeScript-based free and open-source web application framework led by the Angular Team at Google and by a community of individuals and corporations - [Full Tutorial on Youtube](https://www.youtube.com/watch?v=3dHNOWTI7H8)\n\n### Back-End\n* **[Flask](http://flask.pocoo.org/)**: Flask is a micro web framework, it is classified as a microframework because it does not require particular tools or libraries.\n\nMore comming soon...\n\n### Databases\n\nTo avoid extra complexity and setup, all the databases included are embedded, meaning, no server-client is needed. Everything happens inside Python.\n\n- **SQL by [SQLite](https://www.sqlite.org/)**: SQLite is a C-language library that implements a small, fast, self-contained, high-reliability, full-featured, SQL database engine. SQLite is the most used database engine in the world\n- **NoSQL (Document) by [TinyDB](https://tinydb.readthedocs.io/en/latest/)**: TinyDB is a lightweight document oriented database optimized for your happiness. It's written in pure Python and has no external dependencies.\n- **NoSQL (Key-Value/Cache) by [DiskCache](http://www.grantjenks.com/docs/diskcache/)**: DiskCache is an Apache2 licensed disk and file backed cache library, written in pure-Python, and compatible with Django. There’s no need for a C compiler or running another process.\n- **NoSQL (Column/OLAP) by [DuckDB](https://duckdb.org/)**: DuckDB is an in-process SQL OLAP Database Management System with support for SQL and that can run queries against databases, parquet files and even Pandas Dataframes.\n- **Object-Based by [ZODB](https://zodb.org/en/latest/)**: The Zope Object Database (ZODB) is an object-oriented database for transparently and persistently storing Python objects. Features include transactions, history/undo, built-in caching, and more.\n\n### WebServers\n\n* **[uWSGI](https://uwsgi-docs.readthedocs.io/en/latest/PythonModule.html)**: The uWSGI project aims at developing a full stack for building hosting services.\n* **[Waitress](https://docs.pylonsproject.org/projects/waitress/en/latest/)**: Waitress is meant to be a production-quality pure-Python WSGI server with very acceptable performance. It has no dependencies except the Python standard library.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Felc%2Fcookiecutter-python-fullstack","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Felc%2Fcookiecutter-python-fullstack","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Felc%2Fcookiecutter-python-fullstack/lists"}