https://github.com/dellabeneta/python-peoples-crud
Aplicação simples de cadastros de pessoas genéricas para estudos gerais de Devops.
https://github.com/dellabeneta/python-peoples-crud
dellabeneta devops docker python react terraform
Last synced: 1 day ago
JSON representation
Aplicação simples de cadastros de pessoas genéricas para estudos gerais de Devops.
- Host: GitHub
- URL: https://github.com/dellabeneta/python-peoples-crud
- Owner: dellabeneta
- License: mit
- Created: 2024-12-08T17:38:54.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2024-12-11T18:51:24.000Z (over 1 year ago)
- Last Synced: 2025-02-07T09:25:35.813Z (about 1 year ago)
- Topics: dellabeneta, devops, docker, python, react, terraform
- Language: JavaScript
- Homepage: https://linktr.ee/dellabeneta
- Size: 114 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
## Status do Projeto

[](https://github.com/dellabeneta/python-peoples-crud/actions/workflows/trivy-scan.yml)





# Sistema de Cadastro de Pessoas
## Descrição do Projeto
Um sistema completo de CRUD de pessoas com autenticação JWT, frontend em React, backend em FastAPI e banco de dados PostgreSQL.
## Pré-requisitos
- Docker
- Docker Compose
- Make (opcional, mas recomendado)
## Configuração Local
### 1. Clonar o Repositório
```bash
git clone https://github.com/dellabeneta/python-peoples-crud.git
cd python-peoples-crud
```
### 2. Configurar Variáveis de Ambiente
```bash
cp .env.example .env
```
### 3. Editar o `.env`
Abra o arquivo `.env` e configure as variáveis conforme necessário:
```
# Configurações do Banco
POSTGRES_PASSWORD=sua_senha_postgres
DATABASE_URL=postgresql://postgres:sua_senha_postgres@postgres:5432/sistema_cadastro
# Configurações JWT
JWT_SECRET_KEY=sua_chave_jwt_segura
# Configurações do Admin (opcional)
ADMIN_USERNAME=seunome
ADMIN_PASSWORD=sua_senha_admin
ADMIN_EMAIL=seu_email@exemplo.com
```
### 4. Iniciar o Projeto
#### Usando Make (Recomendado)
```bash
make up
```
#### Ou com Docker Compose Diretamente
```bash
docker compose -f config/docker-compose.yml --env-file .env up -d --build
```
## Acessar a Aplicação
- **Frontend**: http://localhost:5173
- **Backend**: http://localhost:8000
- **API Docs**: http://localhost:8000/docs
## Parar o Projeto
#### Usando Make
```bash
make down
```
#### Ou com Docker Compose
```bash
docker compose -f config/docker-compose.yml down
```
## Dicas Importantes
- Sempre use o `.env.example` como referência
- Não commite seu `.env` para o repositório
- As senhas padrão são fracas, então sempre personalize
- A primeira inicialização pode levar alguns minutos para baixar as imagens e configurar
## Credenciais Padrão
Se não configurar no `.env`, use:
- **Usuário**: admin
- **Senha**: admin
- **Email**: admin@example.com
## Tecnologias Utilizadas
- **Frontend**: React
- **Backend**: FastAPI
- **Banco de Dados**: PostgreSQL
- **Autenticação**: JWT
- **Containerização**: Docker
## Tree do Projeto, diretórios e aquivos:
```
della@fedora:~/projetos$ tree
.
└── python-peoples-crud
├── backend
│ ├── app
│ │ ├── core
│ │ │ ├── auth.py
│ │ │ ├── database.py
│ │ │ └── __pycache__
│ │ │ ├── auth.cpython-311.pyc
│ │ │ └── database.cpython-311.pyc
│ │ ├── main.py
│ │ ├── models
│ │ │ ├── pessoa.py
│ │ │ ├── __pycache__
│ │ │ │ ├── pessoa.cpython-311.pyc
│ │ │ │ └── user.cpython-311.pyc
│ │ │ └── user.py
│ │ ├── __pycache__
│ │ │ └── main.cpython-311.pyc
│ │ ├── routes
│ │ │ ├── auth.py
│ │ │ ├── pessoa.py
│ │ │ └── __pycache__
│ │ │ ├── auth.cpython-311.pyc
│ │ │ └── pessoa.cpython-311.pyc
│ │ └── schemas
│ │ ├── pagination.py
│ │ ├── pessoa.py
│ │ ├── __pycache__
│ │ │ ├── pagination.cpython-311.pyc
│ │ │ ├── pessoa.cpython-311.pyc
│ │ │ └── user.cpython-311.pyc
│ │ └── user.py
│ ├── Dockerfile
│ ├── entrypoint.sh
│ ├── requirements.txt
│ ├── scripts
│ │ ├── create_admin_simple.py
│ │ ├── create_fake_pessoas.py
│ │ ├── init.sh
│ │ ├── verify_admin.py
│ │ └── wait-for-postgres.py
│ └── tests
├── docker-compose.yml
├── docker-nuke.sh
├── frontend
│ ├── Dockerfile
│ ├── eslint.config.js
│ ├── index.html
│ ├── node_modules
│ ├── package.json
│ ├── package-lock.json
│ ├── public
│ │ └── vite.svg
│ ├── src
│ │ ├── App.jsx
│ │ ├── components
│ │ │ ├── Header.jsx
│ │ │ ├── PrivateRoute.jsx
│ │ │ └── ThemeToggle.jsx
│ │ ├── contexts
│ │ │ └── AuthContext.jsx
│ │ ├── main.jsx
│ │ ├── pages
│ │ │ ├── CadastrarPessoa.jsx
│ │ │ ├── EditarPessoa.jsx
│ │ │ ├── ListaPessoas.jsx
│ │ │ └── Login.jsx
│ │ └── services
│ │ └── api.js
│ └── vite.config.js
├── LICENSE
├── Makefile
├── notas
├── README.md
├── scripts
│ └── environment.sh
└── terraform
├── backend.tf
├── database-cluster.tf.disabled
├── droplet.tf
├── networking.tf
├── outputs.tf
├── provider.tf
└── ssh-key.tf
25 directories, 60 files
```
## Contribuição
Contribuições são bem-vindas! Sinta-se à vontade para abrir um pull request ou relatar problemas.
## Licença
Este projeto está licenciado sob a [MIT License](LICENSE).
## FAQ
- **Como posso contribuir?**
- Sinta-se à vontade para abrir um pull request com suas alterações ou sugestões.
- **Onde posso encontrar mais informações?**
- Consulte a documentação do projeto ou entre em contato.
## Roadmap
- Adicionar mais funcionalidades de autenticação.
- Melhorar a interface do usuário.
- Implementar testes automatizados.