# 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