# Plateforme web pour les adhérents KAZ ## Objectif Cette application web permet aux adhérents de l'association KAZ de gérer leur compte en agrégeant les données des utilisateurs dispersées dans plusieurs outils de l'écosystème. ## Fonctionnalités (Version 1) - **Connexion sécurisée** : Accès réservé aux adhérents à l'administration. - **Visualisation des données** : Affichage des informations personnelles de l'utilisateur. - **Modification du profil** : Possibilité de changer l'adresse e-mail de secours. ## Architecture technique - **Frontend** : [Twig](https://twig.symfony.com/) + [Tailwind CSS](https://tailwindcss.com/) - **Backend** : PHP 8.4 / [Symfony](https://symfony.com/) - **Base de données** : [PostgreSQL](https://www.postgresql.org/) - **Intégration** : Communication via API avec les outils de KAZ (notamment OpenLDAP). Cette base est conçue pour évoluer et intégrer de nouveaux outils et fonctionnalités à l'avenir. ## Prérequis - **PHP** 8.4 - **[Composer](https://getcomposer.org/download/)** : (Gestionnaire de dépendances PHP) - **[Symfony CLI](https://getcomposer.org/download/)** (Interface en ligne de commande Symfony) - **Docker** Permet de lancer les services lié: postgres (base de données), mailpit (serveur de messagerie pour le dev) - **IDE recommandé** : PhpStorm ou VSCode Vérifier les prérequis : ```symfony check:requirements``` ## Normes de développement Le projet suit les standards de développement suivants : - **[Git Flow](https://git-flow.readthedocs.io/fr/latest/presentation.html)** : Modèle de gestion de branches. - **[Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/)** : Norme pour les messages de commit. ### Procédure de contribution (Git Flow) Toutes les modifications doivent passer par une branche dédiée avant d'être fusionnées dans la branche principal `main` via une Pull Request (Demande d'ajout). #### Exemple d'ajout d'une fonctionnalité (feature) 1. **Mise à jour de l'environnement local** : ```bash git checkout main git pull origin main ``` 2. **Création de la branche de fonctionnalité** (préfixe `feat/`) : ```bash git checkout -b feat/nom-de-ma-feature ``` 3. **Développement et commit** (respectant les Conventional Commits) : ```bash git add . git commit -m "feat: ajout de la nouvelle fonctionnalité" ``` 4. **Publication de la branche** : ```bash git push origin feat/nom-de-ma-feature ``` 5. **Création de la Pull Request** : Rendez-vous sur Gitea pour ouvrir une PR de `feat/nom-de-ma-feature` vers `main`. Une fois revue et validée, elle sera fusionnée via l'interface. #### Exemple de correction de bug (fix) La procédure est identique, mais utilisez le préfixe `fix/` : ```bash git checkout -b fix/nom-du-bug # ... corrections ... git commit -m "fix: résolution du problème" git push origin fix/nom-du-bug ``` Pour les tâches de maintenance ou documentation, utilisez respectivement les préfixes `chore/` ou `docs/`. ## Quick start ### 1. Clonage du projet Clonez le projet en utilisant SSH : ```bash git clone ssh://git@git.kaz.bzh:2202/melvin-leveque/interface-kaznautes.git cd interface-kaznautes ``` ### 2. Installation des dépendances Installez les dépendances avec Composer : ```bash composer install ``` ### 3. Configuration de l'environnement Copiez le fichier `.env` en `.env.local` et configurez vos accès à la base de données et à l'API : ```bash cp .env .env.local ``` ### 4. Base de données Créez la base de données et exécutez les migrations : ```bash php bin/console doctrine:database:create php bin/console doctrine:migrations:migrate ``` ### 5. Installation des assets Le projet utilise AssetMapper. Installez les dépendances JS : ```bash php bin/console importmap:install ``` ### 6. Lancement du serveur Utilisez le serveur Symfony pour lancer le projet localement : ```bash symfony serve -d ``` L'application sera accessible sur `https://127.0.0.1:8000`. ## Structure des dossiers ``` . ├── assets/ │ ├── controllers/ # JS │ ├── styles/ # CSS │ └── images/ # Images du site ├── public/ # Fichiers publics directs └── templates/ ├── _partials/ # TODO: _navbar.html.twig, _footer.html.twig... ├── bundles/ │ └── TwigBundle/ │ └── Exception/ │ ├── error404.html.twig │ ├── error500.html.twig │ └── error.html.twig ├── user/ # Correspond à UserController │ └── index.html.twig └── base.html.twig # Layout principal ``` --- *Projet développé pour KAZ.*