{"id":26295581,"url":"https://github.com/habedi/template-web-app-flask","last_synced_at":"2025-10-28T10:39:35.612Z","repository":{"id":282475518,"uuid":"948419761","full_name":"habedi/template-web-app-flask","owner":"habedi","description":"A feature-rich Flask web application template 🐍","archived":false,"fork":false,"pushed_at":"2025-08-25T18:20:02.000Z","size":48,"stargazers_count":20,"open_issues_count":1,"forks_count":2,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-08-25T18:28:49.017Z","etag":null,"topics":["flask","flask-application","python","template-project","web-application","web-development"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/habedi.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","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,"zenodo":null}},"created_at":"2025-03-14T09:58:54.000Z","updated_at":"2025-07-22T23:11:26.000Z","dependencies_parsed_at":"2025-03-14T21:37:16.904Z","dependency_job_id":"09d142d1-3029-46b1-9866-e67abafd68e9","html_url":"https://github.com/habedi/template-web-app-flask","commit_stats":null,"previous_names":["habedi/template-web-app-flask"],"tags_count":0,"template":true,"template_full_name":"habedi/template-python-library","purl":"pkg:github/habedi/template-web-app-flask","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/habedi%2Ftemplate-web-app-flask","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/habedi%2Ftemplate-web-app-flask/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/habedi%2Ftemplate-web-app-flask/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/habedi%2Ftemplate-web-app-flask/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/habedi","download_url":"https://codeload.github.com/habedi/template-web-app-flask/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/habedi%2Ftemplate-web-app-flask/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":281425551,"owners_count":26499030,"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","status":"online","status_checked_at":"2025-10-28T02:00:06.022Z","response_time":60,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["flask","flask-application","python","template-project","web-application","web-development"],"created_at":"2025-03-15T04:14:26.817Z","updated_at":"2025-10-28T10:39:35.607Z","avatar_url":"https://github.com/habedi.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"## A Flask Web Application Template\n\n[![Tests](https://img.shields.io/github/actions/workflow/status/habedi/template-web-app-flask/tests.yml?label=tests\u0026style=flat\u0026labelColor=282c34\u0026logo=github)](https://github.com/habedi/template-web-app-flask/actions/workflows/tests.yml)\n[![Code Coverage](https://img.shields.io/codecov/c/github/habedi/template-web-app-flask?style=flat\u0026labelColor=282c34\u0026logo=codecov)](https://codecov.io/gh/habedi/template-web-app-flask)\n[![CodeFactor](https://img.shields.io/codefactor/grade/github/habedi/template-web-app-flask?style=flat\u0026labelColor=282c34\u0026logo=codefactor)](https://www.codefactor.io/repository/github/habedi/template-web-app-flask)\n[![Python version](https://img.shields.io/badge/python-%3E=3.10-3776ab?style=flat\u0026labelColor=282c34\u0026logo=python)](https://github.com/habedi/template-web-app-flask)\n[![Docs](https://img.shields.io/badge/docs-latest-8ca0d7?style=flat\u0026labelColor=282c34\u0026logo=readthedocs)](https://github.com/habedi/template-web-app-flask/blob/main/docs/README.md)\n[![License](https://img.shields.io/badge/license-MIT-00acc1?style=flat\u0026labelColor=282c34\u0026logo=open-source-initiative)](https://github.com/habedi/template-web-app-flask/blob/main/LICENSE)\n\nThis is a template for building [Flask](https://flask.palletsprojects.com/en/stable/) web applications.\nIt provides many useful features right out of the box, including user authentication, database migrations,\nand modular blueprints to help you quickly get started on your projects.\nI share it here in case it might be useful to others.\n\n### Features\n\n- Minimalistic template for building Flask web applications\n- Modular blueprint-based structure for easy project organization\n- Pre-configured settings for development, testing, and production environments\n- Pre-configured GitHub Actions for automated testing and linting\n- Makefile for managing the development workflow (testing, linting, database migrations, containerization, etc.)\n- Poetry-based dependency management for a modern Python workflow\n- Large collection of pre-installed Flask extensions (plugins):\n    - Security \u0026 Authentication\n        - Flask-Login: User login and session management\n        - Flask-WTF: CSRF protection, form validation, and file uploads\n        - Flask-Talisman: HTTP security headers (CSP, HSTS, etc.)\n        - Flask-Limiter: Rate limiting support to prevent abuse\n    - Database \u0026 Caching\n        - Flask-SQLAlchemy: ORM support for working with databases\n        - Flask-Migrate: Database migrations with Alembic\n        - Flask-Caching: Adds caching support for improved performance\n        - Flask-SQLAlchemy-Cache: Adds caching to SQLAlchemy queries\n        - SQLAlchemy-Utils: Extra utilities for SQLAlchemy (UUIDs, JSON fields, etc.)\n    - API \u0026 Real-Time Communication\n        - Flask-RESTful: REST API support for Flask applications\n        - Flask-GraphQL: GraphQL support using Graphene\n        - Flask-SocketIO: WebSocket support for real-time applications\n        - Flask-APScheduler: Background job scheduling (cron-like tasks)\n        - Flask-HTMX: Enables dynamic content updates with minimal JavaScript\n    - Frontend \u0026 UI\n        - Bootstrap-Flask: Rendering Flask data into Bootstrap HTML using Jinja macros\n        - Flask-Themes: Support for multiple UI themes\n        - Flask-Flatpages: Static page rendering (Markdown, reStructuredText, etc.)\n        - Flask-Dropzone: Drag-and-drop file uploads with preview support\n    - File Handling \u0026 Misc Utilities\n        - Flask-Reuploaded: Maintained fork of Flask-Uploads for file management\n        - Flask-Mail: Email sending support (e.g., password resets, notifications)\n        - Flask-Gravatar: Automatic Gravatar integration\n        - Flask-Compress: Gzip/Brotli compression for faster responses\n        - Flask-Injector: Dependency injection for better modularity\n\n### Getting Started\n\nInstall the required dependencies using [Poetry](https://python-poetry.org/):\n\n```shell\n# Install the required system dependencies like GNU Make, Pip, and Docker (for Debian-based systems)\nsudo sudo apt-get install make python3-pip docker.io docker-compose\n\n# Install Poetry (version 2.0 or higher)\npip install poetry\n\n# Install the Python dependencies (must be run in the project root directory)\npoetry install --no-root\n\n# Activate the Poetry environment\npoetry env activate\n```\n\nCheck out the [Makefile](Makefile) for available commands to manage the development workflow of the project.\n\n```shell\n# Show available commands in the Makefile\nmake help\n```\n\nYou can put the environment variables in a `.env` file in the project root directory to be loaded on startup.\nSee the [.env.example](.env.example) file for an example.\n\n```shell\n# Create a new .env file\ncp .env.example .env\n```\n\n\u003e [!NOTE]\n\u003e The `.env` file normally should not be committed to the repository, so it is in the `.gitignore` file by default.\n\n### Contributing\n\nSee [CONTRIBUTING.md](CONTRIBUTING.md) for details on how to make a contribution.\n\n### License\n\nThis project is licensed under the terms of the MIT license ([LICENSE](LICENSE) or https://opensource.org/licenses/MIT).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhabedi%2Ftemplate-web-app-flask","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhabedi%2Ftemplate-web-app-flask","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhabedi%2Ftemplate-web-app-flask/lists"}