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.
morepudding 5b8f566cef d 2 months ago
..
data/seeds Ajouter l'app Bricoloc au repo pour synchronize 2 months ago
docs Ajouter l'app Bricoloc au repo pour synchronize 2 months ago
scripts Ajouter l'app Bricoloc au repo pour synchronize 2 months ago
src d 2 months ago
.eslintrc.js Ajouter l'app Bricoloc au repo pour synchronize 2 months ago
README.md Ajouter l'app Bricoloc au repo pour synchronize 2 months ago
package.json Ajouter l'app Bricoloc au repo pour synchronize 2 months ago

README.md

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

🐛 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