# fuzzy-couscous
> [!WARNING]
> Please note that this project, will no longer receive further updates. Instead, check out its new and cooler brother,
> falco at: [https://github.com/tobi-de/falco](https://github.com/tobi-de/falco).
<img align="right" width="170" height="170" src="https://res.cloudinary.com/dgugjkmqg/image/upload/v1672335414/Dream_TradingCard_bw46ec.png">
[![CD](https://github.com/Tobi-De/fuzzy-couscous/actions/workflows/deploy.yml/badge.svg)](https://github.com/Tobi-De/fuzzy-couscous/actions/workflows/deploy.yml)
[![CI](https://github.com/Tobi-De/fuzzy-couscous/actions/workflows/test.yml/badge.svg)](https://github.com/Tobi-De/fuzzy-couscous/actions/workflows/test.yml)
[![pypi](https://badge.fury.io/py/fuzzy-couscous.svg)](https://pypi.org/project/fuzzy-couscous/)
[![Docs: Mkdocs](https://img.shields.io/badge/mkdocs-docs-blue.svg)](https://tobi-de.github.io/fuzzy-couscous)
[![Ruff](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json)](https://github.com/astral-sh/ruff)
[![MIT License](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/Tobi-De/fuzzy-couscous/blob/main/LICENSE)
✨📚✨ [Read the full documentation](https://tobi-de.github.io/fuzzy-couscous)
A cli tool based on [django's startproject --template](https://docs.djangoproject.com/en/stable/ref/django-admin/#startproject) to bootstrap
your django projects with a modern stack. The project template is heavily inspired by [cookiecutter-django](https://github.com/cookiecutter/cookiecutter-django) but is meant to be a simpler version.
The cli also comes with [additional commands](https://tobi-de.github.io/fuzzy-couscous/usage/#cuzzy) to hopefully improve your django development experience.
![showcase gif](https://raw.githubusercontent.com/Tobi-De/fuzzy-couscous/main/docs/assets/cuzzy_demo.gif)
## Features
- Django 4+
- Python 3.10+
- Frontend: [htmx](https://htmx.org/) with [editor support](https://oluwatobi.dev/blog/posts/htmx-support-in-pycharm/) using [web-types](https://github.com/JetBrains/web-types#web-types)
- Template fragment with [django-template-partials](https://github.com/carltongibson/django-template-partials)
- Secure production settings, https only.
- Settings using [django-environ](https://github.com/joke2k/django-environ)
- Login / signup via [django-allauth](https://github.com/pennersr/django-allauth)
- Login using email instead of username
- Automatically reload your browser in development via [django-browser-reload](https://github.com/adamchainz/django-browser-reload)
- Better development experience with [django-fastdev](https://github.com/boxed/django-fastdev)
- [Amazon SES](https://aws.amazon.com/ses/?nc1=h_ls) for production email via [Anymail](https://github.com/anymail/django-anymail)
- [Docker](https://www.docker.com/) ready for production
- Optional production cache settings using the `CACHE_URL` or `REDIS_URL` environment variables.
- `captain-definition` for deploying to [caprover](https://caprover.com/)
- [Sentry](https://sentry.io/welcome/) for performance/error monitoring
- Serve static files with [Whitenoise](https://whitenoise.evans.io/en/latest/)
- Default integration with [pre-commit](https://github.com/pre-commit/pre-commit) for identifying simple issues before submission to code review
- Integrated task runner with [poethepoet](https://github.com/nat-n/poethepoet)
- Dependency management using [poetry](https://github.com/python-poetry/poetry) (can be replaced by [virtualenv](https://github.com/pypa/virtualenv) using the [`remove-poetry` command](https://tobi-de.github.io/fuzzy-couscous/usage/#cuzzy-remove-poetry))
## Templates
I use github branches to create variations of the base template.
- [main](https://github.com/Tobi-De/fuzzy-couscous): The base template
- [tailwind](https://github.com/Tobi-De/fuzzy-couscous/tree/tailwind): The base template + [tailwindcss](https://github.com/timonweb/pytailwindcss) via [pytailwindcss](https://github.com/timonweb/pytailwindcss)
- [bootstrap](https://github.com/Tobi-De/fuzzy-couscous/tree/bootstrap): The base template + [bootstrap5](https://getbootstrap.com/) via [django-bootstrap5](https://github.com/zostera/django-bootstrap5)
> **Note**: If some of my decisions about the project template don't make sense to you, read [this section](https://tobi-de.github.io/fuzzy-couscous/project/) of the documentation.
## Quickstart
Install the latest version of the package
```shell
pip install fuzzy-couscous --upgrade
```
Initialize a new project
```shell
cuzzy make project_name
```
## Development
Poetry is required (not really, you can set up the environment however you want and install the requirements
manually) to set up a virtualenv, install it then run the following:
```sh
pre-commit install --install-hooks
```
Tests can then be run quickly in that environment:
```sh
pytest
```
## Feedback
If you have any feedback, please reach out to me at tobidegnon@proton.me or [open a discussion](https://github.com/Tobi-De/fuzzy-couscous/discussions/new).
## Contributors
<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->
<!-- prettier-ignore-start -->
<!-- markdownlint-disable -->
<!-- markdownlint-restore -->
<!-- prettier-ignore-end -->
<!-- ALL-CONTRIBUTORS-LIST:END -->
Raw data
{
"_id": null,
"home_page": "https://tobi-de.github.io/fuzzy-couscous/",
"name": "fuzzy-couscous",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3.10,<4.0",
"maintainer_email": "",
"keywords": "django,python,cookiecutter,project-template",
"author": "Tobi-De",
"author_email": "tobidegnon@proton.me",
"download_url": "https://files.pythonhosted.org/packages/61/43/a943e1dc1ef69f8153f2efea6e2d45c8e50cf7ff002fb67d16d5c501ac0a/fuzzy_couscous-3.1.3.tar.gz",
"platform": null,
"description": "# fuzzy-couscous\n\n> [!WARNING]\n> Please note that this project, will no longer receive further updates. Instead, check out its new and cooler brother, \n> falco at: [https://github.com/tobi-de/falco](https://github.com/tobi-de/falco).\n\n<img align=\"right\" width=\"170\" height=\"170\" src=\"https://res.cloudinary.com/dgugjkmqg/image/upload/v1672335414/Dream_TradingCard_bw46ec.png\">\n\n[![CD](https://github.com/Tobi-De/fuzzy-couscous/actions/workflows/deploy.yml/badge.svg)](https://github.com/Tobi-De/fuzzy-couscous/actions/workflows/deploy.yml)\n[![CI](https://github.com/Tobi-De/fuzzy-couscous/actions/workflows/test.yml/badge.svg)](https://github.com/Tobi-De/fuzzy-couscous/actions/workflows/test.yml)\n[![pypi](https://badge.fury.io/py/fuzzy-couscous.svg)](https://pypi.org/project/fuzzy-couscous/)\n[![Docs: Mkdocs](https://img.shields.io/badge/mkdocs-docs-blue.svg)](https://tobi-de.github.io/fuzzy-couscous)\n[![Ruff](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json)](https://github.com/astral-sh/ruff)\n[![MIT License](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/Tobi-De/fuzzy-couscous/blob/main/LICENSE)\n\n\u2728\ud83d\udcda\u2728 [Read the full documentation](https://tobi-de.github.io/fuzzy-couscous)\n\nA cli tool based on [django's startproject --template](https://docs.djangoproject.com/en/stable/ref/django-admin/#startproject) to bootstrap\nyour django projects with a modern stack. The project template is heavily inspired by [cookiecutter-django](https://github.com/cookiecutter/cookiecutter-django) but is meant to be a simpler version.\nThe cli also comes with [additional commands](https://tobi-de.github.io/fuzzy-couscous/usage/#cuzzy) to hopefully improve your django development experience.\n\n![showcase gif](https://raw.githubusercontent.com/Tobi-De/fuzzy-couscous/main/docs/assets/cuzzy_demo.gif)\n\n## Features\n\n- Django 4+\n- Python 3.10+\n- Frontend: [htmx](https://htmx.org/) with [editor support](https://oluwatobi.dev/blog/posts/htmx-support-in-pycharm/) using [web-types](https://github.com/JetBrains/web-types#web-types)\n- Template fragment with [django-template-partials](https://github.com/carltongibson/django-template-partials)\n- Secure production settings, https only.\n- Settings using [django-environ](https://github.com/joke2k/django-environ)\n- Login / signup via [django-allauth](https://github.com/pennersr/django-allauth)\n- Login using email instead of username\n- Automatically reload your browser in development via [django-browser-reload](https://github.com/adamchainz/django-browser-reload)\n- Better development experience with [django-fastdev](https://github.com/boxed/django-fastdev)\n- [Amazon SES](https://aws.amazon.com/ses/?nc1=h_ls) for production email via [Anymail](https://github.com/anymail/django-anymail)\n- [Docker](https://www.docker.com/) ready for production\n- Optional production cache settings using the `CACHE_URL` or `REDIS_URL` environment variables.\n- `captain-definition` for deploying to [caprover](https://caprover.com/)\n- [Sentry](https://sentry.io/welcome/) for performance/error monitoring\n- Serve static files with [Whitenoise](https://whitenoise.evans.io/en/latest/)\n- Default integration with [pre-commit](https://github.com/pre-commit/pre-commit) for identifying simple issues before submission to code review\n- Integrated task runner with [poethepoet](https://github.com/nat-n/poethepoet)\n- Dependency management using [poetry](https://github.com/python-poetry/poetry) (can be replaced by [virtualenv](https://github.com/pypa/virtualenv) using the [`remove-poetry` command](https://tobi-de.github.io/fuzzy-couscous/usage/#cuzzy-remove-poetry))\n\n## Templates\n\nI use github branches to create variations of the base template.\n\n- [main](https://github.com/Tobi-De/fuzzy-couscous): The base template\n- [tailwind](https://github.com/Tobi-De/fuzzy-couscous/tree/tailwind): The base template + [tailwindcss](https://github.com/timonweb/pytailwindcss) via [pytailwindcss](https://github.com/timonweb/pytailwindcss)\n- [bootstrap](https://github.com/Tobi-De/fuzzy-couscous/tree/bootstrap): The base template + [bootstrap5](https://getbootstrap.com/) via [django-bootstrap5](https://github.com/zostera/django-bootstrap5)\n\n> **Note**: If some of my decisions about the project template don't make sense to you, read [this section](https://tobi-de.github.io/fuzzy-couscous/project/) of the documentation.\n\n## Quickstart\n\nInstall the latest version of the package\n\n```shell\npip install fuzzy-couscous --upgrade\n```\n\nInitialize a new project\n\n```shell\ncuzzy make project_name\n```\n\n## Development\n\nPoetry is required (not really, you can set up the environment however you want and install the requirements\nmanually) to set up a virtualenv, install it then run the following:\n\n```sh\npre-commit install --install-hooks\n```\n\nTests can then be run quickly in that environment:\n\n```sh\npytest\n```\n\n## Feedback\n\nIf you have any feedback, please reach out to me at tobidegnon@proton.me or [open a discussion](https://github.com/Tobi-De/fuzzy-couscous/discussions/new).\n\n## Contributors\n\n<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->\n<!-- prettier-ignore-start -->\n<!-- markdownlint-disable -->\n\n<!-- markdownlint-restore -->\n<!-- prettier-ignore-end -->\n\n<!-- ALL-CONTRIBUTORS-LIST:END -->\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "A cli tool to bootstrap your django projects and enhance your development experience.",
"version": "3.1.3",
"project_urls": {
"Documentation": "https://tobi-de.github.io/fuzzy-couscous",
"Homepage": "https://tobi-de.github.io/fuzzy-couscous/",
"Repository": "https://github.com/Tobi-De/fuzzy-couscous"
},
"split_keywords": [
"django",
"python",
"cookiecutter",
"project-template"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "b0ac2dd7722d3d1a3675e2648b3643438f11f44ea06f4f5ca805fcb6903d5bde",
"md5": "ec9e848793b2c17400f678813717549c",
"sha256": "b28cfa771dd0015c15c8bf35c5d3013f5ab4c61087b436be4b1a88ec4639aad0"
},
"downloads": -1,
"filename": "fuzzy_couscous-3.1.3-py3-none-any.whl",
"has_sig": false,
"md5_digest": "ec9e848793b2c17400f678813717549c",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.10,<4.0",
"size": 18659,
"upload_time": "2023-12-24T09:35:46",
"upload_time_iso_8601": "2023-12-24T09:35:46.664934Z",
"url": "https://files.pythonhosted.org/packages/b0/ac/2dd7722d3d1a3675e2648b3643438f11f44ea06f4f5ca805fcb6903d5bde/fuzzy_couscous-3.1.3-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "6143a943e1dc1ef69f8153f2efea6e2d45c8e50cf7ff002fb67d16d5c501ac0a",
"md5": "a56eaad3966bada46ade9eb3b2e8facf",
"sha256": "c91768bb79298fa461d88d3d0c243ecd2531a5cd5363d61500e7663565c99ff1"
},
"downloads": -1,
"filename": "fuzzy_couscous-3.1.3.tar.gz",
"has_sig": false,
"md5_digest": "a56eaad3966bada46ade9eb3b2e8facf",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.10,<4.0",
"size": 15698,
"upload_time": "2023-12-24T09:35:49",
"upload_time_iso_8601": "2023-12-24T09:35:49.305682Z",
"url": "https://files.pythonhosted.org/packages/61/43/a943e1dc1ef69f8153f2efea6e2d45c8e50cf7ff002fb67d16d5c501ac0a/fuzzy_couscous-3.1.3.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-12-24 09:35:49",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "Tobi-De",
"github_project": "fuzzy-couscous",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "fuzzy-couscous"
}