Case study: SofiruxGED

Case study · In-house product

SofiruxGED

SofiruxGED is an electronic document management system (EDMS) designed, architected and developed by SOFIRUX. This page explains why we built it, what we built, and how it works under the hood.

Project typeSOFIRUX software product (web application, monthly subscription)
Sofirux roleProduct design, architecture, full development
DomainElectronic document management (GED / EDMS)
Core stackPHP 8 · Symfony 6 · MySQL/MariaDB

1. The need

Organisations that handle large volumes of documents run into the same problems again and again:

Lost versions

Files circulate by email, get overwritten and nobody knows which version is the right one.

No traceability

It is impossible to say who opened, modified or deleted a document, and when.

No proof of integrity

When an auditor asks "has this file been altered since it was archived?", there is no evidence-based answer.

Slow approvals

Documents waiting for sign-off sit on a desk or get lost in email threads.

Manual filing

Every incoming document has to be read and filed by hand.

Unprotected storage

Files stored in clear text are readable by anyone who gets access to the server.

2. What SOFIRUX did

SofiruxGED is built and owned by SOFIRUX. Our team handled the whole product lifecycle:

  • Functional analysis of document-management and compliance requirements (traceability, integrity, access control).
  • Software architecture on Symfony 6 with Doctrine ORM and asynchronous processing via Symfony Messenger.
  • Security design: per-file encryption, integrity fingerprints, three independent audit logs, CSRF protection, bcrypt passwords.
  • Development of the web interface (Twig, Bootstrap, JavaScript) in French, with per-user locale preference.
  • A Python (Flask) analytics microservice for Excel reports on user activity and workflows.
  • Mapping of the controls to the main ISO 27001 domains.

3. The solution: features implemented

Each feature below is implemented and running in the product.

Document management

Multi-format upload (PDF, DOCX, XLSX, PPT, JPG, PNG, TXT), automatic PDF conversion while keeping the original, numbered versioning (old versions are never deleted), favourites, and a restorable trash.

Encryption at rest

Every file version is encrypted with libsodium secretbox (XSalsa20-Poly1305) using its own random key. Files are decrypted on the fly for authorised users and never written to disk in clear.

SHA-256 integrity verification

A SHA-256 fingerprint is stored for each version at upload. Administrators verify a document or a whole folder (CLI command app:verify-integrity) and get one of four statuses: intact, tampered, file missing, or no hash.

Three audit logs

Document history (created / updated / deleted / restored, with user and timestamp), workflow audit, and document-workflow history. The history log cannot be edited from the application.

Approval workflow engine

Multi-step workflows with a named approver or group per transition. Authorisation is enforced in code: a non-designated user cannot approve. Daily email digest of workflow activity.

Digital stamps

Configurable stamp, signature or seal images applied at chosen workflow transitions, with X/Y position and scale.

Rule-based auto-classification

Rules combine a keyword or regex, an operator (contains, starts with, ends with, regex), a target folder and a priority. Matching documents are suggested for one-click filing.

Document types & metadata

Custom document types (invoice, contract, report…) with typed metadata fields and controlled choice lists.

Users, groups & permissions

Read/write permissions per folder for users or groups, recursive propagation to sub-folders. Users never see folders they have not been granted.

Notifications & reminders

In-app notifications for edits, comments and approval requests. Per-document reminders with alerts 3 days before, 1 day before and at the scheduled time.

Full-text search

Text is extracted at upload, so documents can be searched by name, content or metadata.

Scanner integration

Scanned documents go through the same pipeline as uploads: PDF conversion, encryption, hashing and logging.

Screens from the product

SofiruxGED folder tree and grid view
Folder tree and grid view
SofiruxGED multi-file upload screen
Multi-format upload
SofiruxGED automatic classification rules
Auto-classification rules

4. Technologies used

Technical stack

ComponentTechnology
BackendPHP 8, Symfony 6
DatabaseMySQL / MariaDB with Doctrine ORM
Cryptographylibsodium (PHP ext-sodium), SHA-256, bcrypt
Async processingSymfony Messenger
EmailSymfony Mailer with Twig HTML templates
FrontendTwig, Bootstrap, JavaScript
Document pipelineServer-side PDF conversion, text extraction
AnalyticsPython microservice (Flask) for Excel reports

Security architecture

LayerMechanism
AuthenticationEmail + bcrypt password, CSRF token on login
AuthorisationRoles (admin / user) + per-folder read/write ACL for users and groups
Storage encryptionlibsodium secretbox (XSalsa20-Poly1305), one key per file version
IntegritySHA-256 hash stored at upload, CLI tamper-detection command
AuditDocument history, workflow audit, workflow transition history
DeletionSoft delete to trash with full restore

5. What was delivered

Verifiable outcomes of the build. These describe what the product does, not client performance figures.

12
feature modules delivered
3
independent audit logs
4
integrity statuses per file version
6
ISO 27001 control domains mapped (A.8, A.9, A.10, A.12, A.16, A.18)

Alignment with ISO 27001 control domains means the product provides the technical controls those domains call for. It is not an ISO 27001 certification.

Want to see SofiruxGED on your own documents?

View the product & pricing Request a demo