{"id":25334207,"url":"https://github.com/studoo-app/mock-ecole-directe-api","last_synced_at":"2025-10-29T08:30:46.752Z","repository":{"id":152932001,"uuid":"627363791","full_name":"studoo-app/mock-ecole-directe-api","owner":"studoo-app","description":"Mock for Testing API Ecole Directe","archived":false,"fork":false,"pushed_at":"2023-10-25T08:25:01.000Z","size":132,"stargazers_count":9,"open_issues_count":5,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2023-10-25T09:53:41.031Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/studoo-app.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2023-04-13T10:06:32.000Z","updated_at":"2023-10-25T09:53:45.689Z","dependencies_parsed_at":null,"dependency_job_id":"281490fe-a925-4b3d-8f3f-27bc5db5ec23","html_url":"https://github.com/studoo-app/mock-ecole-directe-api","commit_stats":null,"previous_names":[],"tags_count":3,"template":null,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/studoo-app%2Fmock-ecole-directe-api","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/studoo-app%2Fmock-ecole-directe-api/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/studoo-app%2Fmock-ecole-directe-api/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/studoo-app%2Fmock-ecole-directe-api/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/studoo-app","download_url":"https://codeload.github.com/studoo-app/mock-ecole-directe-api/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":238791922,"owners_count":19531027,"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":"2025-02-14T05:37:22.634Z","updated_at":"2025-10-29T08:30:41.415Z","avatar_url":"https://github.com/studoo-app.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"![separe](https://github.com/studoo-app/.github/blob/main/profile/studoo-banner-logo.png)\n# Mock Ecole Directe API PHP\n![Docker Pulls](https://img.shields.io/docker/pulls/bfoujols/mock-api-ecole-directe)\n\nCréation du mock de l'API Ecole Directe pour les tests unitaires. \\\nCelui-ci est basé sur le projet [studoo/ecole-directe-api](https://github.com/studoo-app/ecole-directe-api)\n\n## Installation d'image Docker\nCe rendre sur la page des [docker/bfoujols/mock-api-ecole-directe](https://hub.docker.com/r/bfoujols/mock-api-ecole-directe) et récupérer la dernière version. \n\n```bash\ndocker pull bfoujols/mock-api-ecole-directe\n```\n## Démarage de l'image Docker\n```bash\ndocker run --name api-ecole-directe -p 9042:80 -d bfoujols/mock-api-ecole-directe\n```\n\nVous pouvez maintenant accéder à l'API via l'adresse http://localhost:9042 \\\nVous pouvez tester l'API via Insomnia :\n[![Run in Insomnia}](https://insomnia.rest/images/run.svg)](https://insomnia.rest/run/?label=MOCK%20API%20ECOLE%20DIRECTE\u0026uri=https%3A%2F%2Fraw.githubusercontent.com%2Fstudoo-app%2Fmock-ecole-directe-api%2Fmain%2FInsomnia.json)\n\n## Utilisation de l'API Ecole Directe Mock\n\nCe mock auto-génère des données à travers des fakers :\n\n### API : /dataset/classes\n\nVisualisation des données des classes\n\n### API : /dataset/etudiants\n\nVisualisation des données des étudiants\n\n### API : /dataset/profs\n\nVisualisation des données des profs\n\n### API : /login\n\nCertains users sont configurés dans le fichier de configDataSet\n\n| Login/Password     \t     | Role              \t | Niveau              \t        | Id Niveau     |\n|--------------------------|----------------|------------------------------|---------------|\n| FPELTIER/test          \t    | Etudiante    \t | BTS SIO 1 année A (1TSSIOA)  | 107           |\n| PTORRE/test          \t     | Etudiante    \t | BTS SIO 1 année A (1TSSIOA)  | 107           |\n| JBOULLAM/test          \t     | Etudiant    \t | Bachelor CSI | 140           |\n\n### API : /classes\n\n| Login/Password     \t     | Role              \t | Id Classe           |\n|--------------------------|----------------|---------------------|\n| JBOUVIER/test          \t | Prof     \t     | 107,120,134,140,141 |\n| BDAN/test          \t | Prof     \t     | 107,120             |\n\n## Personnalisation du mock\n\nVoici les étapes à suivre :\n\n### Faire un fichier \"docker-compose.yml\"\nLa variable \"container_name\" doit être changé afin d'éviter tout conflit.\nLa variable \"ports\" est le port (9042) accessible depuis l'extérieur de Docker. Celui-ci peut être personnalisé, néanmoins le port interne est 80 (apache).\nLe volume sert à rendre accessible dans votre projet les fichiers de configuration et la base de données SQLite.\n\n```yaml\nversion: \"3\"\nservices:\n  api:\n    container_name: mock-api-ecole-directe\n    image: bfoujols/mock-api-ecole-directe:latest\n    ports:\n      - \"9042:80\"\n    volumes:\n      - ./var/dbdataset:/var/www/mock-ecole-directe-api/var\nvolumes:\n  dbdata:\n```\n\n### Télécharger le fichier de configuration du DataSet\n\nPour permettre la personnalisation, vous devez télécharger le modèle de configuration via l'URL suivante :\n- Création du dossier dbdataset dans le dossier var/\n```bash\nmkdir var/dbdataset\n```\n- Téléchargement du fichier de configuration\nPour windows\n```bash\nwget \"https://raw.githubusercontent.com/studoo-app/mock-ecole-directe-api/main/var/configDataset.json\" \u003e var/dbdataset/configDataset.json\n```\n\nPour linux et macos\n```bash\ncurl -fsS https://raw.githubusercontent.com/studoo-app/mock-ecole-directe-api/main/var/configDataset.json \u003e var/dbdataset/configDataset.json\n```\n\nCe modèle exemple vous servira à comprendre les différents paramètres pour :\n#### Personnaliser l'établissement\nVous pouvez personnaliser votre établissement :\n```json\n{  \n  \"organisation\" : {  \n    \"nomEtablissement\" : \"\u003cString\u003e\", // Nom de l'etablissement\n    \"codeOgec\" : \"\u003cString\u003e\", // Code de l'établissement\n    [...]\n    }\n}\n```\n\n\nExemple :\n```json\n{  \n  \"organisation\" : {  \n    \"nomEtablissement\" : \"STUDOO SCHOOL\",  \n    \"codeOgec\" : \"0345587-NC\",\n    [...]\n    }\n}\n```\n\n#### Ajouter des classes et année de promotion\nDans la section \"organisation\" puis  \"V3\" (version de APi), vous pouvez personnaliser les classes :\n```json\n      \"promo\" : \"\u003cString\u003e\", // Promotion avec le format YYYY-YYYY\n```\n\nExemple :\n```json\n      \"promo\" : \"2023-2024\",\n```\n\nDans la section \"organisation\" puis  \"V3\" (version de APi), vous pouvez personnaliser les classes :\n```json\n\"classes\" : {  \n\t\"\u003cInterger\u003e\" : { // ID unique de la classe\n\t  \"libelle\" : \"\u003cString\u003e\", // Libellé de la classe\n\t  \"code\" : \"\u003cString\u003e\" // Code de la classe\n}, \n```\n\nExemple :\n```json\n{  \n  \"organisation\" : {  \n\t[...] \n    \"v3\" : {  \n      \"promo\" : \"2023-2024\",  \n      \"classes\" : {  \n        \"107\" : {  \n          \"libelle\" : \"1 TS SIO A\",  \n          \"code\" : \"1TSSIOA\" \n        },  \n        \"120\" : {  \n          \"libelle\" : \"1 TS SIO B\",  \n          \"code\" : \"1TSSIOB\"  \n        },  \n        \"134\" : {  \n          \"libelle\" : \"1 TS SIO - année alternance\",  \n          \"code\" : \"1TSSIOALT\"  \n        },\n```\n\n#### Ajouter des étudiants fixes\nL'ensemble des étudiants sont généré par un faker. Pour des soucis de test, vous pouvez figer des étudiants dans le fichier de configuration. Par classe, chaque étudiant peut être présent :\n```json\n\"classes\" : {  \n\t\"\u003cInterger\u003e\" : { // ID unique de la classe\n\t  \"libelle\" : \"\u003cString\u003e\", // Libellé de la classe\n\t  \"code\" : \"\u003cString\u003e\" // Code de la classe\n\t .\"etudiants\" : {  \n\t\t  \"\u003cInteger\u003e\" : { // Position dans le tableau insertion dans la base\n\t\t\t\"nom\": \"\u003cString\u003e\", // Nom de l'étudiant\n\t\t\t\"prenom\": \"\u003cString\u003e\", // Prenom de l'étudiant\n\t\t\t\"email\": \"\u003cString\u003e\", // Email de l'étudiant\n\t\t\t\"telPortable\": \"\u003cString\u003e\", // Téléphone de l'étudiant\n\t\t\t\"sexe\": \"\u003cString (F ou M)\u003e\", // Genre de l'étudiant\n\t\t\t\"login\": \"\u003cString\u003e\", // Login de l'étudiant\n\t\t\t\"idLogin\" : \"\u003cInteger\u003e\", // Id interne afin de récuperer l'étudiant en cas de changement majeur\n\t\t\t\"password\": \"\u003cString\u003e\", // Mot de passe de l'étudiant (Non crypté pour des soucis de test)\n\t\t\t\"uid\": \"\u003cString\u003e\",  // UID de l'étudiant 16bit https://fr.wikipedia.org/wiki/Universally_unique_identifier\n\t\t\t\"tokenExpiration\": \"\u003cDateTime YYYY-MM-DD HH:MM:SS\u003e\", // La date limite d'expiration du token d'authentification\n\t\t\t\"lastConnexion\": \"\u003cDateTime YYYY-MM-DD HH:MM:SS\u003e\", // Dernier connexion à l'application\n\t\t\t\"anneeScolaireCourante\": \"\u003cString YYYY-YYYY\u003e\" // Année de promotion de l'étudiant\n\t      },\n```\n\nExemple :\n```json\n\"classes\" : {  \n  \"107\" : {  \n    \"libelle\" : \"1 TS SIO A\",  \n    \"code\" : \"1TSSIOA\",  \n    \"etudiants\" : {  \n      \"1\" : {  \n        \"nom\": \"Peltier\",  \n        \"prenom\": \"Flore\",  \n        \"email\": \"fp@test.com\",  \n        \"telPortable\": \"07 23 45 23 89\",  \n        \"sexe\": \"F\",  \n        \"login\": \"FPELTIER\",  \n        \"idLogin\" : \"7647334\",  \n        \"password\": \"test\",  \n        \"uid\": \"98432dd9-c483-3669-a31e-153fec2eac72\",  \n        \"tokenExpiration\": \"2023-10-08 10:10:03\",  \n        \"lastConnexion\": \"2023-10-08 10:10:03\",  \n        \"anneeScolaireCourante\": \"2020-2021\"  \n      },\n```\n\n#### Ajouter des profs\nDans la section \"organisation\" puis  \"V3\" (version de APi), vous pouvez personnaliser les profs : (Les variables sont équivalentes à la structure d'étudiant)\n```json\n\"professeurs\" : {  \n  \"\u003cinteger\u003e\": {  \n    \"nom\": \"\u003cString\u003e\",  \n    \"prenom\": \"\u003cString\u003e\",  \n    \"email\": \"\u003cString\u003e\",  \n    \"telPortable\": \"\u003cString\u003e\",  \n    \"sexe\": \"\u003cString\u003e\",  \n    \"login\": \"\u003cString\u003e\",  \n    \"idLogin\" : \"\u003cInteger\u003e\",  \n    \"password\": \"\u003cString\u003e\",  \n    \"uid\": \"\u003cString\u003e\",  \n    \"tokenExpiration\": \"\u003cDateTime YYYY-MM-DD HH:MM:SS\u003e\",  \n    \"lastConnexion\": \"\u003cDateTime YYYY-MM-DD HH:MM:SS\u003e\",  \n    \"anneeScolaireCourante\": \"\u003cString\u003e\",  \n    \"classes\" : \"\u003cString\u003e\"  \n  },\n```\n\n\nExemple :\n```json\n\"professeurs\" : {  \n  \"1\": {  \n    \"nom\": \"Bouvier\",  \n    \"prenom\": \"Julien\",  \n    \"email\": \"Julien.Bouvier@test.fr\",  \n    \"telPortable\": \"07 11 81 23 83\",  \n    \"sexe\": \"M\",  \n    \"login\": \"JBOUVIER\",  \n    \"idLogin\" : \"34867434\",  \n    \"password\": \"test\",  \n    \"uid\": \"0f9fdc75-fd68-3fe0-8a09-1864f80025f7\",  \n    \"tokenExpiration\": \"2023-10-08 10:10:03\",  \n    \"lastConnexion\": \"2023-10-08 10:10:03\",  \n    \"anneeScolaireCourante\": \"2020-2021\",  \n    \"classes\" : \"107,120,134,140,141\"  \n  },\n```\n\n\n### Démarrer les containers Docker\n\n```\ndocker compose up -d\n```\n\n### Générer le DataSet\n\n```\nhttp://localhost:9042/init\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstudoo-app%2Fmock-ecole-directe-api","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fstudoo-app%2Fmock-ecole-directe-api","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstudoo-app%2Fmock-ecole-directe-api/lists"}