Mini-projeto em Python para validar a força de senhas por meio de uma interface de linha de comando (CLI).
O projeto foi desenvolvido com foco em boas práticas de engenharia de software, incluindo separação de responsabilidades, testes automatizados, documentação e organização de repositório.
O validador verifica se a senha possui:
- pelo menos 8 caracteres;
- pelo menos uma letra maiúscula;
- pelo menos uma letra minúscula;
- pelo menos um número;
- pelo menos um caractere especial;
- bloqueio de senhas comuns, como
123456,password,senha, entre outras.
password-validator-python/
├── docs/
│ └── architecture.md
├── src/
│ └── password_validator/
│ ├── __init__.py
│ ├── cli.py
│ ├── rules.py
│ └── validator.py
├── tests/
│ ├── __init__.py
│ ├── test_rules.py
│ └── test_validator.py
├── .gitignore
├── LICENSE
├── pyproject.toml
├── README.md
└── requirements.txt
- Python 3.10 ou superior
- pip
git clone https://github.com/SEU-USUARIO/password-validator-python.git
cd password-validator-pythonNo Windows:
python -m venv .venv
.venv\Scripts\activateNo Linux/Mac:
python3 -m venv .venv
source .venv/bin/activatepip install -r requirements.txt
pip install -e .Passando a senha diretamente:
password-validator "SenhaForte123!"Ou solicitando a senha de forma oculta:
password-validatorTambém é possível executar como módulo:
python -m password_validator.cli "SenhaForte123!"Senha válida:
password-validator "SenhaForte123!"Saída esperada:
Senha válida.
Senha inválida:
password-validator "senha123"Saída esperada:
Senha inválida.
- A senha deve conter pelo menos uma letra maiúscula.
- A senha deve conter pelo menos um caractere especial.
pytestSaída esperada:
16 passed
A IA generativa foi utilizada como apoio para estruturar o projeto, sugerir a organização dos arquivos, criar a primeira versão das funções de validação, auxiliar na escrita dos testes unitários e melhorar a documentação do README.
Mesmo com esse apoio, o código foi revisado manualmente, os imports foram conferidos, os testes foram executados e as regras de validação foram analisadas para garantir que o comportamento do programa estivesse correto.
Os principais desafios foram organizar o projeto seguindo uma estrutura profissional em Python, separar corretamente as responsabilidades entre regras, validação e interface de linha de comando, além de garantir que os testes cobrissem os principais cenários de senha válida e inválida.
Também foi necessário revisar as sugestões da IA para evitar código desnecessário, mensagens confusas ou estruturas incompatíveis com a execução real do projeto.
Foram adotados os seguintes cuidados:
- revisão manual do código gerado;
- execução dos testes com
pytest; - validação de senhas fortes e fracas;
- conferência da estrutura de pastas;
- revisão do README;
- execução do programa via terminal.
Este projeto está licenciado sob a licença MIT.