{"id":15660382,"url":"https://github.com/robertoprevato/aiohttp-three-template","last_synced_at":"2025-05-05T20:54:54.953Z","repository":{"id":90868187,"uuid":"72516090","full_name":"RobertoPrevato/aiohttp-three-template","owner":"RobertoPrevato","description":"Project template for Python aiohttp three-tier web applications","archived":false,"fork":false,"pushed_at":"2016-11-11T09:59:08.000Z","size":842,"stargazers_count":20,"open_issues_count":0,"forks_count":3,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-03-30T23:31:42.527Z","etag":null,"topics":["aiohttp","aiohttp-server","python","python3"],"latest_commit_sha":null,"homepage":null,"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/RobertoPrevato.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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":"2016-11-01T08:05:13.000Z","updated_at":"2025-03-17T20:33:50.000Z","dependencies_parsed_at":null,"dependency_job_id":"33c1f2f7-913b-4b89-93a9-c68ad4f7972d","html_url":"https://github.com/RobertoPrevato/aiohttp-three-template","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/RobertoPrevato%2Faiohttp-three-template","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RobertoPrevato%2Faiohttp-three-template/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RobertoPrevato%2Faiohttp-three-template/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RobertoPrevato%2Faiohttp-three-template/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/RobertoPrevato","download_url":"https://codeload.github.com/RobertoPrevato/aiohttp-three-template/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252576835,"owners_count":21770720,"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":["aiohttp","aiohttp-server","python","python3"],"created_at":"2024-10-03T13:21:23.864Z","updated_at":"2025-05-05T20:54:54.932Z","avatar_url":"https://github.com/RobertoPrevato.png","language":"Python","readme":"# aiohttp-three-template\nProject template for three-tier web applications using Python aiohttp for the presentation layer.\n\n[![Homepage](https://robertoprevato.github.io/demos/aiohttp-template/homepage.png)](https://robertoprevato.github.io/demos/aiohttp-template/homepage.png)\n\n## Project template features\n* Project skeleton ready to use, to start a three tier web application using [aiohttp](http://aiohttp.readthedocs.io/en/stable/web.html) for its presentation layer.\n* Strategy to organize the application into areas (e.g. public, admin, etc.).\n* Authentication and authorization strategies.\n* Server side localization strategy (e.g. supported cultures by application area, culture code in routes, etc.).\n* Culture code in url route; logic to validate culture and redirect when a request hits a non supported culture.\n* Code organization to use YAML configuration file for the application.\n* Database based session management, supporting anonymous users sessions and storing client information (user-agent).\n* Antiforgery token validation (session based, dual token technique; for AJAX requests and regular form posts).\n* Instructions for PostgreSQL setup.\n* Script to create PostgreSQL tables for accounts, sessions, login attempts (public area and administrative area).\n* Strategy to use secure cookies (HTTPS only) by configuration file.\n* Strategy to show or hide error details by configuration.\n* Strategy to activate / deactivate serving of static files by configuration file.\n* Strategy to force refresh of clients cache (JavaScript and CSS files) by configuration file.\n* Integration with Google Analytics, by configuration file.\n\n## Documentation\n\n* [How to set up the development environment.](https://github.com/RobertoPrevato/aiohttp-three-template/wiki/Preparing-the-environment)\n* [How to set up a PostgreSQL instance.](https://github.com/RobertoPrevato/aiohttp-three-template/wiki/PostgreSQL-setup)\n* [How to bundle and minify CSS and JavaScript files.](https://github.com/RobertoPrevato/aiohttp-three-template/wiki/Bundling-and-minification)\n\n## Why exactly PostgreSQL?\nPostgreSQL seems to be the best supported DBMS for use with the latest versions of Python and its features for concurrency (asyncio), including the convenient async / await syntax.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frobertoprevato%2Faiohttp-three-template","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frobertoprevato%2Faiohttp-three-template","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frobertoprevato%2Faiohttp-three-template/lists"}