PT
Studies

ProDocs

Academic document library in .NET + Angular, with full-text search inside PDF content — my thesis project revisited and modernized.

Period2022 — 2026
RoleSolo project
ProDocs screen, academic document library with full-text search over PDFs

Context

It started as my Computer Engineering final year project (2022): a digital library to catalog, search and download theses and academic papers. In 2026 I revisited it as a case study in software evolution — restructuring the architecture, hardening security and redesigning the UI.

The challenge

Enable search over the full content of PDFs (not just title and abstract) without dedicated search infrastructure, with role-based permissions and everything running on a single Render free-tier service.

Role and responsibilities

  • PDF text extraction with PdfPig and full-text search index with SQLite FTS5 (virtual table + triggers)
  • JWT authentication (HS512, key kept out of version control) with ASP.NET Core Identity and three roles: common, advanced and administrator
  • N-layer architecture with dependency inversion: Application defines contracts, persistence implements them
  • Angular 20 frontend with route guards, JWT interceptor, pagination and modals via ngx-bootstrap
  • Signup always creates a common user on the backend, ignoring the client-sent role (privilege escalation defense)
  • Multi-stage Docker + Render Blueprint: the API serves the SPA itself in production, one single service

Stack and architecture

.NET 10 (Web API) + EF Core 10 + SQLite (FTS5) on the backend; Angular 20 + ngx-bootstrap + Bootstrap 5 (Bootswatch Cosmo) on the frontend; PdfPig for PDFs; xUnit and Karma for tests; Docker and GitHub Actions for CI.

Angular 20.NET 10EF CoreSQLiteJWTBootstrap 5DockerGitHub Actions

Highlights

  • Full-text search inside PDF content, not just metadata
  • Complete backup (database + files) via server-generated ZIP
  • Full PDF text never exposed by the API — used only in the search index
  • From academic thesis to modern product: evolved architecture, security and UI

Takeaways

Revisiting my own thesis years later was a rare software evolution exercise: I could see exactly what deadline pressure had let slip and fix it with everything I learned since — layered architecture, real authentication security and full-text search without dedicated servers.