209 lines
5.3 KiB
Markdown
209 lines
5.3 KiB
Markdown
# 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
|