Backend / Aéronautique
PANS-OPS
Description du Projet
PANS-OPS est un système critique de backend (API RESTful) développé pour l'évaluation, le recensement et le suivi des obstacles autour des aérodromes. Il implémente des logiques métiers complexes spécifiques à l'aéronautique, en stricte conformité avec les standards de l'OACI (Procedures for Air Navigation Services - Aircraft Operations).
Ce système permet aux ingénieurs, techniciens et évaluateurs de gérer de manière sécurisée et centralisée les données géospatiales liées aux aérodromes et aux obstacles pouvant affecter la navigation aérienne.
Fonctionnalités Clés
Gestion Complète des Entités Aéronautiques
- Aérodromes : Gestion du Point de Référence de l'Aérodrome (ARP) et du code OACI.
- Pistes (Runways) : Configuration du QFU, des seuils de piste et des codes de référence.
- Obstacles : Suivi précis de la géométrie, de l'altitude, et cycle de vie de validation des obstacles (statut d'évaluation).
- Surfaces : Calculs et retours liés aux surfaces de limitation d'obstacles.
Modèle de Sécurité et RBAC (Contrôle d'Accès)
Une sécurité robuste est primordiale pour ce type de système critique :
- Rôles Multiples :
- Admin : Accès CRUD complet, gestion des rôles et utilisateurs.
- Evaluator : Validation des obstacles, consultation de l'audit et modification des paramètres d'aérodrome.
- Data Technician : Création et modification des obstacles (sans droit de validation).
- Protection des API : JWT avec expiration (30 jours), limitation de débit (Rate Limiting : 1500 requêtes/15 min), protection Helmet (headers HTTP sécurisés) et stratégie Single Device Login (invalidation du jeton précédent lors d'une nouvelle connexion).
- Mots de passe : Hachage sécurisé avec
bcrypt(10 rounds).
Intégrité et Audit des Données (Conformité)
- Plugin d'Audit Automatique : Tout événement de modification, de création ou de suppression est loggé de façon inaltérable (lecture seule) dans une collection
Evenement. - Soft Delete (Suppression Logique) : Aucune suppression physique n'est permise pour garantir la traçabilité. Un plugin Mongoose dédié masque les éléments supprimés (contournable via
includeDeleted: truepour les besoins internes). - Localisation : Tous les messages de retour et d'erreur de l'API sont traduits en français pour les utilisateurs cibles.
Traitement de Données et Outils Métier
- Coordonnées GeoJSON : Stockage standardisé géospatial des coordonnées
[longitude, latitude]. - Import/Export Excel : L'API permet l'exportation et l'importation massive des données d'obstacles au format
.xlsx(via@e965/xlsx), facilitant ainsi le travail de saisie et de mise à jour des techniciens et géomètres sur le terrain. L'import met à jour l'historique d'audit automatiquement.
Stack Technique et Déploiement
- Technologies Core : Node.js, Express.js, MongoDB (Mongoose).
- Tests : Suite de tests approfondie avec Jest, utilisant une base de données de test dédiée et nettoyée après chaque suite.
- Validation : Validation stricte des payloads via Zod au niveau des middlewares.
- Déploiement Automatisé : Conteneurisation via Docker/Podman supportée par des scripts de déploiement (
deploy.sh) et des scripts d'initialisation (seed.js,import-sample-data.js).