DIGITAL ARCHIVE.
Intro
Digital Archive is a full-stack digital archive management platform built for Romanian institutions that need to digitize, organize, and process thousands of physical documents.
The platform replaces manual, error-prone processes with a structured digital workflow. From city halls to schools, institutions can now upload, categorize, convert, and generate official inventory reports for their entire document archives, all from a modern, responsive web interface.
This project represents a significant engineering effort: a Go REST API, a React dashboard, PostgreSQL persistence, resumable file uploads via TUS protocol, PDF processing with Gotenberg, and a fully containerized deployment with Docker Compose and Caddy reverse proxy.

The Problem
Romanian institutions, including city halls, schools, and public agencies, maintain vast physical archives of documents spanning decades. Managing these archives is typically done with spreadsheets, paper logs, or not at all.
The core challenges are clear: no centralized system for tracking which documents exist and where they are stored, no way to generate the legally required inventory reports digitally, and no support for converting legacy office documents (Word, Excel) into standardized PDF archives.
Digital Archive was built to solve all of these problems in a single, cohesive platform.
System Architecture
The platform runs as 7 Docker containers orchestrated by Docker Compose, each with a clear responsibility:
Caddy handles reverse proxying, automatic HTTPS, and TLS certificate management. The Go API (built on httprouter) exposes 40+ RESTful endpoints covering full CRUD for every entity in the system. A React frontend (Vite + CSS Modules) provides the user-facing dashboard.
PostgreSQL 17 persists all data with proper indexing and migrations (19 migration files). Gotenberg (scaled to 10 replicas) powers PDF conversion and generation. TUS/tusd enables resumable file uploads for large document batches. A management container provides shell access for database migrations and admin tasks.
.9858e11f.png&w=3840&q=75)
Hierarchical Data Model
The data model mirrors how physical archives are actually organized in Romanian institutions. It follows a strict 6-level hierarchy:
Institution → Compartment → Category → Subcategory → Folder → Document
Each level has its own REST endpoints, permissions, and relationships. The API supports nested queries (e.g., "get all categories for compartment #5") and includes pagination, filtering, and sorting at every level. This structure ensures that digital records map 1:1 to their physical counterparts, making the transition from paper to digital seamless.
The best digital systems don't fight existing workflows, they mirror and improve them.— Architecture Principle
Document Processing
The platform integrates Gotenberg, a Docker-based PDF engine, running at 10 replicas for high throughput. It powers three critical workflows:
Office-to-PDF conversion transforms Word, Excel, and other office documents into standardized PDFs. PDF merging combines multiple documents into single files for archival. And the most powerful feature: automated inventory generation, which traverses the entire folder hierarchy, counts pages across all documents, and produces legally-compliant inventory PDFs complete with the Romanian coat of arms and institutional headers.
.cdbecca4.png&w=3840&q=75)
Resumable Uploads
Institutions often need to upload hundreds of scanned documents in a single session. Standard HTTP uploads would fail on large batches or unreliable connections. The platform uses the TUS protocol (via tusd server) combined with Uppy on the frontend to provide resumable, fault-tolerant file uploads.
Users can drag-and-drop files, pause and resume uploads, and even recover from browser crashes or network interruptions. The Uppy dashboard supports webcam capture, screen recording, and image editing, offering flexibility for different document capture scenarios.
.7b85597e.png&w=3840&q=75)
Auth & Permissions
Security is critical when handling institutional documents. The platform implements token-based authentication with Bearer tokens, account activation via email (with SMTP mailer), password reset flows, and token refresh mechanisms.
The permission system is granular: each resource type (compartments, categories, subcategories, folders, documents) has separate read and write permissions. A super permission grants full access. The middleware chain enforces authentication → activation → permission checks on every protected route, with IP-based rate limiting for anonymous users and user-based limiting for authenticated sessions.

Dashboard UI
The frontend is built with React, TypeScript, and Zustand for state management. The dashboard features an AppShell layout with a collapsible sidebar navigation, dynamic breadcrumbs that resolve entity names from the API, and context-aware "Add" buttons that adapt to the current view (compartment, category, folder, or document).
A rich text editor powered by TipTap enables document annotations. Recharts provides data visualizations on the dashboard grid. The settings view includes theme customization with gradient segmented controls and radio card components, all implemented with custom CSS modules.

Conclusion
Digital Archive is an enterprise-grade platform that transforms how Romanian institutions manage their physical document archives.
By combining a performant Go backend, a polished React dashboard, and industrial-strength document processing, it delivers a complete solution for digitizing, organizing, and reporting on institutional archives.
The project demonstrates that government and institutional software can be modern, fast, and pleasant to use, it just takes the same engineering rigor applied to any great product.
Excited by this project? Want to discuss it further?Don't hesitate to reach out!