{"id":22923598,"url":"https://github.com/dellabeneta/python-peoples-crud","last_synced_at":"2026-04-11T00:12:28.974Z","repository":{"id":268086037,"uuid":"900406423","full_name":"dellabeneta/python-peoples-crud","owner":"dellabeneta","description":"Aplicação simples de cadastros de pessoas genéricas para estudos gerais de Devops.","archived":false,"fork":false,"pushed_at":"2024-12-11T18:51:24.000Z","size":117,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-07T09:25:35.813Z","etag":null,"topics":["dellabeneta","devops","docker","python","react","terraform"],"latest_commit_sha":null,"homepage":"https://linktr.ee/dellabeneta","language":"JavaScript","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/dellabeneta.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":"2024-12-08T17:38:54.000Z","updated_at":"2025-01-09T20:37:29.000Z","dependencies_parsed_at":"2024-12-14T08:16:10.161Z","dependency_job_id":"0b17fd99-ddae-42fc-a1a0-d600ab26c1eb","html_url":"https://github.com/dellabeneta/python-peoples-crud","commit_stats":null,"previous_names":["dellabeneta/python-peoples-crud"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dellabeneta%2Fpython-peoples-crud","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dellabeneta%2Fpython-peoples-crud/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dellabeneta%2Fpython-peoples-crud/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dellabeneta%2Fpython-peoples-crud/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dellabeneta","download_url":"https://codeload.github.com/dellabeneta/python-peoples-crud/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246659618,"owners_count":20813331,"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":["dellabeneta","devops","docker","python","react","terraform"],"created_at":"2024-12-14T08:16:07.013Z","updated_at":"2025-12-30T23:13:32.186Z","avatar_url":"https://github.com/dellabeneta.png","language":"JavaScript","readme":"## Status do Projeto\n\n![GitHub Workflow Status](https://img.shields.io/github/actions/workflow/status/dellabeneta/python-peoples-crud/build-and-push.yml?label=Build)\n[![Trivy Scan](https://github.com/dellabeneta/python-peoples-crud/actions/workflows/trivy-scan.yml/badge.svg)](https://github.com/dellabeneta/python-peoples-crud/actions/workflows/trivy-scan.yml)\n![GitHub top language](https://img.shields.io/github/languages/top/dellabeneta/python-peoples-crud)\n\n\n![Docker Pulls](https://img.shields.io/docker/pulls/dellabeneta/python-peoples-crud-backend)\n![Docker Image Version](https://img.shields.io/docker/v/dellabeneta/python-peoples-crud-backend/latest)\n![Terraform Version](https://img.shields.io/badge/Terraform-v1.10.1-blue)\n\n![GitHub License](https://img.shields.io/github/license/dellabeneta/python-peoples-crud)\n\n# Sistema de Cadastro de Pessoas\n\n## Descrição do Projeto\nUm sistema completo de CRUD de pessoas com autenticação JWT, frontend em React, backend em FastAPI e banco de dados PostgreSQL.\n\n## Pré-requisitos\n- Docker\n- Docker Compose\n- Make (opcional, mas recomendado)\n\n## Configuração Local\n\n### 1. Clonar o Repositório\n```bash\ngit clone https://github.com/dellabeneta/python-peoples-crud.git\ncd python-peoples-crud\n```\n\n### 2. Configurar Variáveis de Ambiente\n```bash\ncp .env.example .env\n```\n\n### 3. Editar o `.env`\nAbra o arquivo `.env` e configure as variáveis conforme necessário:\n\n```\n# Configurações do Banco\nPOSTGRES_PASSWORD=sua_senha_postgres\nDATABASE_URL=postgresql://postgres:sua_senha_postgres@postgres:5432/sistema_cadastro\n\n# Configurações JWT\nJWT_SECRET_KEY=sua_chave_jwt_segura\n\n# Configurações do Admin (opcional)\nADMIN_USERNAME=seunome\nADMIN_PASSWORD=sua_senha_admin\nADMIN_EMAIL=seu_email@exemplo.com\n```\n\n### 4. Iniciar o Projeto\n\n#### Usando Make (Recomendado)\n```bash\nmake up\n```\n\n#### Ou com Docker Compose Diretamente\n```bash\ndocker compose -f config/docker-compose.yml --env-file .env up -d --build\n```\n\n## Acessar a Aplicação\n\n- **Frontend**: http://localhost:5173\n- **Backend**: http://localhost:8000\n- **API Docs**: http://localhost:8000/docs\n\n## Parar o Projeto\n\n#### Usando Make\n```bash\nmake down\n```\n\n#### Ou com Docker Compose\n```bash\ndocker compose -f config/docker-compose.yml down\n```\n\n## Dicas Importantes\n\n- Sempre use o `.env.example` como referência\n- Não commite seu `.env` para o repositório\n- As senhas padrão são fracas, então sempre personalize\n- A primeira inicialização pode levar alguns minutos para baixar as imagens e configurar\n\n## Credenciais Padrão\n\nSe não configurar no `.env`, use:\n- **Usuário**: admin\n- **Senha**: admin\n- **Email**: admin@example.com\n\n## Tecnologias Utilizadas\n\n- **Frontend**: React\n- **Backend**: FastAPI\n- **Banco de Dados**: PostgreSQL\n- **Autenticação**: JWT\n- **Containerização**: Docker\n\n## Tree do Projeto, diretórios e aquivos:\n\n```\ndella@fedora:~/projetos$ tree\n.\n└── python-peoples-crud\n    ├── backend\n    │   ├── app\n    │   │   ├── core\n    │   │   │   ├── auth.py\n    │   │   │   ├── database.py\n    │   │   │   └── __pycache__\n    │   │   │       ├── auth.cpython-311.pyc\n    │   │   │       └── database.cpython-311.pyc\n    │   │   ├── main.py\n    │   │   ├── models\n    │   │   │   ├── pessoa.py\n    │   │   │   ├── __pycache__\n    │   │   │   │   ├── pessoa.cpython-311.pyc\n    │   │   │   │   └── user.cpython-311.pyc\n    │   │   │   └── user.py\n    │   │   ├── __pycache__\n    │   │   │   └── main.cpython-311.pyc\n    │   │   ├── routes\n    │   │   │   ├── auth.py\n    │   │   │   ├── pessoa.py\n    │   │   │   └── __pycache__\n    │   │   │       ├── auth.cpython-311.pyc\n    │   │   │       └── pessoa.cpython-311.pyc\n    │   │   └── schemas\n    │   │       ├── pagination.py\n    │   │       ├── pessoa.py\n    │   │       ├── __pycache__\n    │   │       │   ├── pagination.cpython-311.pyc\n    │   │       │   ├── pessoa.cpython-311.pyc\n    │   │       │   └── user.cpython-311.pyc\n    │   │       └── user.py\n    │   ├── Dockerfile\n    │   ├── entrypoint.sh\n    │   ├── requirements.txt\n    │   ├── scripts\n    │   │   ├── create_admin_simple.py\n    │   │   ├── create_fake_pessoas.py\n    │   │   ├── init.sh\n    │   │   ├── verify_admin.py\n    │   │   └── wait-for-postgres.py\n    │   └── tests\n    ├── docker-compose.yml\n    ├── docker-nuke.sh\n    ├── frontend\n    │   ├── Dockerfile\n    │   ├── eslint.config.js\n    │   ├── index.html\n    │   ├── node_modules\n    │   ├── package.json\n    │   ├── package-lock.json\n    │   ├── public\n    │   │   └── vite.svg\n    │   ├── src\n    │   │   ├── App.jsx\n    │   │   ├── components\n    │   │   │   ├── Header.jsx\n    │   │   │   ├── PrivateRoute.jsx\n    │   │   │   └── ThemeToggle.jsx\n    │   │   ├── contexts\n    │   │   │   └── AuthContext.jsx\n    │   │   ├── main.jsx\n    │   │   ├── pages\n    │   │   │   ├── CadastrarPessoa.jsx\n    │   │   │   ├── EditarPessoa.jsx\n    │   │   │   ├── ListaPessoas.jsx\n    │   │   │   └── Login.jsx\n    │   │   └── services\n    │   │       └── api.js\n    │   └── vite.config.js\n    ├── LICENSE\n    ├── Makefile\n    ├── notas\n    ├── README.md\n    ├── scripts\n    │   └── environment.sh\n    └── terraform\n        ├── backend.tf\n        ├── database-cluster.tf.disabled\n        ├── droplet.tf\n        ├── networking.tf\n        ├── outputs.tf\n        ├── provider.tf\n        └── ssh-key.tf\n\n25 directories, 60 files\n```\n\n## Contribuição\n\nContribuições são bem-vindas! Sinta-se à vontade para abrir um pull request ou relatar problemas.\n\n## Licença\n\nEste projeto está licenciado sob a [MIT License](LICENSE).\n\n## FAQ\n- **Como posso contribuir?**\n  - Sinta-se à vontade para abrir um pull request com suas alterações ou sugestões.\n\n- **Onde posso encontrar mais informações?**\n  - Consulte a documentação do projeto ou entre em contato.\n\n## Roadmap\n- Adicionar mais funcionalidades de autenticação.\n- Melhorar a interface do usuário.\n- Implementar testes automatizados.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdellabeneta%2Fpython-peoples-crud","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdellabeneta%2Fpython-peoples-crud","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdellabeneta%2Fpython-peoples-crud/lists"}