The client
CDR Consulting is a Peruvian consultancy specialized in international construction contracts under the FIDIC, JCT and NEC frameworks — the three contractual standards governing most large-scale public works and private infrastructure projects worldwide. Their consulting team works daily with an extensive body of specialized technical literature.
The challenge
Manually consulting 3,800+ technical documents (regulations, model contracts, case law, ICC publications) was unworkable. Information was scattered across local folders, personal devices and physical archives. Finding a specific document took hours. There was no unified search, no structured way to add new material, and no visibility into who had consulted what.
CDR needed a custom platform — not a generic document management tool — that respected the way a legal consultant organizes and consults specialized literature.
The solution
We built a custom digital library that centralizes the entire collection with an in-browser PDF viewer (no mandatory download), search by title, author, language and document type, organization by thematic collections (FIDIC, JCT, ICC), bookmarking, automatic generation of citations in academic formats (APA, MLA, Chicago) and an admin panel for bulk cataloging.
The analytics dashboard surfaces real usage metrics — most-consulted books, registered readings — so management can decide what material to acquire or highlight.
Key capabilities
- Catalog of 3,867 books organized in 13 thematic collections
- In-browser PDF viewer (no mandatory download)
- Multi-criteria search (title, author, language, document type)
- Automatic bibliographic citations (APA / MLA / Chicago)
- Bookmarks and loan request system
- Role-based access control (admin / reader) with per-book or per-user restrictions
- Admin panel for upload, edit and bulk cataloging
- Analytics dashboard with reading and consultation metrics
Tech stack
Frontend: React 18 + Vite 4 · Zustand · Bootstrap 5 · Formik + Yup · pdfjs-dist + react-pdf · Chart.js · React Router DOM 6
Backend: Node.js + Express 4 · MySQL2/Promise · JWT + bcrypt (httpOnly cookies) · Multer
Database: MariaDB 10.11 with normalized relational model
Infrastructure & DevOps
- Linux VPS (Ubuntu 20.04) with two parallel environments: staging (
cdr.prodixperu.com) and production (biblioteca.cdrconsulting.pe) - PM2 as Node process manager with auto-restart and monitoring
- Nginx as reverse proxy with SSL/TLS
- CI/CD with GitHub Actions and Git Flow: push to
developdeploys to staging, push tomainto production - Automated post-deploy verification (backend healthcheck, frontend build validation,
nginx -tbefore reload) - httpOnly cookies for JWT session, CORS restricted to production domain
Status
In production at biblioteca.cdrconsulting.pe, operating as the primary research tool for CDR Consulting's team.