# DSIGEST - Gestion de Contrats IT Application de gestion de contrats IT pour une communauté d'agglomération. ## Stack - Backend: Laravel 12, PHP 8.3, MySQL - Frontend: Vue.js 3 + Bootstrap 5 (intégré via Blade) - Auth: Custom (Login/Register avec validation Admin) ## Installation 1. Cloner le repo / Extraire les fichiers. 2. Installer les dépendances : ```bash composer install npm install ``` 3. Configurer `.env` : - Copier `.env.example` vers `.env`. - Configurer la connexion MySQL (`DB_CONNECTION=mysql`, `DB_DATABASE=...`, etc). 4. Générer la clé : ```bash php artisan key:generate ``` 5. Migrations et Seeders : ```bash php artisan migrate --seed ``` Ceci créera : - Admin: `admin@dsigest.local` / `password` - Manager: `manager@dsigest.local` / `password` 6. Compiler les assets Frontend : ```bash npm run build ``` Pour le développement : ```bash npm run dev ``` ## Fonctionnalités - **Roles** : Admin, Gestionnaire (Manager), Lecteur. - **Admin Validation** : Les nouveaux inscrits doivent être validés par un Admin (`is_active = true`). - **Contrats** : CRUD complet + Types (Microsoft 365, Fibre, etc). - **Meta-données** : Champs dynamiques clé/valeur pour chaque contrat. - **Documents** : Upload de fichiers attachés aux contrats. - **Audit Logs** : Traçabilité des actions (Création, Modification, Suppression). - **Alertes** : Commande pour vérifier les échéances : ```bash php artisan contracts:check-expirations ``` Ajouter cette commande au CRON du serveur. ## Structure - `app/Models/Contract.php` : Modèle principal. - `app/Http/Controllers/ContractController.php` : Logique CRUD. - `resources/js/components/ContractsTable.vue` : Composant Vue.js tableau avec filtres. - `resources/views/` : Vues Blade utilisant Bootstrap 5.