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.

109 lines
3.0 KiB
Markdown

# 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
```bash
# 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
```bash
# 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](./docs/ROADMAP_LEGACY.md) - Planning détaillé du développement
- [Liste des Bugs](./docs/BUGS.md) - Bugs intentionnels documentés
- [Architecture](./docs/ARCHITECTURE.md) - 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](./docs/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
```bash
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