Ce projet a été restructuré pour améliorer la maintenabilité, la scalabilité et la séparation des responsabilités.
velya/
├── backend/ # API Node.js/Express
│ ├── src/
│ │ ├── config/ # Configurations (DB, auth, etc.)
│ │ ├── controllers/ # Logique métier
│ │ ├── middleware/ # Middlewares Express
│ │ ├── models/ # Modèles Mongoose
│ │ ├── routes/ # Routes API
│ │ ├── services/ # Services métier
│ │ ├── utils/ # Utilitaires
│ │ └── app.js # Configuration Express
│ ├── tests/ # Tests backend
│ ├── scripts/ # Scripts d'administration
│ ├── uploads/ # Fichiers uploadés
│ └── server.js # Point d'entrée
│
├── frontend/ # Application React
│ ├── src/
│ │ ├── components/ # Composants réutilisables
│ │ ├── pages/ # Pages/Vues
│ │ ├── context/ # Contextes React
│ │ ├── services/ # Services API
│ │ ├── utils/ # Utilitaires frontend
│ │ └── styles/ # Styles globaux
│ └── public/
│
├── ml-service/ # Service Machine Learning
│ ├── api/ # API Flask
│ ├── models/ # Modèles ML
│ └── scripts/ # Scripts d'entraînement
│
└── shared/ # Code partagé
├── types/ # Types TypeScript
├── constants/ # Constantes
└── utils/ # Utilitaires partagés
- Node.js >= 18.0.0
- Python >= 3.8
- MongoDB
- npm >= 8.0.0
# Installation de toutes les dépendances
npm run install:all
# Ou installation séparée
npm run install:backend
npm run install:frontend# Script de démarrage avec corrections automatiques
.\start-fixed.ps1# 1. Corriger la configuration réseau
node scripts/fix-network.js
# 2. Nettoyer les ports
node scripts/kill-port.js 5001
node scripts/kill-port.js 3001
# 3. Démarrer les services
npm run dev:backend # Backend sur port 5001
npm run dev:frontend # Frontend sur port 3001# Vérifier la configuration système
node scripts/diagnose.js# Build du frontend
npm run build
# Démarrage en production
npm run start:prod# Tous les tests
npm test
# Tests backend uniquement
npm run test:backend
# Tests frontend uniquement
npm run test:frontendnpm run dev- Démarrage en mode développementnpm run build- Build de productionnpm test- Exécution des testsnpm run lint- Vérification du codenpm run clean- Nettoyage des dépendances
Créer un fichier .env à la racine avec :
# Base de données
MONGO_URI=mongodb://localhost:27017/velya
# JWT
JWT_SECRET=your_jwt_secret
# Services externes
STRIPE_SECRET_KEY=your_stripe_key
CLOUDINARY_URL=your_cloudinary_url
SENTRY_DSN=your_sentry_dsn
# URLs
FRONTEND_URL=http://localhost:3001
BACKEND_URL=http://localhost:5001
ML_SERVICE_URL=http://localhost:5002- Séparation claire : Backend, Frontend et ML séparés
- Scalabilité : Services indépendants
- Maintenance : Code organisé par domaine
- Déploiement : Services déployables séparément
- Collaboration : Équipes peuvent travailler indépendamment
# 1. Diagnostic complet
node scripts/diagnose.js
# 2. Correction automatique
node scripts/fix-network.js
# 3. Redémarrage propre
.\start-fixed.ps1# Vérifier que le backend écoute sur toutes les interfaces
# Le serveur doit afficher: "Accessible depuis le réseau local sur http://192.168.11.106:5001"
# Si ce n'est pas le cas:
node scripts/kill-port.js 5001
npm run dev:backend# Nettoyer tous les ports
node scripts/kill-port.js 3001
node scripts/kill-port.js 5001
node scripts/kill-port.js 27017node scripts/diagnose.js- Diagnostic completnode scripts/fix-network.js- Correction réseaunode scripts/kill-port.js <port>- Libérer un port.\start-fixed.ps1- Démarrage avec corrections
- Fork le projet
- Créer une branche feature (
git checkout -b feature/AmazingFeature) - Commit les changements (
git commit -m 'Add AmazingFeature') - Push vers la branche (
git push origin feature/AmazingFeature) - Ouvrir une Pull Request
Ce projet est sous licence MIT. Voir le fichier LICENSE pour plus de détails.