01
Context
The project stems from a need to simulate and validate navigation data flows on an embedded system. The main challenge was building a coherent chain linking low-level data processing, simulation, supervision, and validation, all within the constraints of an industrial environment.
02
Architecture
The system is organized around three complementary layers, each carried by a dedicated stack: embedded C++ → Python / FastAPI backend → React / TypeScript interface.
- Embedded (C++) — a C++ layer on the microcontroller handles acquisition, processing, conversion, and generation of navigation streams
- Backend (Python · FastAPI) — a middle layer handles communication with the embedded equipment, supervises the exchanges, and exposes data and commands
- Web interface (React · TypeScript) — a supervision interface allows the simulator to be operated and the system state observed without directly manipulating the embedded layer
03
My role
End-to-end design and development of the solution, spanning several layers and disciplines.
- Embedded development in C++
- Handling and transforming several navigation protocols
- Geospatial data simulation
- Supervision backend
- Web control interface
- Test and validation automation
04
Engineering decisions
A few structural choices guide the system’s architecture.
- Clearly separate protocol logic, hardware, and supervision
- Support several navigation protocols within a common architecture
- Keep a simulation mode to test scenarios without permanently depending on a physical source
- Make the embedded logic testable independently of the hardware target
- Automate validations to limit regressions as the system evolves
05
Validation
Validation was treated as an integral part of development, at every level of the system. It is automated per layer: ctest for C++, pytest for the backend, and Vitest for the frontend, orchestrated in the CI pipeline with Jenkins and Docker.
- Embedded logic tests
- Backend tests
- Frontend tests
- Integration tests across the different layers
- Validation of simulation scenarios and navigation streams
- Automation of part of these checks in the development pipeline
06
End-to-end chain
NAVBOX connects an embedded C++ layer, a Python / FastAPI backend, and a React / TypeScript interface into a single end-to-end chain. The system covers the simulation of navigation streams, their processing, supervision, and validation, with a modular, testable architecture.