LogiTrain — logistics training suite on Odoo 18
Four training software packages for the ATFP training centre (bon de commande n° 36001/36002), delivered as Odoo 18.0 Community modules plus a small RFID bridge and a self-hosted routing stack.
| BC line | Package | Modules |
|---|---|---|
| 1 | Delivery tours, map, route optimisation, regulatory constraints | logitrain_tour (+ logitrain_base map widgets) |
| 2 | Load planning with 3D optimisation (vehicles, containers, pallets) | logitrain_loadplan, logitrain_tour_loadplan |
| 3 | Integrated fleet management (administrative, technical, financial) | logitrain_fleet |
| 4 | WMS with RFID | logitrain_wms + rfid-bridge/ |
| — | Training framework, catalogue, cohorts, exercises, scoring | logitrain_base |
| — | Fictional Tunisian dataset for the golden template databases | logitrain_demo_tn |
The technical specification is in docs/SPEC.md; implementation status against it in
docs/STATUS.md.
Quick start (development)
# Odoo 18 source + PostgreSQL, then:
git clone <this repo> intech-logitrain
python3 /opt/odoo/odoo-bin -d logitrain --addons-path=/opt/odoo/addons,$PWD/intech-logitrain/addons -i logitrain_demo_tn
Log in as admin, open the LogiTrain app. Demo users: formateur1 / formateur1 (trainer), apprenant1..5 (trainees).
Without OSRM/VROOM the tours run in approximate mode (straight lines × road factor); set the engine URLs in
Settings → LogiTrain once the stack below is up.
Production stack (training centre server)
cd deploy && cp .env.example .env # set passwords
./osrm/build.sh # Tunisia OSM extract -> OSRM graph
docker compose up -d # Odoo, Postgres, OSRM, VROOM, nginx, nightly backups
docker compose --profile offline up -d tiles # optional offline basemap, see deploy/tiles/README.md
Then in Odoo settings: OSRM http://osrm:5000, VROOM http://vroom:3000. One database per cohort is created by
duplicating the golden template (logitrain_demo_tn installed) from the database manager (LAN-restricted in nginx).
Tests
ODOO_HOME=/opt/odoo ./scripts/dev_test.sh # Odoo test suite (base, wms, tour, loadplan)
python scripts/test_solver_standalone.py # packing solver invariants, no Odoo required
python -m pytest -q # rfid-bridge
Layout
addons/ Odoo modules
rfid-bridge/ reader-side service (mock / LLRP / serial adapters)
deploy/ docker-compose, nginx, OSRM build, VROOM config, backups
docs/ SPEC.md, STATUS.md
scripts/ dev helpers
Licence: LGPL-3 placeholder pending decision D6 (see docs/SPEC.md). Leaflet is vendored under BSD-2 (addons/logitrain_base/static/lib/leaflet/LICENSE).