SmartSchool
API de gestão escolar em ASP.NET Core, projetada com arquitetura em camadas e boas práticas de backend.
Contexto
Projeto pessoal criado para aprofundar o desenvolvimento de APIs backend: arquitetura em camadas, versionamento, autenticação robusta e testes. A API cobre o domínio de uma escola — alunos, professores, cursos e disciplinas.
O desafio
Projetar uma API estável e segura: versionamento que não quebre consumidores (V1/V2), autenticação por JWT com refresh tokens rotativos, validação de entrada consistente, soft delete para preservar histórico e um pipeline de CI que rode os testes a cada push.
Papel e responsabilidades
- API REST em ASP.NET Core 10 com endpoints de CRUD para aluno, professor, curso e disciplina
- Autenticação JWT + refresh tokens rotativos via ASP.NET Core Identity, com rate limiting no login
- Versionamento de API (V1 deprecada / V2 ativa) e documentação Swagger
- Validação de entrada com FluentValidation e erros no padrão Problem Details (RFC 7807)
- Testes de unidade e integração com xUnit, NSubstitute e WebApplicationFactory
- Containerização com Docker e deploy gratuito no Render
Stack e arquitetura
.NET 10, EF Core 10 + SQLite, ASP.NET Core Identity, JwtBearer, Mapster, FluentValidation, Swashbuckle, xUnit + NSubstitute; Docker e GitHub Actions no CI
Destaques
- Refresh tokens rotativos com revogação do token antigo
- Soft delete nos recursos para preservar o histórico
- Versionamento V1/V2 sem quebrar consumidores existentes
- Cobertura de testes cobrindo autenticação, autorização e CRUD
Aprendizados
Gerir sessões com refresh tokens, versionar API sem quebrar clientes e escrever testes de integração que sobem a API de verdade foram os aprendizados que mais mudaram minha abordagem de desenvolvimento backend: seguro, testável e com ciclo de release confiável.