{"id":18283379,"url":"https://github.com/ungdev/integration-utt","last_synced_at":"2025-04-05T07:30:41.936Z","repository":{"id":35430887,"uuid":"39696770","full_name":"ungdev/integration-UTT","owner":"ungdev","description":"Site de l'intégration du BDE de l'UTT.","archived":true,"fork":false,"pushed_at":"2023-09-12T11:12:03.000Z","size":120922,"stargazers_count":0,"open_issues_count":22,"forks_count":3,"subscribers_count":6,"default_branch":"dev","last_synced_at":"2025-02-15T00:18:22.846Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Blade","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ungdev.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2015-07-25T18:01:37.000Z","updated_at":"2024-04-15T22:04:51.000Z","dependencies_parsed_at":"2024-11-05T13:21:12.838Z","dependency_job_id":null,"html_url":"https://github.com/ungdev/integration-UTT","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ungdev%2Fintegration-UTT","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ungdev%2Fintegration-UTT/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ungdev%2Fintegration-UTT/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ungdev%2Fintegration-UTT/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ungdev","download_url":"https://codeload.github.com/ungdev/integration-UTT/tar.gz/refs/heads/dev","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247305137,"owners_count":20917191,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-05T13:09:15.588Z","updated_at":"2025-04-05T07:30:36.926Z","avatar_url":"https://github.com/ungdev.png","language":"Blade","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Intégration\n\nSite réalisé pour le [BDE de l'UTT](http://bde.utt.fr), sous Laravel 5.2. Le but est de pouvoir importer, gérer les nouveaux étudiants, les assigner à une équipe, ...\n\n## Getting started\n\nPour développer le site d'inté, vous aurez besoin d'avoir les logiciels suivant installé sur votre ordinateur\n\n* git\n* PHP 7.1+ (Avec les extensions: gd, mysql)\n* Composer\n* MariaDB (les migrations contiennent des instructions spécifiques à MySQL / MariaDB)\n\nExemple d'installation de dépendance pour Ubuntu 20.04, ajustez cette commande pour votre système :\n\n```\nsudo apt install git php7.4 php7.4-gd php7.4-mysql composer mariadb-server mariadb-client\n```\n\nCommencez par cloner le repo git où vous le souhaitez\n\n```\ngit@github.com:ungdev/integration-UTT.git\n```\n\nEntrez ensuite dans ce dossier et installez toutes les dépendances composer:\n\n```\ncd integration-UTT\ncomposer install\n```\n\n### Configuration et initialisation de la base de donnée\n\nUne fois les dépendances installées, nous pouvons configurer la base de donnée. Coté MariaDB, il suffit de créer la base de donnée vide et un utilisateur associé:\n\n```\nsudo mysql\ncreate database integration;\nCREATE USER 'integration'@'localhost' IDENTIFIED BY 'TheDbPassword';\nGRANT ALL PRIVILEGES ON integration.* TO 'integration'@'localhost';\nFLUSH PRIVILEGES;\n```\n\nIl faut ensuite indiquer à laravel comment se connecter à la base de donnée. Pour cela, on crée le fichier de config `.env`.\n\n```\ncp .env.example .env\n```\n\nPuis dans le `.env` modifiez les éléments suivants\n\n```\nDB_HOST=127.0.0.1\nDB_PORT=3306\nDB_DATABASE=integration\nDB_USERNAME=integration\nDB_PASSWORD=TheDbPassword\n```\n\nMaintenant que la base de donnée est configuré, nous pouvons lancer les migrations. Cela permettra de créer la structure de la base de donnée.\n\n```\nphp artisan migrate\n```\n\n### Génération des clés de chiffrement\n\nJuste avant de pouvoir lancer le site, vous devez lancer les commandes suivantes\n\n```\nphp artisan key:generate\nphp artisan passport:install\n```\n\n### Lancement du site\n\n```\nphp artisan serve\n```\n\nVous devriez maintenant pouvoir accéder au site depuis http://127.0.0.1:8000. Vous ne pouvez par contre pas encore vous connecter..\n\n\n### Configuration de la connexion via EtuUTT\n\nL'une des façons de vous connecter au site, est de le relier à EtuUTT. Pour cela, rendez vous sur [la section developpeur d'EtuUTT](https://etu.utt.fr/api/panel) et créez une application\n\nConcernant l'URL de redirection, mettez `http://localhost/oauth/callback`. Si nécéssaire remplacez `localhost` avec le nom de domaine ou l'ip et le port sur lequel vous accédez à votre version de développement du site.\n\nLe site de l'intégration n'a besoin d'avoir accès que aux `Données publiques` puisqu'il se sert du site étudiant uniquement pour l'authentification.\n\nUne fois l'application créée sur EtuUTT, récupérez le `client id` et `client secret` pour les mettre dans le fichier `.env` sous les clées `ETUUTT_CLIENT_ID` et `ETUUTT_CLIENT_SECRET`.\n\nUne fois fait, vous devriez pouvoir vous connecter via le formulaire de connexion dédié aux étudiants.\n\n### Ajout d'un administrateur\n\nVous pouvez vous connecter, mais vous ne serez qu'un simple bénévole. Pour devenir admin, il vous suffit de lancer la commande suivante\n\n```\nphp artisan integration:user:set-admin\n```\n\n### Remplissage de la base de donnée\n\nSi vous ne disposez pas de données réelles, vous voudrez sans-doute remplir la base de donnée avec des utilisateurs et équipes aléatoires. Pour cela, lancez la commande suivante\n\n```\nphp artisan db:seed\n```\n\n### Envoi des emails\n\nLe `MAIL_DRIVER` par défaut est `log`. Cela veut dire que tous les emails envoyés finiront dans les logs et que vous pouvez jouer avec le site sans craindre d'envoyer des emails en masses à tous les nouveaux. Vous retrouverez le contenu des emails envoyés dans `storage/logs/laravel-*.log`\n\nCependant, comme l'envoi d'email se fait en asynchrone via le mécanisme de queue de laravel, l'envoi d'email ne fonctionnera pas jusqu'à ce que vous executiez la commande suivante\n\n```\nphp artisan queue:listen\n```\n\n\n### Production\nPour la mise en production, vous pouvez suivre une bonne partie des sections précédentes. Cependant, assurez vous aussi de lancer le processus de queue en tache de fond :\n\n```\nphp artisan queue:work --queue=high,low --sleep=3 --tries=3 --daemon\n```\n\nAinsi que les cron suivantes\n\n```\n# Import régulier des nouveaux utilisateurs depuis l'utt\n*/5 * * * * php artisan integration:newcomers:import\n# Divers taches dont l'envoi d'email\n* * * * * cd /path-to-your-project \u0026\u0026 php artisan schedule:run \u003e\u003e /dev/null 2\u003e\u00261\n```\n\n## Documentation générale\n### Import des photos de profile des étudiants\n\nAssurez vous que le dossier `public/uploads/students-trombi` existe, puis executez la commande suivante :\n```\nphp artisan integration:students:importPictures\n```\n\n### Week-end d'intégration\n\nLes inscriptions au week-end d'intégration sont gérées depuis l'interface d'administration :\nles personnes n'ont pas à renseigner elles-même leurs informations.\n\nUne inscription est considérée comme complète uniquement si les critères suivants sont réunis :\n* Le chèque de paiement et de caution sont bien donnés.\n* Si la personne est mineure lors du jour de départ du WEI, l'autorisation\nparentale a été donnée.\n* Toutes les informations nécessaires au contact de la personne (email, téléphone)\nsont présentes.\n* Le montant de tous les chèques donnés lors de l'inscription correspondent au\nprix du WEI et de la caution.\n\nLes chèques sont gérés dans une table différente des inscriptions au WEI, dans\nle but de pouvoir faire la distinction entre chèque de caution et de paiement.\nLes informations liées à chaque chèque (numéro, banque, émetteur) sont enregistrées\ndans la table `checks`.\n\n### Configuration\n\n#### EtuUTT\n\nLes parrains, CE et admins sont identifiés via le site etudiant EtuUTT. Il faut\ndonc créer une application sur le site avec comme URL de redirection `https://integration.utt.fr/oauth/callback`.\nVous devez aussi cocher le scope `Données privées`\n\nEnsuite il faut configurer les champs suivants dans le fichier `.env` :\n\n* `ETUUTT_CLIENT_ID` : Application Id donné par EtuUTT\n* `ETUUTT_CLIENT_SECRET` : Application Secret donné par EtuUTT\n\n#### Application mobile\n\n* Pour les nouveaux :\n\nL'application est considérée comme cliente du site d'intégration, il faut mettre ses credentials intégration dans le fichier config.js à la racine et builder les packages :\n\n```javascript\nexport default  {\n  inte_client_id: \"your client id\",\n  inte_client_secret: \"your client secret\",\n  inte_url: \"https://integration.utt.fr/api/\",\n}\n```\n\n* Pour les anciens :\n\nL'authentification se fait via les étapes suivantes :\n\n* l'application requête une url du site d'intégration qui lui renvoie l'url du site etu avec le client id, ... générée via les variables `ETUUTT_MOBILE_CLIENT_ID` et `ETUUTT_MOBILE_CLIENT_SECRET`\n\nL'application mobile est identifiée comme une application externe sur le site etu : il faut donc la créer avec les paramètres suivants :\n\n* Accès données publiques et privées\n* URL de retour : `http://localhost:8100/`\n\n#### Reconfiguration annuelle\n\nPour adapter le site de l'intégration à l'année, voir le document [Mise à jour annuelle](docs/annual_update.md).\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fungdev%2Fintegration-utt","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fungdev%2Fintegration-utt","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fungdev%2Fintegration-utt/lists"}