All projects
ArchitectureBackendFrontendData

Technical data catalog platform

Replacing a legacy tool with an in-house platform, built from scratch.

Key figures

people in the team
7
test coverage required
80%

Context

A large industrial group manages technical data spread across physical media and online storage. The legacy tool offered limited search and integrated poorly with the rest of the information system.

My role

I own the architecture, the technical decisions, the cross-cutting modules and the code review of a team of seven.

Solution

A React and TypeScript interface, a Python API and a PostgreSQL database. Authentication goes through the company identity provider, and permissions are decided on the server: the interface merely hides what is already forbidden.

Two cross-cutting modules keep duplication out: a single file pipeline driven by a rules table, and one search engine shared by every domain. An event stream keeps users informed of long-running jobs.

Key features

  • A single file pipeline

    Every document type declares its rules: no business case bypasses a check, and none adds an endpoint.

  • Server-side permissions

    Filtering happens inside the query, never afterwards.

  • Real time without flooding the browser

    One tab holds the event stream and rebroadcasts it to the others, working around the per-site connection limit.

  • Historical data migration

    Table by table, with rejects logged with their reason and validation statistics.

Engineering challenges

  1. 1

    Architecture boundaries checked by the linter

    Each layer declares the layers it may depend on; continuous integration fails when one is crossed.

  2. 2

    End-to-end tests across two repositories

    The pipeline pairs branches from both repositories and starts the real API against an ephemeral database.

  3. 3

    Quality gates computed on the diff

    An informative audit over the whole repository, a blocking gate on changed files, one summary comment per pull request.

  4. 4

    Schema integrity guardrail

    A fingerprint of the generated schema prevents starting against a stale development database.

Tech stack

Frontend
ReactTypeScriptViteTanStack QueryMUI
Backend
PythonFastAPISQLModelPydantic
Data
PostgreSQL
Security
OpenID ConnectCoffre-fort de secrets
Infrastructure
Conteneurs OCINginxGitHub Actions
Quality
pytestVitestPlaywrightRuffmypyESLint

A project of this scale?

Let's talk about your context: I'll tell you frankly what is feasible, and how long it takes.