Back to Work

PRIVATE PRODUCTION SYSTEM

API for digital case file management

Backend to replace a workflow based on a shared Excel spreadsheet with a structured, maintainable API.

Conceptual flow from the client or frontend to the REST API, logic and validation, and relational persistence.
Derived conceptual diagram: client/frontend → REST API → logic/validation → relational persistence. It does not represent the system's real topology or endpoints.

Context and problem

The case file management workflow relied on a shared Excel spreadsheet. The goal was to replace that foundation with an API that could centralize the process's information, rules, validation, and operations.

The work involved turning an operational need into a structured, maintainable backend, with an explicit interface for the consuming application.

My responsibility

I primarily developed the backend: API design and implementation, data access, authentication, documentation, testing, and CI. My responsibility was to connect these pieces to support the case file management workflow.

Technical approach

I implemented the REST API with Node.js and Express, using Sequelize and MySQL for relational data access and persistence. The API brought together the operations' rules and validation, separating them from the consuming interface.

Authentication used JWT.

Contracts and documentation

I documented the API contracts with Swagger/OpenAPI 3 to make the integration interface explicit: the operations it offers, the inputs it expects, and the responses it can return. The documentation makes the contract available without having to reconstruct it from the backend code.

This case explains the purpose of those contracts without publishing private routes, models, or payloads.

Testing, reproducibility, and CI

I used Jest and Supertest for integration and API tests, and Docker Compose to reproduce the local environment. Validation went beyond testing isolated JavaScript logic: it also involved a MySQL database and its preparation through migrations and seeds.

In GitHub Actions, the workflow prepared that environment and ran the suite. This made it possible to detect initialization issues and problems with the actual database state, as well as errors in application logic.

The public conceptual sequence is: Push/PR → GitHub Actions → Docker Compose → MySQL → migrations → seeds → Jest/Supertest. It summarizes the validation process without reproducing private configuration.

Conceptual validation sequence: Push / PR, GitHub Actions, Docker Compose, MySQL, Migrations, Seeds, and Jest + Supertest.
Technical diagram derived from the CI workflow: preparing the environment and database before running integration and API tests. A conceptual representation without private configuration.

Outcome and maintenance

The system reached production and was used by more than twenty users. There were initial adjustments and, after stabilization, maintenance was relatively limited.

I participated professionally in the production rollout and maintenance through my responsibility for the backend.

What it demonstrates

  • Developing a backend from an operational problem to an application used in production.
  • Defining and documenting API contracts for integration with a consuming frontend.
  • Building reproducible validation with a database, migrations, seeds, and integration/API tests.
  • Participating professionally in backend production rollout and maintenance.

Technology and evidence

  • Node.js
  • MySQL
  • Docker Compose

Primary technology: Node.js · Express · Sequelize · MySQL · JWT · Swagger/OpenAPI 3 · Jest · Supertest · Docker Compose · GitHub Actions.

The implementation, documentation, and private technical evidence support this professional account. Public visual evidence includes derived conceptual architecture and engineering diagrams: they explain the approach without exposing the internal system or constituting public verification of its operation.

Privacy note

PRIVATE PRODUCTION SYSTEM

The system belongs to a private professional context. Institutional names, data, endpoints, models, payloads, and infrastructure details are not published. Institutional repositories and documentation are not linked either.