Developpement
Prérequis
- Node.js ≥ 23
- npm ≥ 11
Structure du projet
Source du projet uniquement disponible dans la branche dev.
Racine/
├── backend/ # Serveur Express (API + serveur du frontend buildé)
├── frontend/ # Sources Vue.js (développement du frontend)
└── docs/ # Documentation github (https://thanatos-vf-2000.github.io/sap-devsec-scanner/)Cloner le dépôt
git clone https://github.com/thanatos-vf-2000/sap-devsec-scanner.git
cd sap-devsec-scanner
git switch devInstaller les dépendances backend
cd backend
npm installInstaller les dépendances frontend
cd frontend
npm installMode développement - Frontend
Information
Utiliser la variable d'environnement ENABLE_DEVTOOLS à true pour activer Vue DevTools (
http://localhost:5173/__devtools__/).export ENABLE_DEVTOOLS=true
cd frontend
npm run dev
# → http://localhost:5173Mode développement - Backend
# Build - Frontend Vue
cd frontend
npm run build
# Start - Backend
cd backend
npm run dev
# → http://localhost:3001Gestion des langues
L'interface est automatiquement affichée en français ou en anglais selon la langue configurée dans le navigateur.
Frontend (Vue.js)
La détection se fait au chargement via navigator.language dans src/i18n/index.js :
function detectLang() {
const lang = navigator.language || navigator.userLanguage || 'en';
return lang.toLowerCase().startsWith('fr') ? 'fr' : 'en';
}Toutes les chaînes de l'interface sont centralisées dans ce fichier. Pour ajouter une langue :
- Ajouter un bloc
xx: { ... }dansmessages - Étendre la logique
detectLang()
Backend (Express.js)
Le backend détecte la langue via l'en-tête HTTP Accept-Language (envoyé automatiquement par le navigateur) :
app.use((req, res, next) => {
const acceptLang = req.headers['accept-language'] || '';
const isFrench = acceptLang.toLowerCase().split(',').some(lang =>
lang.trim().startsWith('fr')
);
req.lang = isFrench ? 'fr' : 'en';
req.t = i18n[req.lang];
next();
});Les messages d'erreur API sont traduits via backend/utils/i18n.js.
Contribution
Les contributions sont les bienvenues ! Pour proposer une amélioration :
- Forker le dépôt branche dev
- Créer une branche (
git checkout -b feature/ma-feature) - Commiter vos changements (
git commit -m 'feat: ajouter ...') - Pousser la branche (
git push origin feature/ma-feature) - Ouvrir une Pull Request
