<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://air.imag.fr/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Roman.Regouin</id>
	<title>air - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://air.imag.fr/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Roman.Regouin"/>
	<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php/Special:Contributions/Roman.Regouin"/>
	<updated>2026-05-29T23:33:43Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.39.17</generator>
	<entry>
		<id>https://air.imag.fr/index.php?title=Rapport_EDCampus_2021-2022&amp;diff=52361</id>
		<title>Rapport EDCampus 2021-2022</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=Rapport_EDCampus_2021-2022&amp;diff=52361"/>
		<updated>2022-03-17T21:24:58Z</updated>

		<summary type="html">&lt;p&gt;Roman.Regouin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Rapport EDCampus 2021/2022=&lt;br /&gt;
&lt;br /&gt;
== Rappel du sujet ==&lt;br /&gt;
&lt;br /&gt;
EDCampus, initialement Waza Education et racheté par l’UGA pour la modique somme de 20 000€, est un projet de développement open source et collaboratif d’une plateforme web de gestion de projets pour les enseignants, les étudiants et les entreprises. En rachetant ce projet, l’UGA a fait l’acquisition d’un projet de 3 ans de développement pour l’équivalent d’un salaire d’ingénieur de 4 mois. La plateforme contient un ensemble de fonctionnalités pour faciliter la gestion de projet Agile et la gestion de projet parallèle pour les enseignants. On peut citer parmi les fonctionnalités importantes:&lt;br /&gt;
&lt;br /&gt;
- L’héritage de création de projets qui permet à un enseignant de créer et mettre à jour rapidement un ensemble de projets étudiants identique.&lt;br /&gt;
&lt;br /&gt;
- Un partage de dossier, fichier et de liens externes.&lt;br /&gt;
&lt;br /&gt;
- Un kanban Agile pour le suivi de projet pour la manipulation des tâches.&lt;br /&gt;
&lt;br /&gt;
- Un calendrier avec des événements pour le suivi de l’évolution du projet et l’avancement des tâches.&lt;br /&gt;
&lt;br /&gt;
- Un outil de chat instantané pour la communication dans un groupe.&lt;br /&gt;
&lt;br /&gt;
- Un outil de tableau blanc pour faciliter les sessions créatives.&lt;br /&gt;
&lt;br /&gt;
EDCampus c’est plus de 2400 comptes utilisateurs, 500 utilisateurs actifs, plus de 500 projets, un ensemble de 11 projets de contribution étudiante (de 2019 à 2022) venant de Polytech Grenoble, de l’IUT Valence et de l’Université de Haute-Alsace.  &lt;br /&gt;
&lt;br /&gt;
Le but de notre projet est de rejoindre les contributeurs d’EDCampus pour maintenir l’application en corrigeant les bugs remontés par les utilisateurs, en développant de nouvelles fonctionnalités ou en modifiant des fonctionnalités déjà existantes.  &lt;br /&gt;
&lt;br /&gt;
Notre équipe est composée de 4 contributeurs (Kévin, Liam Lucas, Roman), d’un chef de projet (Lucas) ainsi que d’un ScrumMaster (Roman). L’objectif décrit par notre porteur en plus d’apporter notre contribution au projet et d’avoir appris de nouvelle chose, que ce soit sur la méthodologie employée ou les technologies utilisées sur le projet.&lt;br /&gt;
&lt;br /&gt;
== Technologies ==&lt;br /&gt;
=== Frontend ===&lt;br /&gt;
- [https://angular.io/ Angular]&lt;br /&gt;
&lt;br /&gt;
- HTML/CSS/JS&lt;br /&gt;
&lt;br /&gt;
- [https://nodejs.org/en/ NodeJS]&lt;br /&gt;
=== Backend ===&lt;br /&gt;
- [https://www.php.net/ PHP]&lt;br /&gt;
&lt;br /&gt;
- [https://www.mysql.com/fr/ MySQL]&lt;br /&gt;
&lt;br /&gt;
- [https://www.docker.com/ Docker]&lt;br /&gt;
=== Projet ===&lt;br /&gt;
- [https://git-scm.com/ Git]&lt;br /&gt;
&lt;br /&gt;
== Architecture technique ==&lt;br /&gt;
[[File:ArchitectureEDCampus.png]]&lt;br /&gt;
&lt;br /&gt;
Le projet EDCampus utilise la dockerisation pour utiliser un ensemble d&#039;outils utilisant des technologies différentes et faciliter l&#039;installation et le développement de l’application. Nous avons un script qui regroupe différentes commandes pour gérer les dockers du projet. Nous avons plusieurs containers docker : 1 pour la base de données, 1 pour le chat, 1 pour le tableau blanc, 1 pour nginx, 1 pour le back + front, 1 pour phpMyAdmin. Ces dockers sont placés correctement via docker compose.&lt;br /&gt;
&lt;br /&gt;
== Réalisations techniques ==&lt;br /&gt;
&lt;br /&gt;
Ce projet aura été un total de 23 tâches réalisées. Celles-ci comprennent des fixes de bug, de nouvelles features et des améliorations de l&#039;existant.&lt;br /&gt;
&lt;br /&gt;
=== Correction de bugs ===&lt;br /&gt;
- Fermeture du menu d’information en cas de suppression d’un fichier.&lt;br /&gt;
&lt;br /&gt;
- Code d’un projet/portefeuille non enregistré lors de sa création.&lt;br /&gt;
&lt;br /&gt;
- Thème d’un projet/portefeuille marqué non défini sur la page principal de celui-ci.&lt;br /&gt;
&lt;br /&gt;
- Correction de la prévisualisation des fichiers:&lt;br /&gt;
Depuis janvier 2022, l’API du service CloudConvert, utilisé pour la conversion des fichiers au format PNG pour la prévisualisation, n’est plus disponible et une migration vers leur nouvelle API était nécessaire. Dans un premier temps, un travail de recherche a été effectué pour faire un état de l’art des libraires, packages et/ou extensions disponible pour le traitement de fichiers de PDF, en évitant l’utilisation d’un nouveau service en ligne, pour remplacer le service de CloudConvert pour ne plus devoir payer ce service et avoir une fonctionnalité fonctionnelle. L’extension Imagick pour la conversion de PNG  et Ghostscript pour la lecture de fichier PDF a finalement été choisie. La grande majorité des librairies se reposent directement sur ces deux extensions et les autres librairies étaient plus axées sur la génération de fichier PDF à partir de code HTML ou de fonction PHP.  &lt;br /&gt;
Un autre état de l’art des libraires, packages et/ou extensions disponible pour le traitement de fichiers Excel a été réalisé. Le choix s&#039;est porté sur un package permettant la conversion de fichier Excel à PDF puis une réutilisation de la fonctionnalité de conversion de PDF à PNG de Imagick.&lt;br /&gt;
&lt;br /&gt;
- Remplacement de l’API sendgrid (plus à jour) par SMTP pour l’envoi des relances de livrable&lt;br /&gt;
&lt;br /&gt;
=== Nouvelles fonctionnalités ===&lt;br /&gt;
- Ajout de l’envoi d’un mail à chaque invité dans un projet et/ou portefeuille.&lt;br /&gt;
&lt;br /&gt;
- Recherche de fichiers/dossiers/liens dans la section Fichiers d’un projet/portefeuille.&lt;br /&gt;
&lt;br /&gt;
- Activer/Désactiver une option pour les projets/portefeuilles.&lt;br /&gt;
&lt;br /&gt;
=== Amélioration de l’existant ===&lt;br /&gt;
- Amélioration de formulaires sur plusieurs pages.&lt;br /&gt;
&lt;br /&gt;
- Amélioration du visuel de la section Fichiers d’un projet.&lt;br /&gt;
&lt;br /&gt;
- Modification de scripts de développement : un script nommé edc a été modifié pour permettre de supprimer les volumes docker associés à EDCampus et vérifier que les ports utilisés par les dockers étaient bien disponibles sur la machine.&lt;br /&gt;
&lt;br /&gt;
== Gestion de projet ==&lt;br /&gt;
&lt;br /&gt;
=== Méthode ===&lt;br /&gt;
Nous avons utilisé la méthodologie Agile Scrum avec des sprints de 1~2 semaines à l’issue desquels nous avions une réunion rétrospective afin de discuter de l’avancement/blocage de chacun.&lt;br /&gt;
&lt;br /&gt;
=== L’équipe ===&lt;br /&gt;
- PO/Porteur : Anthony GEOURJON&lt;br /&gt;
&lt;br /&gt;
- &amp;quot;Chef de projet&amp;quot; : Lucas DREZET&lt;br /&gt;
&lt;br /&gt;
- Scrum Master : Roman REGOUIN&lt;br /&gt;
&lt;br /&gt;
- Contributeurs : Liam ANDRIEUX, Kévin COSOTTI, Lucas DREZET, Roman REGOUIN (et Anthony GEOURJON)&lt;br /&gt;
&lt;br /&gt;
== Outils ==&lt;br /&gt;
&lt;br /&gt;
- [https://gricad-gitlab.univ-grenoble-alpes.fr/ GitLabUGA] : Plateforme utilisée pour la visualisation du code, utilisation d’un kanban pour visualiser les différentes issues, objectifs et la répartition du travail.&lt;br /&gt;
&lt;br /&gt;
- [https://discord.com/ Disord] : Plateforme utilisée pour communiquer entre nous hors réunions. Nous avons pu faire des appels vocaux, des partages d&#039;écrans et des envois de messages.&lt;br /&gt;
&lt;br /&gt;
- [https://www.jetbrains.com/fr-fr/phpstorm/ PhpStorm] :  IDE utilisé pour développer le code&lt;br /&gt;
&lt;br /&gt;
- [https://www.vmware.com/fr/products/workstation-pro/workstation-pro-evaluation.html VMWare Workstation] : Outils de création de machines virtuelles pour simuler un Ubuntu.&lt;br /&gt;
&lt;br /&gt;
- CI /CD : Mise en place sur le GitLab par d’anciens étudiants, mais ne marche pas.&lt;br /&gt;
&lt;br /&gt;
== Métriques logicielles ==&lt;br /&gt;
=== Lignes de code modifiées ===&lt;br /&gt;
3762&lt;br /&gt;
=== Langages ===&lt;br /&gt;
JS, HTML, CSS, PHP, SQL&lt;br /&gt;
=== Temps ingénieur ===&lt;br /&gt;
[[File:COCOMOEDCampus.png]]&lt;br /&gt;
&lt;br /&gt;
=== Répartition de code, issues et commits en % entre membres ===&lt;br /&gt;
[[File:RépartitionLignesIssuesCommitsEDCampus.png]]&lt;br /&gt;
&lt;br /&gt;
[[File:RépartitionGrapheLignesIssuesEDCampus.png]]&lt;br /&gt;
&lt;br /&gt;
[[File:RépartitionGrapheCommitsEDCampus.png]]&lt;br /&gt;
&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
=== Difficultés rencontrées : ===&lt;br /&gt;
- Code parfois mal documenté.&lt;br /&gt;
&lt;br /&gt;
- Mise en place du Debugger Backend sous WSL (Windows Subsystem Linux).&lt;br /&gt;
&lt;br /&gt;
- Manque de motivation pour certains membres.&lt;br /&gt;
&lt;br /&gt;
- Projet ecom en parallèle (comparé aux autres années).&lt;br /&gt;
&lt;br /&gt;
=== Apport personnel ===&lt;br /&gt;
- Apprentissage de nouvelles technologies.&lt;br /&gt;
&lt;br /&gt;
- Satisfaction d’avoir pu apporter notre aide à un projet concret et durable.&lt;br /&gt;
&lt;br /&gt;
- Compétences acquises : savoir se retrouver dans le code d’un projet créé par d’autres personnes.&lt;br /&gt;
&lt;br /&gt;
- Exemple de projet réel et non de projet scolaire: le code n’est pas tout propre et nous ne partons pas de 0.&lt;br /&gt;
=== Futur ===&lt;br /&gt;
- Mettre en place de la CI/CD fonctionnelle, mettre en place des règles de codages, avoir un peu plus de documentation au niveau du code.&lt;br /&gt;
&lt;br /&gt;
- Certaines parties du projet sont trop compliquées à maintenir et donc refaire quelque chose de 0 serait plus simple.&lt;br /&gt;
&lt;br /&gt;
- Faire un état de l’application: code obsolète, utilisé, non documenté et peut être mettre une personne à plein temps pour mettre à jour l’application, quitte à mettre en pause le développement et/ou l’utilisation de certaines fonctionnalités.&lt;br /&gt;
&lt;br /&gt;
== Démonstration ==&lt;br /&gt;
&lt;br /&gt;
== Glossaire ==&lt;br /&gt;
&lt;br /&gt;
- CI/CD : Continious Integration / Continious Deployment, processus d&#039;automatisations de différentes tâches comme par exemple le lancement de test et la création de livrable.&lt;br /&gt;
&lt;br /&gt;
== Bibliographie ==&lt;br /&gt;
- [https://gricad-gitlab.univ-grenoble-alpes.fr/edcampus Git EDCampus]&lt;br /&gt;
&lt;br /&gt;
- Graphiques de contribution : Lucas DREZET&lt;/div&gt;</summary>
		<author><name>Roman.Regouin</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=Rapport_EDCampus_2021-2022&amp;diff=52297</id>
		<title>Rapport EDCampus 2021-2022</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=Rapport_EDCampus_2021-2022&amp;diff=52297"/>
		<updated>2022-03-17T18:52:38Z</updated>

		<summary type="html">&lt;p&gt;Roman.Regouin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;# EdCampus 2021 - 2022&lt;br /&gt;
&lt;br /&gt;
1. [Rappel du sujet](#rappel-du-sujet)&lt;br /&gt;
2. [Technologies employées](#technologies)&lt;br /&gt;
3. [Architecture techniques](#architecture-technique)&lt;br /&gt;
4. [Réalisations techniques](#réalisations-techniques)&lt;br /&gt;
5. [Gestion de projet](#gestion-de-projet)&lt;br /&gt;
6. [Outils](#outils)&lt;br /&gt;
7. [Métriques logiciels](#metriques-logiciels)&lt;br /&gt;
8. [Conclusion](#conclusion)&lt;br /&gt;
9. [Démonstration](#demonstration)&lt;br /&gt;
10. [Glossaire](#glossaire)&lt;br /&gt;
11. [Bibliographie](#bibliographie)&lt;br /&gt;
&lt;br /&gt;
## Rappel du sujet&lt;br /&gt;
&lt;br /&gt;
EDCampus, initialement Waza Education et racheté par l’UGA pour la modique somme de 20 000€, est un projet de développement open source et collaboratif d’une plateforme web de gestion de projets pour les enseignants, les étudiants et les entreprises. En rachetant ce projet, l’UGA a fait l’acquisition d’un projet de 3 ans de développement pour l’équivalent d’un salaire d’ingénieur de 4 mois. La plateforme contient un ensemble de fonctionnalités pour faciliter la gestion de projet Agile et la gestion de projet parallèle pour les enseignants. On peut citer parmis les fonctionnalitées importantes:&lt;br /&gt;
- l’héritage de création de projet qui permet à un enseignant de créer et mettre à jour rapidement un ensemble de projet étudiant identique.&lt;br /&gt;
- un partage de dossier, fichier et de liens externes.&lt;br /&gt;
- un kanban Agile pour le suivi de projet pour la manipulation des tâches.&lt;br /&gt;
- un calendrier avec des événements pour le suivi de l’évolution du projet et l’avancement des tâches.&lt;br /&gt;
- un outil de chat instantané pour la communication dans un groupe.&lt;br /&gt;
- un outil de tableau blanc pour faciliter les sessions créatives.&lt;br /&gt;
&lt;br /&gt;
EDCampus c’est plus de 2400 comptes utilisateurs, 500 utilisateurs actifs, plus de 500 projets, un ensemble de 11 projets de contribution étudiantes (de 2019 à 2022) venant de Polytech Grenoble, de l’IUT Valence et de l’Université de Haute-Alsace.  &lt;br /&gt;
&lt;br /&gt;
Le but de notre projet est de rejoindre les contributeurs d’EDCampus pour maintenir l’application en corrigeant les bugs remontés par les utilisateurs, en développant de nouvelle fonctionnalité ou en modifiant des fonctionnalités déjà existantes.  &lt;br /&gt;
&lt;br /&gt;
Notre équipe est composée de 4 contributeurs (Kévin, Liam Lucas, Roman), d’un chef de projet (Lucas) ainsi que d’un ScrumMaster (Roman). L’objectif décrit par notre porteur en plus d’apporter notre contribution au projet et d’avoir appris de nouvelle chose, que ce soit sur la méthodologie employé ou les technologies utilisées sur le projet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
## Technologies&lt;br /&gt;
&lt;br /&gt;
- FrontEnd :&lt;br /&gt;
    - [Angular](#https://angular.io/)&lt;br /&gt;
    - HTML/CSS/JS&lt;br /&gt;
    - [NodeJS](#https://nodejs.org/en/)&lt;br /&gt;
- BackEnd :&lt;br /&gt;
    - [PHP](#https://www.php.net/)&lt;br /&gt;
    - [MySQL](#https://www.mysql.com/fr/)&lt;br /&gt;
    - [Docker](#https://www.docker.com/)&lt;br /&gt;
- Projet :&lt;br /&gt;
    - [Git](#https://git-scm.com/)&lt;br /&gt;
&lt;br /&gt;
## Architecture technique&lt;br /&gt;
&lt;br /&gt;
[Image arichtecture de communication]&lt;br /&gt;
&lt;br /&gt;
Le projet EDCampus utilise la dockerisation pour utiliser un ensemble de d&#039;outils utilisant des technologies différentes et faciliter l&#039;installation et le développement de l’application. Nous avons un script qui regroupe différentes commandes pour gérer les dockers du projet. Nous avons plusieurs container docker : 1 pour la base de donnée, 1 pour le chat, 1 pour le tableau blanc, 1 pour nginx, 1 pour le back + front, 1 pour phpMyAdmin. Ces dockers sont placées correctement via docker compose.&lt;br /&gt;
&lt;br /&gt;
## Réalisations techniques&lt;br /&gt;
    &lt;br /&gt;
Ce projet aura été un total de 23 tâches réalisées. Celles-ci comprennent des fixs de bug, de nouvelles features et des améliorations de l&#039;existant.&lt;br /&gt;
&lt;br /&gt;
- Correction de bugs :  &lt;br /&gt;
    - fermeture du menu d’information en cas de suppression d’un fichier.&lt;br /&gt;
    - code d’un projet/portefeuille non enregistré lors de sa création.&lt;br /&gt;
    - thème d’un projet/portefeuille marqué non défini sur la page principal de celui-ci.&lt;br /&gt;
    - correction de la prévisualisation des fichiers:&lt;br /&gt;
depuis Janvier 2022, l’API du service CloudConvert, utilisé pour la conversion des fichiers au format png pour la prévisualisation, n’est plus disponible et une migration vers leur nouvelle API était nécessaire. Dans un premier temps, un travail de recherche a été effectué pour faire un état de l’art des libraires, packages et/ou extensions disponible pour le traitement de fichiers de PDF, en évitant l’utilisation d’un nouveau service en ligne, pour remplacer le service de CloudConvert pour ne plus devoir payer ce service et avoir une fonctionnalité fonctionnelle. L’extension Imagick pour la conversion de PNG  et Ghostscript pour la lecture de fichier PDF ont finalement été choisi. La grande majorité des librairies se reposent directement sur ces deux extensions et les autres librairies étaient plus axés sur la génération de fichier PDF à partir de code HTML ou de fonction PHP.  &lt;br /&gt;
Un autre état de l’art des libraires, packages et/ou extensions disponible pour le traitement de fichiers Excel a été réalisé. Le choix s&#039;est porté sur un package permettant la conversion de fichier Excel à PDF puis une réutilisation de la fonctionnalité de conversion de PDF a PNG de Imagick.  &lt;br /&gt;
    - Remplacement de l’API sendgrid (plus à jour) par SMTP pour l’envoi des relances de livrable&lt;br /&gt;
&lt;br /&gt;
- Nouvelles fonctionnalités :&lt;br /&gt;
    - Ajout de l’envoi d’un mail à chaque invité dans un projet et/ou portefeuille.&lt;br /&gt;
    - Recherche de fichiers/dossiers/liens dans la section Fichiers d’un projet/portefeuille.&lt;br /&gt;
    - Activer/Désactiver une option pour les projets/portefeuilles.&lt;br /&gt;
&lt;br /&gt;
- Amélioration de l’existant :&lt;br /&gt;
    - Amélioration de formulaires sur plusieurs pages.&lt;br /&gt;
    - Amélioration du visuel de la section Fichiers d’un projet.&lt;br /&gt;
    - Modification de scripts de développement : un script nommé edc a été modifié pour permettre de supprimer les volumes docker associés à EDCampus et vérifier que les ports utilisés par les dockers étaient bien disponibles sur la machine.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
## Gestion de projet&lt;br /&gt;
&lt;br /&gt;
- Méthode : Nous avons utilisé la méthodologie Agile Scrum avec des sprints de 1~2 semaines à l’issue desquels nous avions une réunion rétrospective afin de discuter de l’avancement/blocage de chacun.&lt;br /&gt;
&lt;br /&gt;
- L’équipe :&lt;br /&gt;
    - PO/Porteur : Anthony GEOURJON&lt;br /&gt;
    - Chef de projet : Lucas DREZET&lt;br /&gt;
    - Scrum Master : Roman REGOUIN&lt;br /&gt;
    - Contributeurs : Liam ANDRIEUX, Kévin COSOTTI, Lucas DREZET, Roman REGOUIN (et Anthony GEOURJON)&lt;br /&gt;
&lt;br /&gt;
## Outils&lt;br /&gt;
&lt;br /&gt;
- [GitLabUGA](#https://gricad-gitlab.univ-grenoble-alpes.fr/) : Plateforme utilisée pour la visualisation du code, utilisation d’un kanban pour visualiser les différentes issues, objectifs et la répartition du travail.&lt;br /&gt;
&lt;br /&gt;
- [Disord](#https://discord.com/) : Plateforme utilisée pour communiquer entre nous hors réunions. Nous avons pu faire des appels vocaux, des partages d&#039;écrans et des envois de messages.&lt;br /&gt;
&lt;br /&gt;
- [PhpStorm](#https://www.jetbrains.com/fr-fr/phpstorm/) :  IDE utilisé pour développer le code&lt;br /&gt;
&lt;br /&gt;
- [VMWare Workstation](#https://www.vmware.com/fr/products/workstation-pro/workstation-pro-evaluation.html) : Outils de création de machine virtuelle pour simuler un Ubuntu.&lt;br /&gt;
&lt;br /&gt;
- CI /CD : Mise en place sur le GitLab par des anciens étudiants, mais ne marche pas.&lt;br /&gt;
&lt;br /&gt;
## Métriques logiciels&lt;br /&gt;
&lt;br /&gt;
- ligne de code ajoutés : 3762&lt;br /&gt;
- langages : JS, HTML, CSS, PHP, SQL&lt;br /&gt;
- temps ingénieur :&lt;br /&gt;
- répartition de code et commits en % entre membre : Voir figure.&lt;br /&gt;
&lt;br /&gt;
[Images des graphiques]&lt;br /&gt;
&lt;br /&gt;
## Conclusion&lt;br /&gt;
&lt;br /&gt;
- Difficultés rencontrées :&lt;br /&gt;
    - Code parfois mal documenté.&lt;br /&gt;
    - Mise en place du Debugger Backend sous WSL (Windows Subsystem Linux).&lt;br /&gt;
    - Manque de motivation pour certains membres.&lt;br /&gt;
    - Projet ecom en parallèle (comparé aux autres années).&lt;br /&gt;
&lt;br /&gt;
- Apport personnel :&lt;br /&gt;
    - Apprentissage de nouvelles technologies.&lt;br /&gt;
    - Satisfaction d’avoir pu apporter notre aide à un projet concret et durable.&lt;br /&gt;
    - Compétences acquises : savoir se retrouver dans le code d’un projet créé par d’autres personnes.&lt;br /&gt;
    - Exemple de projet réel et non de projet scolaire: le code n’est pas tout propre et nous ne partons pas de 0.&lt;br /&gt;
&lt;br /&gt;
- Futur :&lt;br /&gt;
    - Mettre en place de la CI/CD FONCTIONNELLE, mettre en place des règles de codages, avoir un peu plus de documentation au niveau du code.&lt;br /&gt;
    - Certaines parties du projet sont trop compliquées à maintenir et donc refaire quelque chose de 0 serait plus simple.&lt;br /&gt;
    - Faire un état de l’application: code obsolète, utilisé, non documenté et peut être mettre une personne à plein temps pour mettre à jour l’application, quitte à mettre en pause le développement et/ou l’utilisation de certaines fonctionnalités.&lt;br /&gt;
&lt;br /&gt;
## Démonstration&lt;br /&gt;
&lt;br /&gt;
## Glossaire&lt;br /&gt;
&lt;br /&gt;
## Bibliographie&lt;br /&gt;
&lt;br /&gt;
- Lien Git : https://gricad-gitlab.univ-grenoble-alpes.fr/edcampus&lt;br /&gt;
- Graphiques de contribution : Lucas Drezet&lt;/div&gt;</summary>
		<author><name>Roman.Regouin</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=Rapport_EDCampus_2021-2022&amp;diff=52285</id>
		<title>Rapport EDCampus 2021-2022</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=Rapport_EDCampus_2021-2022&amp;diff=52285"/>
		<updated>2022-03-17T16:38:01Z</updated>

		<summary type="html">&lt;p&gt;Roman.Regouin: Created page with &amp;quot;EDCampus 2021-2022&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;EDCampus 2021-2022&lt;/div&gt;</summary>
		<author><name>Roman.Regouin</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=File:VT2021_XXXX_presentation.pdf&amp;diff=51620</id>
		<title>File:VT2021 XXXX presentation.pdf</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=File:VT2021_XXXX_presentation.pdf&amp;diff=51620"/>
		<updated>2021-12-06T14:17:59Z</updated>

		<summary type="html">&lt;p&gt;Roman.Regouin: Roman.Regouin moved page File:VT2021 XXXX presentation.pdf to File:VT2021 CDN presentation.pdf&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[File:VT2021 CDN presentation.pdf]]&lt;/div&gt;</summary>
		<author><name>Roman.Regouin</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=File:VT2021_CDN_presentation.pdf&amp;diff=51619</id>
		<title>File:VT2021 CDN presentation.pdf</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=File:VT2021_CDN_presentation.pdf&amp;diff=51619"/>
		<updated>2021-12-06T14:17:59Z</updated>

		<summary type="html">&lt;p&gt;Roman.Regouin: Roman.Regouin moved page File:VT2021 XXXX presentation.pdf to File:VT2021 CDN presentation.pdf&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Roman.Regouin</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=File:VT2021_CDN_presentation.pdf&amp;diff=51618</id>
		<title>File:VT2021 CDN presentation.pdf</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=File:VT2021_CDN_presentation.pdf&amp;diff=51618"/>
		<updated>2021-12-06T14:17:40Z</updated>

		<summary type="html">&lt;p&gt;Roman.Regouin: Roman.Regouin uploaded a new version of File:VT2021 XXXX presentation.pdf&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Roman.Regouin</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=VT2021_XXX_demo&amp;diff=51617</id>
		<title>VT2021 XXX demo</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=VT2021_XXX_demo&amp;diff=51617"/>
		<updated>2021-12-06T14:10:15Z</updated>

		<summary type="html">&lt;p&gt;Roman.Regouin: Roman.Regouin moved page VT2021 XXX demo to VT2021 CDN demo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[VT2021 CDN demo]]&lt;/div&gt;</summary>
		<author><name>Roman.Regouin</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=VT2021_CDN_demo&amp;diff=51616</id>
		<title>VT2021 CDN demo</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=VT2021_CDN_demo&amp;diff=51616"/>
		<updated>2021-12-06T14:10:15Z</updated>

		<summary type="html">&lt;p&gt;Roman.Regouin: Roman.Regouin moved page VT2021 XXX demo to VT2021 CDN demo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:DemoCDN.pptx]]&lt;/div&gt;</summary>
		<author><name>Roman.Regouin</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=VT2021_CDN_demo&amp;diff=51615</id>
		<title>VT2021 CDN demo</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=VT2021_CDN_demo&amp;diff=51615"/>
		<updated>2021-12-06T14:09:52Z</updated>

		<summary type="html">&lt;p&gt;Roman.Regouin: Created page with &amp;quot;File:DemoCDN.pptx&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:DemoCDN.pptx]]&lt;/div&gt;</summary>
		<author><name>Roman.Regouin</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=File:DemoCDN.pptx&amp;diff=51614</id>
		<title>File:DemoCDN.pptx</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=File:DemoCDN.pptx&amp;diff=51614"/>
		<updated>2021-12-06T14:08:23Z</updated>

		<summary type="html">&lt;p&gt;Roman.Regouin: A powerpoint with a video of the demonstration within.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
A powerpoint with a video of the demonstration within.&lt;/div&gt;</summary>
		<author><name>Roman.Regouin</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=VT2021_CDN_fiche&amp;diff=51613</id>
		<title>VT2021 CDN fiche</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=VT2021_CDN_fiche&amp;diff=51613"/>
		<updated>2021-12-06T14:00:18Z</updated>

		<summary type="html">&lt;p&gt;Roman.Regouin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Content Delivery Network =&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ADNRIEUX Liam ([[liam.adnrieux@etu.univ-grenoble-alpes.fr]]) - REGOUIN Roman ([[roman.regouin@etu.univ-grenoble-alpes.fr]])&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Résumé ==&lt;br /&gt;
=== Résumé ===&lt;br /&gt;
Un &amp;quot;réseau de distribution de contenu&amp;quot; ou &amp;quot;Content Delivery Network&amp;quot; (CDN) est un réseau géographiquement distribué de serveurs proxy et de centre de données avec pour objectif de rendre hautement disponible la distribution de service relativement à l&#039;utilisateur. Il est constitué d’un serveur d&#039;origine (généralement l&#039;application) qui va injecter son contenu dans le réseau. Il est aussi constitué de serveurs périphériques (appelé PoP pour Point of Presence) déployés à plusieurs endroits géographiquement distincts, où les contenus sont répliqués et mis en cache au plus proche de l’utilisateur. Il comprend un mécanisme de routage qui permet de servir l’utilisateur avec le serveur périphérique le plus proche.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L&#039;impact direct d&#039;un CDN est l&#039;amélioration de l&#039;expérience utilisateur en réduisant la latence entre l&#039;utilisateur et le contenu. Il permet aussi une meilleure mise à l&#039;échelle ainsi qu&#039;une meilleure résistance aux attaques DDoS (attaque par dénis de service distribué) notamment grâce à des filtres sur des protocoles en périphérie du réseau.&lt;br /&gt;
Il est à noter qu’un CDN peut représenter un certain nombre d&#039;inconvénients, entre autres les coûts supplémentaires qu’il peut engendrer ou la fuite de données potentiellement critique vers d’autres entreprises.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mots clefs :&#039;&#039;&#039; PoP, Serveur, DDoS, Réseau, Performance, Latence, Cache, Disponibilité, Mise à l’echelle.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Abstract ===&lt;br /&gt;
A Content Delivery Network (CDN) is a geographic distributed network of proxy servers and data centers whose main goal is to make the service distribution highly available relative to the end user. It is composed of an origin server (generally the application server) which will dispatch his resources in the network. It is also composed of peripheral servers (called PoP) deployed at multiple distincts geographical places. It includes a routing mechanism allowing the system to serve the end user with the closest peripheral server.  &lt;br /&gt;
&lt;br /&gt;
The direct impact of using a CDN is the improvement of user experience by reducing the latency between the user and the content. It also allows scalability and a better resistance to DDos attacks (Distributed denial of service attack) mainly with filters on protocole at the edge of the network.&lt;br /&gt;
It should be noted that a CDN can represent a number of cons, notably the additional costs it can produce or the loss of critical data to other companies&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Fonctionnement ==&lt;br /&gt;
=== Vue d&#039;ensemble ===&lt;br /&gt;
Un &amp;quot;réseau de distribution de contenu&amp;quot; ou &amp;quot;Content Delivery Network&amp;quot; (CDN) est un réseau géographiquement distribué de serveurs proxy et de centre de données avec pour objectif de rendre hautement disponible la distribution de service relativement à l&#039;utilisateur.&lt;br /&gt;
Il est  constitué de serveurs périphériques (PoP pour Point of Presence) déployés à plusieurs endroits géographiquement distincts, où les contenus sont répliqués et mis en cache au plus proche de l’utilisateur. Il est constitué d’un serveur d&#039;origine (généralement l&#039;application) qui va injecter son contenu dans le réseau. En cas d’une requête reçue par l’un de ses PoPs, s’il dispose du contenu demandé, alors on a un “Cache Hit” et le PoP délivre directement le contenu demandé. Dans le cas où il ne dispose pas du contenu demandé, dans le cas d’un contenu dynamique ou juste pas encore mis en cache, alors on a un “Cache Miss”. Il transfère la requête au serveur origine puis si possible il met en cache la réponse avant de l’envoyer à l’utilisateur. Dans certains cas, les Pops sont indépendants les uns des autres et seul le pop ayant fait la requête a mis en cache la réponse. Dans d’autres cas, la réponse est distribuée entre plusieurs PoPs, soit par groupe de PoPs localisé dans une même zone géographique, soit sur tous les PoPs d’un CDN.&lt;br /&gt;
&lt;br /&gt;
Les serveurs PoPs doivent respecter les réglementations du pays où ils sont installés et cela peut parfois devenir très contraignant quand on essaye de mettre en place son propre CDN. C’est pourquoi des services de CDN existent et qui s&#039;occupent de placer leur serveurs PoP sur tous les continents tout en respectant les réglementations en vigueur. &lt;br /&gt;
Il comprend aussi un mécanisme de routage qui permet de servir l’utilisateur avec le serveur périphérique le plus proche pour optimiser les performances du CDN.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Routage CDN===&lt;br /&gt;
&lt;br /&gt;
Pour mettre en place un CDN, il faut mettre en place un ou plusieurs record Cname auprès de son fournisseur DNS (Domain Name System) pour que le routage vers le nom de domaine de notre serveur passe par le CDN. Un fichier Cname est un fichier permettant d’indiquer un sous-domaine. Cela permet de rediriger les requêtes vers le nom de domaine du fournisseur CDN. Puis auprès du fournisseur CDN, il faut indiquer via un record A pour indiquer l’adresse de notre serveur quand il y’a un cache Miss&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Type de CDN===&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Push CDN&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Dans un CDN de type push, c’est l’application qui va charger de son propre chef du contenu sur les CDN. Par exemple pour le déploiement d’une nouvelle mise à jour d’un logiciel, le(s) serveur(s) d&#039;origine va charger la mise à jour dans les PoP.&lt;br /&gt;
&lt;br /&gt;
[[File:CDNPush.jpg|CDN Push Type]]    &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Pull CDN&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Dans un CDN de type pull, c’est le CDN qui va demander (du à une requête d’un client) au serveur de l’application du contenu pour ensuite le mettre en cache.&lt;br /&gt;
    &lt;br /&gt;
[[File:CDNPull.jpg|CDN Pull Type]]&lt;br /&gt;
&lt;br /&gt;
== Utilité ==&lt;br /&gt;
&lt;br /&gt;
=== Rapidité de Distribution ===&lt;br /&gt;
&lt;br /&gt;
On a beau optimiser les performances de notre serveur au maximum pour minimiser le temps de traitement pour une requête utilisateur, quoi qu’il arrive on est limité par les contraintes que nous impose le monde physique. Nos informations ne pourront jamais atteindre nos utilisateurs plus vite que la vitesse de la lumière (299 792 458 m/s).&lt;br /&gt;
C’est l’un des problèmes que le CDN permet de contourner en fournissant le contenu au plus proche des utilisateurs et permet de réduire drastiquement la latence entre les utilisateurs et le contenu désiré.&lt;br /&gt;
&lt;br /&gt;
=== Réduction de la Charge Serveur et Haute Disponibilité ===&lt;br /&gt;
&lt;br /&gt;
De manière indirecte, le CDN permet par son fonctionnement de réduire la charge du serveur. En mettant en cache le contenu dans les serveurs périphériques, cela permet de filtrer une grande partie des requêtes qui sont directement délivrées par le CDN. &lt;br /&gt;
&lt;br /&gt;
De la même manière, cela permet d’augmenter la disponibilité du serveur d’origine. Celui-ci n’étant que très rarement chargé, il n’y a que peu de risques de saturation du serveur d’origine et garantit de ce fait une meilleure disponibilité.&lt;br /&gt;
Un point qui peut être souligné, il arrive parfois que grâce à un CDN, un site puisse toujours être accessible malgré le fait que le serveur soit tombé en panne. Cela peut s’expliquer par le fait que la majorité du contenu du serveur d’origine soit encore stocké dans le CDN ce qui permet de livrer le contenu aux utilisateurs. Ceux-ci ne sont donc même pas au courant que le serveur est en panne.&lt;br /&gt;
&lt;br /&gt;
Enfin, en cas d’un pic d’affluence de visiteurs, qui peut parfois ressembler à une attaque DDos, le CDN permet d’encaisser cette affluence avec la répartition géographique des visiteurs sur les différents serveurs périphériques.&lt;br /&gt;
&lt;br /&gt;
=== Sécurité ===&lt;br /&gt;
De manière générale, les services de CDN garantissent l’usage des certificats SSL utilisés pour les requêtes HTTPs. Cependant, la majorité des services de CDN propose davantage de sécurité notamment contre les attaques DDos (attaque par dénis de service distribué).&lt;br /&gt;
De par son architecture qui met en cache le contenu et ne permet pas de liaison directe avec le serveur d’origine, un CDN permet naturellement une première protection contre les attaques de type DDos en répartissant la charge de l’attaque sur l’ensemble des serveurs périphériques. Leur cache permet de livrer rapidement les requêtes et de contenir la haute fréquence de requête des attaques. Cependant, dans le cas de très grosse attaque DDos, cela ne peut pas suffire. C’est pourquoi les services de CDN appliquent des filtres sur les couches 3/4 (UDP,ICMP,SYN) et la couche 7 en inspectant le contenu HTTP pour limiter l’impact des attaques DDos.&lt;br /&gt;
&lt;br /&gt;
== Limitations ==&lt;br /&gt;
&lt;br /&gt;
La mise en place d’un CDN ajoute une complexité non négligeable.&lt;br /&gt;
&lt;br /&gt;
=== Coût ===&lt;br /&gt;
&lt;br /&gt;
Suivant le fournisseur, les prix peuvent varier. Des fournisseurs comme CloudFlare donnent accès aux fonctionnalités de base gratuitement. Pour des fonctionnalités supplémentaires c’est un paiement fixe par mois (20~200 USD/mois). Nous avons aussi Azure CDN qui lui opte pour une facturation “pay as you go” (0,081 USD/Go).&lt;br /&gt;
&lt;br /&gt;
=== Perte de Contrôle ===&lt;br /&gt;
&lt;br /&gt;
Les CDN sont proposés par des tiers, de ce fait, on accorde sa confiance. Les données stockées sur les CDN peuvent ne plus être entièrement privées.&lt;br /&gt;
De plus, les infrastructures sont aussi gérées par ces tiers, nous n&#039;avons donc aucun contrôle dessus, les CDN peuvent tomber en panne et nous devons faire confiance au tiers pour qu’ils soient restaurés.&lt;br /&gt;
Suivant les plan de tarifications, le contrôle des données peut varier, par exemple sur “CloudFlare”, le plan gratuit permet seulement de vider le cache du CDN et non de visualiser ce qui en cache.&lt;br /&gt;
&lt;br /&gt;
=== Localisation des Services ===&lt;br /&gt;
&lt;br /&gt;
La plupart des CDNs route les utilisateurs vers le PoP le proche. Cependant dans le cas où notre application d’origine est sur un serveur en France et que le fournisseur de CDN n’a pas de PoP en France mais seulement en Chine, un utilisateur en france sera redirigé vers le Pop de Chine ce qui entraînera de la latence. Si nous avions pas de CDN en place, l’utilisateur aurait été dirigé directement vers le serveur de l’application qui est en france.&lt;br /&gt;
&lt;br /&gt;
== Mettre en place ==&lt;br /&gt;
&lt;br /&gt;
Voir la documentation du fournisseur ;)&lt;/div&gt;</summary>
		<author><name>Roman.Regouin</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=File:CDNPush.jpg&amp;diff=51612</id>
		<title>File:CDNPush.jpg</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=File:CDNPush.jpg&amp;diff=51612"/>
		<updated>2021-12-06T13:51:22Z</updated>

		<summary type="html">&lt;p&gt;Roman.Regouin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Roman.Regouin</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=File:CDNPull.jpg&amp;diff=51611</id>
		<title>File:CDNPull.jpg</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=File:CDNPull.jpg&amp;diff=51611"/>
		<updated>2021-12-06T13:50:57Z</updated>

		<summary type="html">&lt;p&gt;Roman.Regouin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Roman.Regouin</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=G%C3%A9olocalisation_et_suivi_des_transports_en_commun&amp;diff=51318</id>
		<title>Géolocalisation et suivi des transports en commun</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=G%C3%A9olocalisation_et_suivi_des_transports_en_commun&amp;diff=51318"/>
		<updated>2021-10-29T13:46:04Z</updated>

		<summary type="html">&lt;p&gt;Roman.Regouin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Elèves INFO5 : Liam ANDRIEUX, Lucas DREZET, Roman REGOUIN&lt;br /&gt;
&lt;br /&gt;
Géolocalisation et suivi sur une application en temps réel des transports en commun.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Gantt :&#039;&#039;&#039;&lt;br /&gt;
[[File:GanttG4IoT.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Technologies :&#039;&#039;&#039;&lt;br /&gt;
* GNSS (GPS, Glonass, Beidou, Galileo) &lt;br /&gt;
* Multilateraltion TDOA ([https://github.com/CampusIoT/tutorial/tree/master/loracloud tuto])&lt;br /&gt;
* Ranging LoRa 2.4GHz ([https://semtech.my.salesforce.com/sfc/p/#E0000000JelG/a/44000000MDcY/ZsmAVCVenZkc0lUrr3RuxWSfdFxY2Tj_msk4N9DAhBo Semtech Application Note: How to Perform Ranging Tests with the SX1280 Development Kit], ([https://github.com/StuartsProjects/SX1280_Testing voir])&lt;br /&gt;
* LoRa Edge (LR1110)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Matériel :&#039;&#039;&#039;&lt;br /&gt;
* [https://www.st.com/en/evaluation-tools/p-nucleo-lrwan2.html P-NUCLEO-LRWAN2]&lt;br /&gt;
* [https://wiki.seeedstudio.com/Grove-GPS/ Grove-GPS]&lt;br /&gt;
* [https://www.mouser.fr/new/semtech/semtech-lr1110-lora-reference-designs/ Kit d&#039;évaluation LR1110]  --&amp;gt; A demander à Didier DONSEZ&lt;br /&gt;
* [https://www.dragino.com/products/lora-lorawan-end-node/item/142-lgt-92.html Dragino LGT92] --&amp;gt; A demander à Didier DONSEZ&lt;br /&gt;
* [https://github.com/thingsat/tinygs_2g4station/blob/main/README.md TinyGS :: 2.4 GHz LoRa ground station]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Logiciel :&#039;&#039;&#039;&lt;br /&gt;
* STM32CubeIDE&lt;br /&gt;
* Android Studio&lt;br /&gt;
* Librairie LMIC&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Solutions similaires :&#039;&#039;&#039;&lt;br /&gt;
* [https://www.sigtv.fr/TCL-localise-ses-bus-et-trams-en-live_a1182.html TCL Live]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Liens:&#039;&#039;&#039;&lt;br /&gt;
* [https://github.com/Lora-net/lr1110_evk_demo_app Demo LR1110]&lt;br /&gt;
* [https://lns.campusiot.imag.fr/#/login CampusIoT]&lt;br /&gt;
* [https://jsfiddle.net/qz3y0Lk8/ Carte Grenoble avec lignes tram en javascript]&lt;br /&gt;
* [https://github.com/mcci-catena/arduino-lmic#supported-hardware Git de la librairie LMIC]&lt;br /&gt;
* [https://docs.lora.tetaneutral.net/tutorials/lorawan-connection/ Tuto utilisation de LMIC]&lt;br /&gt;
* [https://www.rfwireless-world.com/Tutorials/LoRaWAN-classes.html Comparaison des classes LoRa]&lt;/div&gt;</summary>
		<author><name>Roman.Regouin</name></author>
	</entry>
</feed>