df_site


Namedf_site JSON
Version 0.1.7 PyPI version JSON
download
home_pagehttps://github.com/d9pouces/df_site
SummaryMore batteries to Django
upload_time2025-01-25 14:15:23
maintainerd9pouces
docs_urlNone
authord9pouces
requires_python<4.0,>=3.10
licenseCECILL-B
keywords
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            df_site
---------

A single Django app that contains many features and tools to create a website.
It offers a template based on Bootstrap5 with the required views for:
- login/logout (with Django-allauth and all its methods like passkeys)
- a profile management view
- a dark mode
- a cookie consent banner (with DjangoCookieConsent)
- a message app between users (django-postman)
- a connection to websockets (django-channels and df_websockets) for pushing data to the client
- a configurable object lists with sorting, pagination and filters (similar to the Django admin list views) integrable in any template
- a configurable object detail view similar to the Django admin detail view

## Frontend

- [X] [SCSS](https://sass-lang.com/): Bootstrap uses SCSS
- [X] [pnpm](https://pnpm.io/): easy to use, most efficient than npm and yarn
- [X] [Bootstrap](https://getbootstrap.com/): the only CSS framework with a Django package
- [X] [TypeScript](https://www.typescriptlang.org/)
- [X] [Webpack](https://webpack.js.org/)
- [X] [Node.js](https://nodejs.org/): used by webpack
- [X] [Font-awesome](https://fontawesome.com/)
- [X] [Dark Mode](https://developer.mozilla.org/en-US/docs/Web/CSS/@media/prefers-color-scheme)
- [ ] [Htmx](https://htmx.org/)
- [ ] [Select2](https://select2.org/): still use jQuery in 2024 and no real plan to remove it
- [ ] Javascript editor

### Excluded
- [X] [Vite](https://vitejs.dev/): created SPA
- [X] [Material-UI](https://material-ui.com/): no Django package
- [X] [TailwindCSS](https://tailwindcss.com/): no Django package
- [X] [npm](https://www.npmjs.com/): replaced by pnpm
- [X] [yarn](https://yarnpkg.com/): replaced by pnpm
- [X] [AlpineJS](https://alpinejs.dev/): hard to comply with a strong CSP
- [ ] [React](https://react.dev/)
- [ ] [Better-nice-Select](https://kevingostomski.github.io/better-nice-select/documentation/options)

## Backend

- [X] [Django](https://www.djangoproject.com/)
- [X] [Django-pipeline](https://django-pipeline.readthedocs.io/en/stable/)
- [X] [Django debug toolbar](https://django-debug-toolbar.readthedocs.io/en/stable/)
- [X] [Poetry](https://python-poetry.org/)
- [X] [Python3.12](https://www.python.org/)
- [X] [DjangoCookieConsent](https://django-cookie-consent.readthedocs.io/en/latest/)
- [X] [Django-postman](https://django-postman.readthedocs.io/en/latest/)
- [X] [Django-allauth](https://docs.allauth.org/en/latest/)
- [ ] [Django Rest Framework](https://www.django-rest-framework.org/)
- [ ] [Django Channels](https://channels.readthedocs.io/en/stable/)
- [ ] [Gunicorn](https://gunicorn.org/)
- [ ] [Hypercorn](https://hypercorn.readthedocs.io/en/stable/)
- [ ] [Celery](https://docs.celeryproject.org/en/stable/)
- [ ] [Django-auto-complete-light](https://django-autocomplete-light.readthedocs.io/en/master/)
- [ ] [Django-htmX](https://django-htmx.readthedocs.io/en/latest/)
- [ ] [Django-components](https://django-components.readthedocs.io/en/latest/)
- [X] [Django-recaptcha](https://pypi.org/project/django-recaptcha/)
- [X] [django-ckeditor-5](https://github.com/hvlads/django-ckeditor-5)
- [X] Complete solution for ListView,
- [X] Complete solution for DetailView
- [ ] CreateView, UpdateView, DeleteView
- [ ] alert messages when the site is offline (maintenance mode)
- [ ] wait for the database to be ready
- [ ] display global messages and banners
- [ ] Error templates
- [ ] Smileys in the Editor

### Excluded

- [X] [Django-select2](https://django-select2.readthedocs.io/en/latest/): django-auto-complete-light is better

## WYSIWYG editor

- [X] [CKEditor](https://ckeditor.com/) with [django-ckeditor-5](https://github.com/hvlads/django-ckeditor-5): GPL license
- [X] [TinyMCE](https://www.tiny.cloud/) with [django-tinymce](https://django-tinymce.readthedocs.io/en/latest/): cannot use a strong CSP (unsafe-inline styles are required)
- [X] [Trix](https://trix-editor.org/) with [django-prose](https://github.com/withlogicco/django-prose): use nonce for inline styles
- [X] [summernote](https://summernote.org/) with [django-summernote](https://github.com/summernote/django-summernote): still use jQuery and cannot use a strong CSP
- [X] [Froala](https://www.froala.com/wysiwyg-editor): expensive
- [X] [ACE](https://ace.c9.io/): code editor
- [X] [Django-RichtextField](https://github.com/jaap3/django-richtextfield): use CKEditor or TinyMCE

## Specific URLs

- [X] [robots.txt](https://www.robotstxt.org/)
- [X] [humans.txt](http://humanstxt.org/)
- [X] [.well-known/change-password](https://w3c.github.io/webappsec-change-password-url/)


## HTML and web server

- [ ] [Nginx](https://www.nginx.com/)
- [ ] [Apache](https://httpd.apache.org/)
- [ ] [HTTP/2](https://http2.github.io/)
- [X] [Mozilla observatory](https://observatory.mozilla.org/)
- [X] [OpenGraph meta tags](https://ogp.me/)
- [ ] [Performances](https://web.dev/)
- [ ] [Generate a favicon](https://favicon.io/favicon-generator/)
- [X] [Favicon validation](https://realfavicongenerator.net/favicon_checker)
- [X] [HTML validation](https://html5.validator.nu/)
- [X] [OpenGraph validation](https://www.opengraph.xyz/)
- [ ] [Structured data validation](https://search.google.com/structured-data/testing-tool)
- [ ] [Webhint](https://webhint.io/)
- [ ] [Lighthouse](https://developers.google.com/web/tools/lighthouse)
- [ ] [SSL validation](https://www.ssllabs.com/ssltest/)
- [ ] [XML site map](https://www.xml-sitemaps.com/)
- [ ] [Schema.org](https://schema.org/)
CSS Validator, Link Checker, JS Validator

## DevOps

- [X] [git](https://git-scm.com/)
- [X] [Precommit](https://pre-commit.com/)
- [X] [Docker](https://www.docker.com/)
- [X] [Docker Compose](https://docs.docker.com/compose/)
- [ ] [SonarQube](https://www.sonarqube.org/)
- [ ] [Pytest](https://docs.pytest.org/en/stable/)
- [ ] [Jest](https://jestjs.io/)
- [ ] [Playwright](https://playwright.dev/)
- [X] [editorconfig](https://editorconfig.org/)
- [ ] Copyright checking
- [ ] Monitoring and alerting
- [ ] [django-probes](https://github.com/painless-software/django-probes)
- [X] [Django-prometheus](https://github.com/korfuri/django-prometheus)


## Code analysis and formatting

- [ ] Dockerfile
- [ ] HTML [DjHTML](https://github.com/rtts/djhtml)
- [X] ini
- [ ] JavaScript:  [ESlint](https://eslint.org/)
- [X] JSON
- [ ] Markdown
- [X] Python: [Ruff](https://docs.astral.sh/ruff/)
- [ ] SCSS [StyleLint](https://stylelint.io/)
- [X] TOML
- [ ] TypeScript:  [ESlint](https://eslint.org/)
- [X] YAML

### Excluded tools

- [X] [JSHint](https://jshint.com/): replaced by ESLint
- [X] [JSLint](https://www.jslint.com/): replaced by ESLint
- [X] [JSCS](https://jscs.dev/): replaced by ESLint and limited to code style
- [X] [Pylint](https://pylint.pycqa.org/): replaced by Ruff
- [X] [Flake8](https://flake8.pycqa.org/en/latest/): replaced by Ruff
- [X] [Black](https://black.readthedocs.io/en/stable/): replaced by Ruff
- [X] [isort](https://pycqa.github.io/isort/): replaced by Ruff
- [X] [PyDocStyle](https://www.pydocstyle.org/en/stable/): replaced by Ruff
- [X] [PyUpgrade](https://pypi.org/project/pyupgrade/): replaced by Ruff
- [X] [Autoflake](https://pypi.org/project/autoflake/): replaced by Ruff
- [X] [SassLint](https://www.npmjs.com/package/sass-lint): no longer maintained

## Database and storage

- [X] [PostgreSQL](https://www.postgresql.org/)
- [X] [Redis](https://redis.io/)
- [X] [minio](https://min.io/)

### Technologies

https://www.saaspegasus.com/guides/modern-javascript-for-django-developers/client-server-architectures/

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/d9pouces/df_site",
    "name": "df_site",
    "maintainer": "d9pouces",
    "docs_url": null,
    "requires_python": "<4.0,>=3.10",
    "maintainer_email": "github@19pouces.net",
    "keywords": null,
    "author": "d9pouces",
    "author_email": "github@19pouces.net",
    "download_url": "https://files.pythonhosted.org/packages/c0/63/6ec897a87e6294a5fea5ff1b3c2ab578e43df7a6e649b28c8c4c70c05401/df_site-0.1.7.tar.gz",
    "platform": null,
    "description": "df_site\n---------\n\nA single Django app that contains many features and tools to create a website.\nIt offers a template based on Bootstrap5 with the required views for:\n- login/logout (with Django-allauth and all its methods like passkeys)\n- a profile management view\n- a dark mode\n- a cookie consent banner (with DjangoCookieConsent)\n- a message app between users (django-postman)\n- a connection to websockets (django-channels and df_websockets) for pushing data to the client\n- a configurable object lists with sorting, pagination and filters (similar to the Django admin list views) integrable in any template\n- a configurable object detail view similar to the Django admin detail view\n\n## Frontend\n\n- [X] [SCSS](https://sass-lang.com/): Bootstrap uses SCSS\n- [X] [pnpm](https://pnpm.io/): easy to use, most efficient than npm and yarn\n- [X] [Bootstrap](https://getbootstrap.com/): the only CSS framework with a Django package\n- [X] [TypeScript](https://www.typescriptlang.org/)\n- [X] [Webpack](https://webpack.js.org/)\n- [X] [Node.js](https://nodejs.org/): used by webpack\n- [X] [Font-awesome](https://fontawesome.com/)\n- [X] [Dark Mode](https://developer.mozilla.org/en-US/docs/Web/CSS/@media/prefers-color-scheme)\n- [ ] [Htmx](https://htmx.org/)\n- [ ] [Select2](https://select2.org/): still use jQuery in 2024 and no real plan to remove it\n- [ ] Javascript editor\n\n### Excluded\n- [X] [Vite](https://vitejs.dev/): created SPA\n- [X] [Material-UI](https://material-ui.com/): no Django package\n- [X] [TailwindCSS](https://tailwindcss.com/): no Django package\n- [X] [npm](https://www.npmjs.com/): replaced by pnpm\n- [X] [yarn](https://yarnpkg.com/): replaced by pnpm\n- [X] [AlpineJS](https://alpinejs.dev/): hard to comply with a strong CSP\n- [ ] [React](https://react.dev/)\n- [ ] [Better-nice-Select](https://kevingostomski.github.io/better-nice-select/documentation/options)\n\n## Backend\n\n- [X] [Django](https://www.djangoproject.com/)\n- [X] [Django-pipeline](https://django-pipeline.readthedocs.io/en/stable/)\n- [X] [Django debug toolbar](https://django-debug-toolbar.readthedocs.io/en/stable/)\n- [X] [Poetry](https://python-poetry.org/)\n- [X] [Python3.12](https://www.python.org/)\n- [X] [DjangoCookieConsent](https://django-cookie-consent.readthedocs.io/en/latest/)\n- [X] [Django-postman](https://django-postman.readthedocs.io/en/latest/)\n- [X] [Django-allauth](https://docs.allauth.org/en/latest/)\n- [ ] [Django Rest Framework](https://www.django-rest-framework.org/)\n- [ ] [Django Channels](https://channels.readthedocs.io/en/stable/)\n- [ ] [Gunicorn](https://gunicorn.org/)\n- [ ] [Hypercorn](https://hypercorn.readthedocs.io/en/stable/)\n- [ ] [Celery](https://docs.celeryproject.org/en/stable/)\n- [ ] [Django-auto-complete-light](https://django-autocomplete-light.readthedocs.io/en/master/)\n- [ ] [Django-htmX](https://django-htmx.readthedocs.io/en/latest/)\n- [ ] [Django-components](https://django-components.readthedocs.io/en/latest/)\n- [X] [Django-recaptcha](https://pypi.org/project/django-recaptcha/)\n- [X] [django-ckeditor-5](https://github.com/hvlads/django-ckeditor-5)\n- [X] Complete solution for ListView,\n- [X] Complete solution for DetailView\n- [ ] CreateView, UpdateView, DeleteView\n- [ ] alert messages when the site is offline (maintenance mode)\n- [ ] wait for the database to be ready\n- [ ] display global messages and banners\n- [ ] Error templates\n- [ ] Smileys in the Editor\n\n### Excluded\n\n- [X] [Django-select2](https://django-select2.readthedocs.io/en/latest/): django-auto-complete-light is better\n\n## WYSIWYG editor\n\n- [X] [CKEditor](https://ckeditor.com/) with [django-ckeditor-5](https://github.com/hvlads/django-ckeditor-5): GPL license\n- [X] [TinyMCE](https://www.tiny.cloud/) with [django-tinymce](https://django-tinymce.readthedocs.io/en/latest/): cannot use a strong CSP (unsafe-inline styles are required)\n- [X] [Trix](https://trix-editor.org/) with [django-prose](https://github.com/withlogicco/django-prose): use nonce for inline styles\n- [X] [summernote](https://summernote.org/) with [django-summernote](https://github.com/summernote/django-summernote): still use jQuery and cannot use a strong CSP\n- [X] [Froala](https://www.froala.com/wysiwyg-editor): expensive\n- [X] [ACE](https://ace.c9.io/): code editor\n- [X] [Django-RichtextField](https://github.com/jaap3/django-richtextfield): use CKEditor or TinyMCE\n\n## Specific URLs\n\n- [X] [robots.txt](https://www.robotstxt.org/)\n- [X] [humans.txt](http://humanstxt.org/)\n- [X] [.well-known/change-password](https://w3c.github.io/webappsec-change-password-url/)\n\n\n## HTML and web server\n\n- [ ] [Nginx](https://www.nginx.com/)\n- [ ] [Apache](https://httpd.apache.org/)\n- [ ] [HTTP/2](https://http2.github.io/)\n- [X] [Mozilla observatory](https://observatory.mozilla.org/)\n- [X] [OpenGraph meta tags](https://ogp.me/)\n- [ ] [Performances](https://web.dev/)\n- [ ] [Generate a favicon](https://favicon.io/favicon-generator/)\n- [X] [Favicon validation](https://realfavicongenerator.net/favicon_checker)\n- [X] [HTML validation](https://html5.validator.nu/)\n- [X] [OpenGraph validation](https://www.opengraph.xyz/)\n- [ ] [Structured data validation](https://search.google.com/structured-data/testing-tool)\n- [ ] [Webhint](https://webhint.io/)\n- [ ] [Lighthouse](https://developers.google.com/web/tools/lighthouse)\n- [ ] [SSL validation](https://www.ssllabs.com/ssltest/)\n- [ ] [XML site map](https://www.xml-sitemaps.com/)\n- [ ] [Schema.org](https://schema.org/)\nCSS Validator, Link Checker, JS Validator\n\n## DevOps\n\n- [X] [git](https://git-scm.com/)\n- [X] [Precommit](https://pre-commit.com/)\n- [X] [Docker](https://www.docker.com/)\n- [X] [Docker Compose](https://docs.docker.com/compose/)\n- [ ] [SonarQube](https://www.sonarqube.org/)\n- [ ] [Pytest](https://docs.pytest.org/en/stable/)\n- [ ] [Jest](https://jestjs.io/)\n- [ ] [Playwright](https://playwright.dev/)\n- [X] [editorconfig](https://editorconfig.org/)\n- [ ] Copyright checking\n- [ ] Monitoring and alerting\n- [ ] [django-probes](https://github.com/painless-software/django-probes)\n- [X] [Django-prometheus](https://github.com/korfuri/django-prometheus)\n\n\n## Code analysis and formatting\n\n- [ ] Dockerfile\n- [ ] HTML [DjHTML](https://github.com/rtts/djhtml)\n- [X] ini\n- [ ] JavaScript:  [ESlint](https://eslint.org/)\n- [X] JSON\n- [ ] Markdown\n- [X] Python: [Ruff](https://docs.astral.sh/ruff/)\n- [ ] SCSS [StyleLint](https://stylelint.io/)\n- [X] TOML\n- [ ] TypeScript:  [ESlint](https://eslint.org/)\n- [X] YAML\n\n### Excluded tools\n\n- [X] [JSHint](https://jshint.com/): replaced by ESLint\n- [X] [JSLint](https://www.jslint.com/): replaced by ESLint\n- [X] [JSCS](https://jscs.dev/): replaced by ESLint and limited to code style\n- [X] [Pylint](https://pylint.pycqa.org/): replaced by Ruff\n- [X] [Flake8](https://flake8.pycqa.org/en/latest/): replaced by Ruff\n- [X] [Black](https://black.readthedocs.io/en/stable/): replaced by Ruff\n- [X] [isort](https://pycqa.github.io/isort/): replaced by Ruff\n- [X] [PyDocStyle](https://www.pydocstyle.org/en/stable/): replaced by Ruff\n- [X] [PyUpgrade](https://pypi.org/project/pyupgrade/): replaced by Ruff\n- [X] [Autoflake](https://pypi.org/project/autoflake/): replaced by Ruff\n- [X] [SassLint](https://www.npmjs.com/package/sass-lint): no longer maintained\n\n## Database and storage\n\n- [X] [PostgreSQL](https://www.postgresql.org/)\n- [X] [Redis](https://redis.io/)\n- [X] [minio](https://min.io/)\n\n### Technologies\n\nhttps://www.saaspegasus.com/guides/modern-javascript-for-django-developers/client-server-architectures/\n",
    "bugtrack_url": null,
    "license": "CECILL-B",
    "summary": "More batteries to Django",
    "version": "0.1.7",
    "project_urls": {
        "Documentation": "https://github.com/d9pouces/df_site",
        "Homepage": "https://github.com/d9pouces/df_site",
        "Repository": "https://github.com/d9pouces/df_site"
    },
    "split_keywords": [],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "e0cb0843f8e2fba635ee3e6332c7819d9285cfafe93683cdf0dbe15e8eab4d44",
                "md5": "fe50a2754813c45b00eaba2fd51f3ea8",
                "sha256": "1a01de820ed32c543e3716a5d71e67b62dec0fa64764d7618b815313ebdcb5b4"
            },
            "downloads": -1,
            "filename": "df_site-0.1.7-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "fe50a2754813c45b00eaba2fd51f3ea8",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": "<4.0,>=3.10",
            "size": 3935767,
            "upload_time": "2025-01-25T14:15:20",
            "upload_time_iso_8601": "2025-01-25T14:15:20.472306Z",
            "url": "https://files.pythonhosted.org/packages/e0/cb/0843f8e2fba635ee3e6332c7819d9285cfafe93683cdf0dbe15e8eab4d44/df_site-0.1.7-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "c0636ec897a87e6294a5fea5ff1b3c2ab578e43df7a6e649b28c8c4c70c05401",
                "md5": "16e59ce4ecef0db53fc05b7fbb282b3a",
                "sha256": "58026029f8bbfef7dd633a9e494d8d67e54a4c1eab87181ca2e28320f90a199e"
            },
            "downloads": -1,
            "filename": "df_site-0.1.7.tar.gz",
            "has_sig": false,
            "md5_digest": "16e59ce4ecef0db53fc05b7fbb282b3a",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": "<4.0,>=3.10",
            "size": 3727675,
            "upload_time": "2025-01-25T14:15:23",
            "upload_time_iso_8601": "2025-01-25T14:15:23.575392Z",
            "url": "https://files.pythonhosted.org/packages/c0/63/6ec897a87e6294a5fea5ff1b3c2ab578e43df7a6e649b28c8c4c70c05401/df_site-0.1.7.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-01-25 14:15:23",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "d9pouces",
    "github_project": "df_site",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "tox": true,
    "lcname": "df_site"
}
        
Elapsed time: 1.11792s