{"id":41051271,"url":"https://github.com/brunodavi/fast-todo","last_synced_at":"2026-01-22T11:27:41.873Z","repository":{"id":214048993,"uuid":"735571254","full_name":"brunodavi/fast-todo","owner":"brunodavi","description":"Gerenciador de tarefas com boas práticas do FastAPI","archived":false,"fork":false,"pushed_at":"2024-02-21T23:08:34.000Z","size":239,"stargazers_count":0,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-02-22T22:43:56.310Z","etag":null,"topics":["fastapi","good-practices","portuguese","python3","todolist"],"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/brunodavi.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}},"created_at":"2023-12-25T11:53:38.000Z","updated_at":"2024-02-22T22:43:56.311Z","dependencies_parsed_at":"2023-12-31T18:20:07.351Z","dependency_job_id":"880cad56-b300-4fac-b456-f5aba8af839a","html_url":"https://github.com/brunodavi/fast-todo","commit_stats":null,"previous_names":["brunodavi/fast-todo"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/brunodavi/fast-todo","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brunodavi%2Ffast-todo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brunodavi%2Ffast-todo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brunodavi%2Ffast-todo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brunodavi%2Ffast-todo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/brunodavi","download_url":"https://codeload.github.com/brunodavi/fast-todo/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brunodavi%2Ffast-todo/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28662057,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-22T01:17:37.254Z","status":"online","status_checked_at":"2026-01-22T02:00:07.137Z","response_time":144,"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":["fastapi","good-practices","portuguese","python3","todolist"],"created_at":"2026-01-22T11:27:41.807Z","updated_at":"2026-01-22T11:27:41.865Z","avatar_url":"https://github.com/brunodavi.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Fast Todo\n\n![imagem-do-projeto](images/imagem-do-projeto.png)\n\nGerenciador de tarefas com boas práticas do FastAPI\n\n\u003e **Nota:** Esse projeto foi feito com base no\n\u003e [Curso Básico de FastAPI do Zero](https://fastapidozero.dunossauro.com)\n\n## Como Usar\n\nInicie o projeto com o `docker-compose`\n\n```sh\ndocker-compose up\n```\n\nAo iniciar o projeto vá em http://localhost:8000/docs para ver toda a sua documentação\n\nPassos iniciais:\n\n1. Crie um usuário em `POST /users/ Create User`\n2. Logue com esse usuário clicando em `Authorize`\n3. Quando logado o usuário pode gerenciar suas informações e tarefas\n\n\u003e **Obs:** O `username` é o `email`\n\u003e _Exemplo:_\n\u003e \n\u003e username:\n\u003e user@example.com\n\u003e \n\u003e password:\n\u003e user12345\n\n## Boas Práticas\n\n- [x] Desenvolvimento baseado em testes (TDD)\n- [x] Injeção de dependências\n- [x] Banco de dados evolutivo (Migrations)\n- [x] ORM com SQLAlchemy\n- [x] Conteinerização do Projeto\n- [x] Integração Continua (CI/CD)\n- [x] Deploy no Fly.io\n\n## Contribua com o desenvolvimento\n\n### Dependências\n\n- [Python3.11.6](https://www.python.org/downloads)\n  - Pode ser usado com o [pyenv](https://github.com/pyenv/pyenv)\n- [Poetry](https://python-poetry.org/docs/#installation)\n  - Gerencia o projeto e suas dependências\n- [Docker](https://www.docker.com)\n  - Gerencia o ambiente da aplicação\n\n### Iniciar aplicação em desenvolvimento\n\n```shell\n# Crie o .env com base no .env.example e o modifique\ncp .env.example .env\n\n# Instale as dependências do projeto\npoetry install\n\n# Entre no ambiente virtual (.venv)\npoetry shell\n\n# Crie banco de dados e suas tabelas\ntask db_init\n\n# Inicie o projeto\ntask run\n```\n\n### Automação de tarefas\n\n```shell\n# Inicia a verificação de estilo do código\ntask lint\n\n# Inicia as correções do estilo do código\ntask fix\n\n# Inicia os testes\ntask test\n\n# Gera um arquivo de cobertura de testes em html\ntask post_test\n\n# Cria uma nova migração\ntask db_migration -m '\u003cmensagem\u003e'\n\n# Cria o banco de dados\ntask db_init\n\n# Atualiza a próxima migração\ntask db_up +1\n\n# Retorna a migração anterior\ntask db_down -1\n\n# Inicia o projeto\ntask run\n```\n\n### Git Flow\n\nUtilizando alguns padrões do\n[conventional commits em português](https://www.conventionalcommits.org/pt-br/v1.0.0)\n\n- Commits\n  - Escopo: `\u003cação\u003e: \u003cmensagem\u003e`\n  - Exemplo: `feat: criação de crud em /users`\n- Branches\n  - Escopo: `\u003cação\u003e-\u003cusuário\u003e-\u003cmensagem\u003e`\n  - Exemplo: `feat-brunodavi-crud-da-rota-users`\n- Pull Requests\n  - Escopo: `[ \u003cAÇÃO\u003e ] \u003cTitulo\u003e`\n  - Exemplo:`[ FEAT ] Criação de CRUD na rota de usuários`\n- Issues\n  - Regras: \n    - 1. Veja se o problema já foi resolvido\n    - 2. Descreva o que aconteceu e o que você já tentou fazer\n  - Escopo: `\u003cTitulo\u003e`\n  - Exemplo: `Ouve um problema na criação de usuários`\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbrunodavi%2Ffast-todo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbrunodavi%2Ffast-todo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbrunodavi%2Ffast-todo/lists"}