docs: Update README with comprehensive documentation
This commit is contained in:
@@ -1,2 +1,208 @@
|
||||
# pc_builder
|
||||
# PC Builder
|
||||
|
||||
Une application web moderne pour construire et gérer des configurations PC personnalisées. Construite avec **AdonisJS** et **Vue.js** (Inertia).
|
||||
|
||||
## 🎯 Fonctionnalités
|
||||
|
||||
- **Gestion des composants** : Cataloguer et gérer les composants informatiques (CPU, GPU, RAM, etc.)
|
||||
- **Construction de PC** : Créer et configurer des ordinateurs personnalisés
|
||||
- **Galerie de photos** : Ajouter et gérer des images de vos configurations
|
||||
- **Authentification utilisateur** : Système d'inscription et de connexion sécurisé
|
||||
- **Interface réactive** : Interface utilisateur moderne avec Vue.js et Tailwind CSS
|
||||
|
||||
## 📋 Prérequis
|
||||
|
||||
- **Node.js** >= 18.0.0
|
||||
- **npm** ou **yarn**
|
||||
- **PostgreSQL** (ou autre base de données supportée)
|
||||
- **Docker** (optionnel, pour l'environnement de développement)
|
||||
|
||||
## 🚀 Installation
|
||||
|
||||
### 1. Cloner le repository
|
||||
|
||||
```bash
|
||||
git clone http://192.168.1.39:3000/Stude12/pc_builder
|
||||
cd pc_builder
|
||||
```
|
||||
|
||||
### 2. Installer les dépendances
|
||||
|
||||
```bash
|
||||
npm install
|
||||
```
|
||||
|
||||
### 3. Configuration de l'environnement
|
||||
|
||||
Copier le fichier `.env.example` en `.env` et configurer vos variables :
|
||||
|
||||
```bash
|
||||
cp .env.example .env
|
||||
```
|
||||
|
||||
Éditer `.env` et configurer :
|
||||
- `DB_CONNECTION` : Type de base de données
|
||||
- `DB_HOST`, `DB_PORT`, `DB_USER`, `DB_PASSWORD`, `DB_DATABASE` : Connexion à la base
|
||||
- `APP_KEY` : Clé de chiffrement (générer avec `node ace generate:key`)
|
||||
|
||||
### 4. Générer la clé d'application
|
||||
|
||||
```bash
|
||||
node ace generate:key
|
||||
```
|
||||
|
||||
### 5. Exécuter les migrations
|
||||
|
||||
```bash
|
||||
node ace migration:run
|
||||
```
|
||||
|
||||
### 6. Démarrer le serveur de développement
|
||||
|
||||
```bash
|
||||
npm run dev
|
||||
```
|
||||
|
||||
L'application sera disponible à `http://localhost:3333`
|
||||
|
||||
## 🛠️ Scripts disponibles
|
||||
|
||||
```bash
|
||||
# Développement avec hot reload
|
||||
npm run dev
|
||||
|
||||
# Compilation pour la production
|
||||
npm run build
|
||||
|
||||
# Serveur de production
|
||||
npm run start
|
||||
|
||||
# Linter (ESLint)
|
||||
npm run lint
|
||||
|
||||
# Tests
|
||||
npm run test
|
||||
|
||||
# Vérifier les types TypeScript
|
||||
npm run typecheck
|
||||
```
|
||||
|
||||
## 📁 Structure du projet
|
||||
|
||||
```
|
||||
pc_builder/
|
||||
├── app/ # Code métier
|
||||
│ ├── controllers/ # Contrôleurs des routes
|
||||
│ ├── models/ # Modèles Lucid (ORM)
|
||||
│ ├── middleware/ # Middlewares
|
||||
│ ├── validators/ # Validateurs
|
||||
│ ├── services/ # Logique métier
|
||||
│ ├── exceptions/ # Exceptions personnalisées
|
||||
│ └── transformers/ # Transformeurs de données
|
||||
├── inertia/ # Code frontend Vue.js
|
||||
│ ├── pages/ # Pages Vue.js
|
||||
│ ├── components/ # Composants Vue.js réutilisables
|
||||
│ ├── layouts/ # Layouts de pages
|
||||
│ ├── composables/ # Composables Vue.js
|
||||
│ ├── assets/ # Images, icônes, CSS
|
||||
│ └── directives/ # Directives Vue.js personnalisées
|
||||
├── config/ # Fichiers de configuration
|
||||
├── database/ # Migrations et schema
|
||||
│ ├── migrations/ # Fichiers de migration
|
||||
│ └── schema.ts # Schéma de la base de données
|
||||
├── start/ # Points d'entrée de l'application
|
||||
├── public/ # Fichiers publics statiques
|
||||
├── resources/ # Templates Edge
|
||||
├── tests/ # Tests unitaires et fonctionnels
|
||||
└── node_modules/ # Dépendances (ignorées par git)
|
||||
```
|
||||
|
||||
## 🗄️ Modèles de données
|
||||
|
||||
### User
|
||||
- Utilisateurs de l'application
|
||||
- Authentification et autorisation
|
||||
|
||||
### Computer
|
||||
- Configurations PC
|
||||
- Associations avec les composants
|
||||
- Galerie de photos
|
||||
|
||||
### Component
|
||||
- Composants informatiques
|
||||
- Classés par type (CPU, GPU, RAM, etc.)
|
||||
|
||||
### ComputerState
|
||||
- État et historique des configurations
|
||||
|
||||
### ComputerPicture
|
||||
- Images des configurations PC
|
||||
|
||||
## 🔐 Sécurité
|
||||
|
||||
- Validation CSRF sur tous les formulaires
|
||||
- Hachage sécurisé des mots de passe
|
||||
- Middleware d'authentification
|
||||
- Protection CORS configurée
|
||||
- Échappement des données XSS
|
||||
|
||||
## 🧪 Tests
|
||||
|
||||
```bash
|
||||
# Exécuter les tests
|
||||
npm run test
|
||||
|
||||
# Tests avec couverture
|
||||
npm run test:coverage
|
||||
```
|
||||
|
||||
## 📦 Déploiement
|
||||
|
||||
### Avec Docker
|
||||
|
||||
```bash
|
||||
# Construire l'image
|
||||
docker-compose build
|
||||
|
||||
# Lancer les services
|
||||
docker-compose up -d
|
||||
```
|
||||
|
||||
### Manuel
|
||||
|
||||
1. Compiler le projet : `npm run build`
|
||||
2. Installer les dépendances de production : `npm ci --omit=dev`
|
||||
3. Démarrer l'application : `npm start`
|
||||
|
||||
## 🤝 Contribution
|
||||
|
||||
Les contributions sont bienvenues ! Voici le workflow :
|
||||
|
||||
1. Créer une nouvelle branche : `git checkout -b feature/ma-feature`
|
||||
2. Faire vos modifications
|
||||
3. Commiter vos changements : `git commit -m "Add: description"`
|
||||
4. Pousser vers la branche : `git push origin feature/ma-feature`
|
||||
5. Ouvrir une Pull Request
|
||||
|
||||
## 📝 Convention de commits
|
||||
|
||||
- `feat:` Nouvelle fonctionnalité
|
||||
- `fix:` Correction de bug
|
||||
- `docs:` Documentation
|
||||
- `style:` Formatage, sans changement logique
|
||||
- `refactor:` Refactorisation de code
|
||||
- `test:` Ajout ou modification de tests
|
||||
- `chore:` Maintenance, dépendances
|
||||
|
||||
## 📄 Licence
|
||||
|
||||
Ce projet est sous licence MIT.
|
||||
|
||||
## 📧 Support
|
||||
|
||||
Pour toute question ou problème, veuillez ouvrir une issue sur le repository.
|
||||
|
||||
---
|
||||
|
||||
**Repository** : http://192.168.1.39:3000/Stude12/pc_builder
|
||||
**Branche principale** : main
|
||||
|
||||
Reference in New Issue
Block a user