Projeto de estudos para a atividade individual da disciplina Engenharia de Software I, curso de Bacharelado em Sistemas de Informação no Instituto Federal Catarinense – Campus Araquari.
Este repositório contém uma API simples em FastAPI que simula autenticação via JWT, desenvolvida como exercício de Extreme Programming (XP), com foco em resolver o problema de expiração rápida de tokens em sistemas de gestão acadêmica (ex: SIGAA).
-
TDD (Test-Driven Development): escrever testes antes da implementação.
-
Autenticação: criar endpoint de login que gera token JWT.
-
Refatoração mínima: código limpo e modular (separação em
auth.py
emain.py
). -
Aplicar práticas de XP: utilizar metodologia ágil Extreme Programming.
-
Resolver problema real: demonstrar como lidar com tokens de expiração baixa.
- Quadro Kanban no GitHub Projects para acompanhar tarefas: GitHub Projects.
POST /token
: gera um JWT com expiração de 24 horas.- Testes automatizados via pytest e httpx, garantindo TDD para o endpoint de autenticação.
- Projeto organizado conforme git flow: branch
dev
para desenvolvimento emaster
para produção. - Commits semânticos seguindo Conventional Commits.
- FastAPI
- Python-JOSE para JWT
- pytest + httpx para testes
- uvicorn como servidor ASGI
sigaa_token_api/
├── main.py # Definição do endpoint /token
├── auth.py # Lógica de criação de JWT
├── test_main.py # Testes TDD para o endpoint de login
├── README.md # Documentação do projeto
└── .gitignore # Arquivos ignorados pelo Git
-
Clone o repositório:
git clone https://github.com/gabriel04alves/sigaa-token-api.git cd sigaa-token-api
-
Virtualenv:
python -m venv venv source venv/bin/activate # ou .\venv\Scripts\activate no Windows
-
Dependências:
pip install -r requirements.txt
-
Testes:
pytest
-
Iniciar API:
uvicorn main:app --reload
MIT License