You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
3.0 KiB
3.0 KiB
BricoLoc Legacy Application
Application monolithique Node.js/Express démontrant l'architecture legacy de BricoLoc (2013-2025).
🎯 Objectif
Cette application reproduit intentionnellement les problèmes d'une architecture monolithique mal maintenue :
- Bugs de sécurité (mots de passe en clair, SQL injection, etc.)
- Anti-patterns architecturaux (monolithe, code dupliqué, etc.)
- Problèmes de performance (pas de pagination, requêtes N+1, etc.)
⚠️ ATTENTION : Cette application contient des vulnérabilités intentionnelles à des fins pédagogiques. Ne JAMAIS utiliser en production.
🏗️ Stack Technique
- Runtime : Node.js 20+
- Framework Web : Express.js 4.x
- Template Engine : EJS
- Base de données : SQLite 3
- Sessions : express-session + connect-sqlite3
- Upload : multer
📦 Installation
# Installer les dépendances
npm install
# Initialiser la base de données
npm run db:init
# Charger les données de test
npm run db:seed
🚀 Lancement
# Mode développement (avec nodemon)
npm run dev
# Mode production
npm start
L'application sera accessible sur http://localhost:3000
👤 Comptes de Test
Compte Administrateur
- Email :
admin@bricoloc.fr - Mot de passe :
admin123
Compte Utilisateur
- Email :
jean.dupont@email.fr - Mot de passe :
password123
📚 Documentation
- Roadmap Legacy - Planning détaillé du développement
- Liste des Bugs - Bugs intentionnels documentés
- Architecture - Schéma de l'architecture
🐛 Bugs Intentionnels
Cette application contient 18+ bugs intentionnels :
- ❌ Mots de passe en clair dans la base de données
- ❌ Vulnérabilités SQL Injection
- ❌ Pas de protection CSRF
- ❌ Race conditions sur les réservations
- ❌ Pas de pagination (problèmes de performance)
- ❌ Et bien d'autres...
Voir BUGS.md pour la liste complète.
📁 Structure du Projet
apps/legacy-app/
├── src/
│ ├── server.js # Fichier principal monolithique
│ ├── database.js # Connexion SQLite
│ ├── views/ # Templates EJS
│ ├── public/ # Assets statiques
│ └── uploads/ # Fichiers uploadés
├── data/
│ ├── bricoloc.db # Base SQLite
│ └── seeds/ # Scripts SQL de seed
├── docs/
│ ├── ROADMAP_LEGACY.md
│ ├── BUGS.md
│ └── ARCHITECTURE.md
└── package.json
🔧 Scripts NPM
npm run dev # Lancer en mode développement (nodemon)
npm start # Lancer en mode production
npm run db:init # Créer le schéma de base de données
npm run db:seed # Charger les données de test
npm run db:reset # Réinitialiser la base de données
📝 Licence
MIT - Projet pédagogique MAALSI