← Back to Projects

Delivered system · 2025

GEDA: electronic document management for CEMAC Representations

Gestion Électronique des Documents Administratifs

GEDA (Gestion Électronique des Documents Administratifs) is a self-hosted document management system that I designed, built and installed alone during my 2025 internship as Regulatory Affairs Assistant at the Representation of CEMAC in Cameroon. It now serves the Representations in Cameroon and Gabon, and it is the first platform shared across CEMAC Representations.

  • Document management
  • GovTech
  • Full-text search
  • OCR
  • Audit trail
  • Self-hosted
GEDA dashboard showing total documents, monthly consultations, retention alerts, recent activity and storage use
Figure 1Dashboard: document totals, monthly consultations, retention alerts, recent activity and storage.The interface is in French, the working language of the Representations. Tap to enlarge.
Representations (Cameroon, Gabon)
2
Users
16
Documents
87,000+
Average retrieval time
About 2 seconds
Build
2 weeks
Installation on site
2 days
Staff training
1 week

Role: sole builder. Design, development, on-site installation and staff training.

01

Context

Before GEDA, the Representation's document process was entirely manual and fragmented. Records lived in physical paper files and in scattered digital folders on individual computers and in personal email inboxes. Finding a specific document meant relying on human memory and long physical searches, which led to duplicated files, misplaced records and version confusion.

There was no central repository, so sensitive diplomatic and financial records had no standard access controls or traceability. The institution was exposed to data loss and unauthorised access, and its institutional memory was at risk every time staff changed.

02

What I built

  • A document library with titles, dates, confidentiality levels and services, sortable and filterable.
  • Four confidentiality levels on every document: Confidential, Restricted, Internal and Public.
  • Full-text search, including scanned documents through OCR, returning results in about two seconds on average.
  • A section for physical archives, so paper records are managed alongside digital ones.
  • A retention period on each document, with dashboard alerts when documents approach it.
  • Version history for every document.
  • User management with role-based access, and sign-in through OpenID Connect.
  • A dashboard with totals, monthly consultations, retention alerts, recent activity and storage use.
GEDA document library with filters for confidentiality level and service, and sortable columns
Figure 2Document library: filter by confidentiality level and service, with sortable columns.The interface is in French, the working language of the Representations. Tap to enlarge.
03

Security and governance

  • An append-only audit trail that records who viewed or downloaded each document, and when.
  • Encryption with AES-256, and TLS 1.3 for traffic.
  • Encrypted backups with rsync and GPG.
  • Self-hosted: installed on site with Docker Compose on Ubuntu or Debian servers, so documents stay under the institution's control.
GEDA document viewer with document metadata, confidentiality level, retention period and audit journal
Figure 3Document viewer: metadata, confidentiality level, retention period and the audit journal.The interface is in French, the working language of the Representations. Tap to enlarge.
04

Rollout

I built GEDA in two weeks, installed it on site in two days, and trained the staff in one week. I was the sole builder, from design to installation and training.

It began at the Representation in Cameroon, with 7 users, and now also serves the Representation in Gabon, with 9 users. Together they hold more than 87,000 documents, combining the archive migrated at setup with documents added through daily use.

05

Outcome

Adoption was immediate. A retrieval task that used to take an afternoon now takes about two seconds on average, using the built-in full-text search.

Physical retrieval delays have all but disappeared, and the Representative now has real-time, append-only audit trails. A vulnerable manual process became a centralised, secure and efficient digital workflow.

06

Stack

Backend

  • Rust
  • Axum
  • SQLx
  • JWT
  • OpenID Connect

Frontend

  • React
  • Next.js
  • Tailwind CSS
  • TanStack Query

Data and storage

  • PostgreSQL
  • MinIO
  • rsync
  • GPG

Search and OCR

  • Meilisearch
  • Tesseract OCR

Infrastructure

  • Ubuntu Server / Debian
  • Docker
  • Docker Compose

Security

  • AES-256
  • TLS 1.3
07

Attestations

“The implementation of the GEDA system marks a decisive turning point for our Representation. We finally have a sovereign, secure tool perfectly adapted to the requirements of our diplomacy. Beyond simple document management, GEDA guarantees the continuity of our institutional memory against the test of time and staff turnover.”

Pierre-Guillaume Boum BissaiResident Representative of the CEMAC Commission in CameroonTranslated from French

“For a long time, the scattering of our archives posed a major risk to the institution. Charles was able to understand our constraints and design a tailor-made solution. GEDA now allows us to find information in seconds, with complete traceability. It is an essential investment that I recommend to any institution concerned about its security.”

Nicolas MessiAgent Comptable et FinancierTranslated from French