EN
Estudos

ProDocs

Biblioteca de documentos acadêmicos em .NET + Angular, com busca full-text no conteúdo dos PDFs — meu TCC revisitado e modernizado.

Período2022 — 2026
PapelDesenvolvimento individual
Tela do ProDocs, biblioteca de documentos acadêmicos com busca full-text em PDFs

Contexto

Nasceu como Trabalho de Conclusão de Curso da graduação em Engenharia de Computação (2022): uma biblioteca digital para catalogar, buscar e baixar TCCs, artigos, monografias, dissertações e teses. Em 2026 retomei o projeto como estudo de caso de evolução de software — reestruturei a arquitetura, reforcei a segurança e redesenhei a interface.

O desafio

Permitir busca no conteúdo integral dos PDFs (não só título e resumo) sem infraestrutura de busca dedicada, com permissões por perfil de usuário e tudo rodando em um único serviço no plano gratuito do Render.

Papel e responsabilidades

  • Extração de texto de PDFs com PdfPig e índice de busca full-text com SQLite FTS5 (tabela virtual + triggers)
  • Autenticação JWT (HS512, chave fora do versionamento) com ASP.NET Core Identity e três perfis: comum, avançado e administrador
  • Arquitetura em N-camadas com inversão de dependência: Application define contratos, persistência implementa
  • Frontend Angular 20 com guards de rota, interceptor de JWT, paginação e modal via ngx-bootstrap
  • Cadastro sempre cria usuário comum no backend, ignorando o tipo enviado pelo cliente (defesa contra escalação de privilégio)
  • Docker multi-stage + Blueprint do Render: a API serve a própria SPA em produção, um serviço só

Stack e arquitetura

.NET 10 (Web API) + EF Core 10 + SQLite (FTS5) no backend; Angular 20 + ngx-bootstrap + Bootstrap 5 (Bootswatch Cosmo) no frontend; PdfPig para PDFs; xUnit e Karma nos testes; Docker e GitHub Actions no CI.

Angular 20.NET 10EF CoreSQLiteJWTBootstrap 5DockerGitHub Actions

Destaques

  • Busca full-text dentro do conteúdo dos PDFs, não apenas nos metadados
  • Backup completo (banco + arquivos) via ZIP gerado no servidor
  • Texto integral dos PDFs nunca exposto pela API — usado apenas no índice de busca
  • Do TCC acadêmico a produto moderno: arquitetura, segurança e UI evoluídas

Aprendizados

Revisitar meu próprio TCC anos depois foi um exercício raro de evolução de software: enxerguei exatamente o que a pressão de prazo deixou passar e corrigi com o que aprendi desde então — arquitetura em camadas, segurança real de autenticação e busca full-text sem servidores dedicados.