diff --git a/client/src/App.vue b/client/src/App.vue index ff89f36a0f33200ebc04106f90ebfaf939aa09da..f7eaf3a54fd14c325f9765039e754593c7aabfab 100644 --- a/client/src/App.vue +++ b/client/src/App.vue @@ -1,63 +1,104 @@ <template> - <div class="content"> - - <nav class="navbar"> - <div class="navbar-brand"> - <a class="navbar-item"><router-link to="/"><i class="fas fa-home"/> Home</router-link></a> - <a class="navbar-burger" @click="showNav = !showNav" :class="{'is-active': showNav}"> - <span aria-hidden="true"></span> - <span aria-hidden="true"></span> - <span aria-hidden="true"></span> - </a> - </div> - <div id="navMenu" class="navbar-menu" :class="{'is-active': showNav}"> - <div class="navbar-start"> - <a class="navbar-item"><router-link to="/legal"><i class="fas fa-balance-scale"/> Mentions légales</router-link></a> - <a v-if="$store.state.isLoggedIn" class="navbar-item"><router-link to="/school"><i class="fas fa-school"/> Mon établissement ({{$store.state.schoolName}})</router-link></a> + <div class="content page-wrapper"> + <div class="content-wrapper"> + <nav class="navbar is-fixed-top"> + <div class="navbar-brand"> + <a class="navbar-item" + ><router-link to="/"><i class="fas fa-home" /> Home</router-link></a + > + <a + class="navbar-burger" + @click="showNav = !showNav" + :class="{ 'is-active': showNav }" + > + <span aria-hidden="true"></span> + <span aria-hidden="true"></span> + <span aria-hidden="true"></span> + </a> </div> - <div class="navbar-end"> - <div class="buttons has-addons"> - <a v-if="!$store.state.isLoggedIn" class="navbar-item button"><router-link to="/register"><span><i class="fas fa-user-plus"></i> Inscription</span></router-link></a> - <a v-if="!$store.state.isLoggedIn" class="navbar-item button is-primary"><router-link to="/login"><span><i class="fas fa-sign-in-alt"></i> Connexion</span></router-link></a> - <a v-if="$store.state.isLoggedIn" class="navbar-item button is-danger" @click="logout()"><span><i class="fas fa-sign-out-alt"></i> Déconnexion</span></a> + <div id="navMenu" class="navbar-menu" :class="{ 'is-active': showNav }"> + <div class="navbar-start"> + <a class="navbar-item" + ><router-link to="/legal" + ><i class="fas fa-balance-scale" /> Mentions légales</router-link + ></a + > + <a v-if="$store.state.isLoggedIn" class="navbar-item" + ><router-link to="/school" + ><i class="fas fa-school" /> Mon établissement ({{ + $store.state.schoolName + }})</router-link + ></a + > + </div> + <div class="navbar-end"> + <div class="buttons has-addons"> + <a v-if="!$store.state.isLoggedIn" class="navbar-item button" + ><router-link to="/register" + ><span + ><i class="fas fa-user-plus"></i> Inscription</span + ></router-link + ></a + > + <a + v-if="!$store.state.isLoggedIn" + class="navbar-item button is-primary" + ><router-link to="/login" + ><span + ><i class="fas fa-sign-in-alt"></i> Connexion</span + ></router-link></a> + <a + v-if="$store.state.isLoggedIn" + class="navbar-item button is-danger" + @click="logout()" + ><span><i class="fas fa-sign-out-alt"></i> Déconnexion</span></a> + </div> </div> </div> - </div> - </nav> + </nav> - <transition name=fade> - <router-view></router-view> - </transition> + <transition name="fade"> + <router-view class="section"></router-view> + </transition> + </div> <PageFooter></PageFooter> </div> </template> - - <script> import PageFooter from "./components/PageFooter.vue"; export default { name: "app", - data() { return { + data() { + return { showNav: false - } + }; }, methods: { - logout(){ - let uri = "//localhost:3000/logout" - this.axios.post(uri, {}, { withCredentials: true }).then(response => { - console.log(response) - this.$store.commit('logout') - }); - } + logout() { + let uri = "//localhost:3000/logout"; + this.axios.post(uri, {}, { withCredentials: true }).then(response => { + console.log(response); + this.$store.commit("logout"); + }); + } }, - components : { + components: { PageFooter } -} +}; </script> -<style> +<style scoped> +.page-wrapper { + display: flex; + min-height: 100vh; + flex-direction: column; +} + +.content-wrapper { + flex: 1; +} </style> diff --git a/client/src/assets/img/clubelek.png b/client/src/assets/img/clubelek.png new file mode 100644 index 0000000000000000000000000000000000000000..049389f01f7a237ec602a138eb81bca5c36149dd Binary files /dev/null and b/client/src/assets/img/clubelek.png differ diff --git a/client/src/assets/img/insa.png b/client/src/assets/img/insa.png new file mode 100644 index 0000000000000000000000000000000000000000..ddc443ec16c4d5d2043435b6d782670dbe23029d Binary files /dev/null and b/client/src/assets/img/insa.png differ diff --git a/client/src/assets/img/objectif21.png b/client/src/assets/img/objectif21.png new file mode 100644 index 0000000000000000000000000000000000000000..ad4bf217db43af82e5106f25bed7da6f537ba8cb Binary files /dev/null and b/client/src/assets/img/objectif21.png differ diff --git a/client/src/assets/main.scss b/client/src/assets/main.scss index bb44c8fbf6c47aaae87e29c18a19f65bde5e3eaf..733d2f52532ca22286ccadc5a2d27e61d099d33c 100644 --- a/client/src/assets/main.scss +++ b/client/src/assets/main.scss @@ -1,2 +1,4 @@ -@import '~bulma'; +$footer-padding : 1rem 1.5rem 0.5rem; + +@import '~bulma'; \ No newline at end of file diff --git a/client/src/components/HomeComponent.vue b/client/src/components/HomeComponent.vue index 65c7b19fbd10cc1e5a95c5ba4ecd27f6c09d236c..9276ced34b0235c6abffc478637b4f49548e8486 100644 --- a/client/src/components/HomeComponent.vue +++ b/client/src/components/HomeComponent.vue @@ -1,18 +1,18 @@ <template> - <div class="content"> - <h1>Escape game économies d'énergies</h1> + <div class="content"> + <h1>Escape game économies d'énergies</h1> - <p>Bienvenu sur cet escape game développé par les associations Clubelek et Objectif21 de l'INSA Lyon</p> - </div> + <p> + Bienvenu sur cet escape game développé par les associations Clubelek et + Objectif21 de l'INSA Lyon + </p> + </div> </template> <script> export default { - components : { - } -} + components: {} +}; </script> -<style scoped> - -</style> \ No newline at end of file +<style scoped></style> diff --git a/client/src/components/Login.vue b/client/src/components/Login.vue index 9f77f206b796e27f06a8c444877be3a01dc737a5..31f49fec39600f0f5fb2a58148e94ec00c5e43f9 100644 --- a/client/src/components/Login.vue +++ b/client/src/components/Login.vue @@ -1,47 +1,65 @@ <template> - <div class="content"> - <form @submit.prevent="login"> - <div class="field"> - <p class="control has-icons-left"> - <input class="input is-primary" type=text v-model="username" placeholder="Identifiant"> - <span class="icon is-small is-left"> - <i class="fas fa-user"></i> - </span> - </p> - </div><br /> - <div class="field"> - <p class="control has-icons-left"> - <input type="password" class="input is-primary" v-model="password" placeholder="Mot de passe"> - <span class="icon is-small is-left"> - <i class="fas fa-lock"></i> - </span> - </p> - </div><br /> - <div> - <button class="button is-primary" type="submit">Se connecter</button> - </div> - </form> - </div> + <div class="content"> + <form @submit.prevent="login"> + <div class="field"> + <p class="control has-icons-left"> + <input + class="input is-primary" + type="text" + v-model="username" + placeholder="Identifiant" + /> + <span class="icon is-small is-left"> + <i class="fas fa-user"></i> + </span> + </p> + </div> + <br /> + <div class="field"> + <p class="control has-icons-left"> + <input + type="password" + class="input is-primary" + v-model="password" + placeholder="Mot de passe" + /> + <span class="icon is-small is-left"> + <i class="fas fa-lock"></i> + </span> + </p> + </div> + <br /> + <div> + <button class="button is-primary" type="submit">Se connecter</button> + </div> + </form> + </div> </template> <script> export default { - name: "Login", - data() { - return { - username : "", - password : "" - } - }, - methods: { - login(){ - let uri = "//localhost:3000/login" - this.axios.post(uri, {username: this.username, password:this.password}, { withCredentials: true }).then(response => { - console.log(response) - this.$store.commit('login', response.data) - this.$router.push('/school') - }); - } + name: "Login", + data() { + return { + username: "", + password: "" + }; + }, + methods: { + login() { + let uri = "//localhost:3000/login"; + this.axios + .post( + uri, + { username: this.username, password: this.password }, + { withCredentials: true } + ) + .then(response => { + console.log(response); + this.$store.commit("login", response.data); + this.$router.push("/school"); + }); } -} -</script> \ No newline at end of file + } +}; +</script> diff --git a/client/src/components/MentionsLegales.vue b/client/src/components/MentionsLegales.vue index 50b255d0aab4eb26e4c35952afd193a1aea344f4..36b7b72dfe8037a3f3bc03fb00dca21199ea1f63 100644 --- a/client/src/components/MentionsLegales.vue +++ b/client/src/components/MentionsLegales.vue @@ -1,228 +1,789 @@ <template> - <div class="content"> - - - <h2>Définitions</h2> - <p><b>Client :</b> tout professionnel ou personne physique capable au sens des articles 1123 et suivants du Code civil, ou personne morale, qui visite le Site objet des présentes conditions générales.<br> - <b>Prestations et Services :</b> <a href="https://escape-game-dd.clubelek.fr">https://escape-game-dd.clubelek.fr</a> met à disposition des Clients :</p> - - <p><b>Contenu :</b> Ensemble des éléments constituants l’information présente sur le Site, notamment textes – images – vidéos.</p> - - <p><b>Informations clients :</b> Ci après dénommé « Information (s) » qui correspondent à l’ensemble des données personnelles susceptibles d’être détenues par <a href="https://escape-game-dd.clubelek.fr">https://escape-game-dd.clubelek.fr</a> pour la gestion de votre compte, de la gestion de la relation client et à des fins d’analyses et de statistiques.</p> - - - <p><b>Utilisateur :</b> Internaute se connectant, utilisant le site susnommé.</p> - <p><b>Informations personnelles :</b> « Les informations qui permettent, sous quelque forme que ce soit, directement ou non, l'identification des personnes physiques auxquelles elles s'appliquent » (article 4 de la loi n° 78-17 du 6 janvier 1978).</p> - <p>Les termes « données à caractère personnel », « personne concernée », « sous traitant » et « données sensibles » ont le sens défini par le Règlement Général sur la Protection des Données (RGPD : n° 2016-679)</p> - - <h2>1. Présentation du site internet.</h2> - <p>En vertu de l'article 6 de la loi n° 2004-575 du 21 juin 2004 pour la confiance dans l'économie numérique, il est précisé aux utilisateurs du site internet <a href="https://escape-game-dd.clubelek.fr">https://escape-game-dd.clubelek.fr</a> l'identité des différents intervenants dans le cadre de sa réalisation et de son suivi: - </p><p><strong>Propriétaire</strong> : Association loi 1901 Clubelek (Association loi 1901) – INSA Lyon - 20 Avenue Albert Einstein 69100 Villeurbanne<br> - - <strong>Responsable publication</strong> : Clubelek – clubelek@insa-lyon.fr<br> - Le responsable publication est une personne physique ou une personne morale.<br> - <strong>Webmaster</strong> : Antoine Rochebois – antoine.rochebois@insa-lyon.fr<br> - <strong>Hébergeur</strong> : ovh – 2 rue Kellermann 59100 Roubaix 1007<br> - <strong>Délégué à la protection des données</strong> : Antoine Rochebois – antoine.rochebois@insa-lyon.fr<br> - </p> - - <div ng-bind-html="linkHTML"><p>Ce modèle de mentions légales est proposé par le <a href="https://fr.orson.io/1371/generateur-mentions-legales" title="générateur gratuit offert par Orson.io">générateur gratuit offert par Orson.io</a></p></div> - - - - <h2>2. Conditions générales d’utilisation du site et des services proposés.</h2> - - <p>Le Site constitue une Å“uvre de l’esprit protégée par les dispositions du Code de la Propriété Intellectuelle et des Réglementations Internationales applicables. - Le Client ne peut en aucune manière réutiliser, céder ou exploiter pour son propre compte tout ou partie des éléments ou travaux du Site.</p> - - <p>L’utilisation du site <a href="https://escape-game-dd.clubelek.fr">https://escape-game-dd.clubelek.fr</a> implique l’acceptation pleine et entière des conditions générales d’utilisation ci-après décrites. Ces conditions d’utilisation sont susceptibles d’être modifiées ou complétées à tout moment, les utilisateurs du site <a href="https://escape-game-dd.clubelek.fr">https://escape-game-dd.clubelek.fr</a> sont donc invités à les consulter de manière régulière.</p> - - <p>Ce site internet est normalement accessible à tout moment aux utilisateurs. Une interruption pour raison de maintenance technique peut être toutefois décidée par <a href="https://escape-game-dd.clubelek.fr">https://escape-game-dd.clubelek.fr</a>, qui s’efforcera alors de communiquer préalablement aux utilisateurs les dates et heures de l’intervention. - Le site web <a href="https://escape-game-dd.clubelek.fr">https://escape-game-dd.clubelek.fr</a> est mis à jour régulièrement par <a href="https://escape-game-dd.clubelek.fr">https://escape-game-dd.clubelek.fr</a> responsable. De la même façon, les mentions légales peuvent être modifiées à tout moment : elles s’imposent néanmoins à l’utilisateur qui est invité à s’y référer le plus souvent possible afin d’en prendre connaissance.</p> - - <h2>3. Description des services fournis.</h2> - - <p>Le site internet <a href="https://escape-game-dd.clubelek.fr">https://escape-game-dd.clubelek.fr</a> a pour objet de fournir une information concernant l’ensemble des activités de la société. - <a href="https://escape-game-dd.clubelek.fr">https://escape-game-dd.clubelek.fr</a> s’efforce de fournir sur le site <a href="https://escape-game-dd.clubelek.fr">https://escape-game-dd.clubelek.fr</a> des informations aussi précises que possible. Toutefois, il ne pourra être tenu responsable des oublis, des inexactitudes et des carences dans la mise à jour, qu’elles soient de son fait ou du fait des tiers partenaires qui lui fournissent ces informations.</p> - - <p>Toutes les informations indiquées sur le site <a href="https://escape-game-dd.clubelek.fr">https://escape-game-dd.clubelek.fr</a> sont données à titre indicatif, et sont susceptibles d’évoluer. Par ailleurs, les renseignements figurant sur le site <a href="https://escape-game-dd.clubelek.fr">https://escape-game-dd.clubelek.fr</a> ne sont pas exhaustifs. Ils sont donnés sous réserve de modifications ayant été apportées depuis leur mise en ligne.</p> - - <h2>4. Limitations contractuelles sur les données techniques.</h2> - - <p>Le site utilise la technologie JavaScript. - - Le site Internet ne pourra être tenu responsable de dommages matériels liés à l’utilisation du site. De plus, l’utilisateur du site s’engage à accéder au site en utilisant un matériel récent, ne contenant pas de virus et avec un navigateur de dernière génération mis-à -jour - Le site <a href="https://escape-game-dd.clubelek.fr">https://escape-game-dd.clubelek.fr</a> est hébergé chez un prestataire sur le territoire de l’Union Européenne conformément aux dispositions du Règlement Général sur la Protection des Données (RGPD : n° 2016-679)</p> - - <p>L’objectif est d’apporter une prestation qui assure le meilleur taux d’accessibilité. L’hébergeur assure la continuité de son service 24 Heures sur 24, tous les jours de l’année. Il se réserve néanmoins la possibilité d’interrompre le service d’hébergement pour les durées les plus courtes possibles notamment à des fins de maintenance, d’amélioration de ses infrastructures, de défaillance de ses infrastructures ou si les Prestations et Services génèrent un trafic réputé anormal.</p> - - <p><a href="https://escape-game-dd.clubelek.fr">https://escape-game-dd.clubelek.fr</a> et l’hébergeur ne pourront être tenus responsables en cas de dysfonctionnement du réseau Internet, des lignes téléphoniques ou du matériel informatique et de téléphonie lié notamment à l’encombrement du réseau empêchant l’accès au serveur.</p> - - <h2>5. Propriété intellectuelle et contrefaçons.</h2> - - <p><a href="https://escape-game-dd.clubelek.fr">https://escape-game-dd.clubelek.fr</a> est propriétaire des droits de propriété intellectuelle et détient les droits d’usage sur tous les éléments accessibles sur le site internet, notamment les textes, images, graphismes, logos, vidéos, icônes et sons. - Toute reproduction, représentation, modification, publication, adaptation de tout ou partie des éléments du site, quel que soit le moyen ou le procédé utilisé, est interdite, sauf autorisation écrite préalable de : <a href="https://escape-game-dd.clubelek.fr">https://escape-game-dd.clubelek.fr</a>.</p> - - <p>Toute exploitation non autorisée du site ou de l’un quelconque des éléments qu’il contient sera considérée comme constitutive d’une contrefaçon et poursuivie conformément aux dispositions des articles L.335-2 et suivants du Code de Propriété Intellectuelle.</p> - - <h2>6. Limitations de responsabilité.</h2> - - <p><a href="https://escape-game-dd.clubelek.fr">https://escape-game-dd.clubelek.fr</a> agit en tant qu’éditeur du site. <a href="https://escape-game-dd.clubelek.fr">https://escape-game-dd.clubelek.fr</a> est responsable de la qualité et de la véracité du Contenu qu’il publie. </p> - - <p><a href="https://escape-game-dd.clubelek.fr">https://escape-game-dd.clubelek.fr</a> ne pourra être tenu responsable des dommages directs et indirects causés au matériel de l’utilisateur, lors de l’accès au site internet <a href="https://escape-game-dd.clubelek.fr">https://escape-game-dd.clubelek.fr</a>, et résultant soit de l’utilisation d’un matériel ne répondant pas aux spécifications indiquées au point 4, soit de l’apparition d’un bug ou d’une incompatibilité.</p> - - <p><a href="https://escape-game-dd.clubelek.fr">https://escape-game-dd.clubelek.fr</a> ne pourra également être tenu responsable des dommages indirects (tels par exemple qu’une perte de marché ou perte d’une chance) consécutifs à l’utilisation du site <a href="https://escape-game-dd.clubelek.fr">https://escape-game-dd.clubelek.fr</a>. - Des espaces interactifs (possibilité de poser des questions dans l’espace contact) sont à la disposition des utilisateurs. <a href="https://escape-game-dd.clubelek.fr">https://escape-game-dd.clubelek.fr</a> se réserve le droit de supprimer, sans mise en demeure préalable, tout contenu déposé dans cet espace qui contreviendrait à la législation applicable en France, en particulier aux dispositions relatives à la protection des données. Le cas échéant, <a href="https://escape-game-dd.clubelek.fr">https://escape-game-dd.clubelek.fr</a> se réserve également la possibilité de mettre en cause la responsabilité civile et/ou pénale de l’utilisateur, notamment en cas de message à caractère raciste, injurieux, diffamant, ou pornographique, quel que soit le support utilisé (texte, photographie …).</p> - - <h2>7. Gestion des données personnelles.</h2> - - <p>Le Client est informé des réglementations concernant la communication marketing, la loi du 21 Juin 2014 pour la confiance dans l’Economie Numérique, la Loi Informatique et Liberté du 06 Août 2004 ainsi que du Règlement Général sur la Protection des Données (RGPD : n° 2016-679). </p> - - <h3>7.1 Responsables de la collecte des données personnelles</h3> - - <p>Pour les Données Personnelles collectées dans le cadre de la création du compte personnel de l’Utilisateur et de sa navigation sur le Site, le responsable du traitement des Données Personnelles est : Clubelek (Association loi 1901). <a href="https://escape-game-dd.clubelek.fr">https://escape-game-dd.clubelek.fr</a>est représenté par Thomas Vadebout, son représentant légal</p> - - <p>En tant que responsable du traitement des données qu’il collecte, <a href="https://escape-game-dd.clubelek.fr">https://escape-game-dd.clubelek.fr</a> s’engage à respecter le cadre des dispositions légales en vigueur. Il lui appartient notamment au Client d’établir les finalités de ses traitements de données, de fournir à ses prospects et clients, à partir de la collecte de leurs consentements, une information complète sur le traitement de leurs données personnelles et de maintenir un registre des traitements conforme à la réalité. - Chaque fois que <a href="https://escape-game-dd.clubelek.fr">https://escape-game-dd.clubelek.fr</a> traite des Données Personnelles, <a href="https://escape-game-dd.clubelek.fr">https://escape-game-dd.clubelek.fr</a> prend toutes les mesures raisonnables pour s’assurer de l’exactitude et de la pertinence des Données Personnelles au regard des finalités pour lesquelles <a href="https://escape-game-dd.clubelek.fr">https://escape-game-dd.clubelek.fr</a> les traite.</p> - - <h3>7.2 Finalité des données collectées</h3> - - <p><a href="https://escape-game-dd.clubelek.fr">https://escape-game-dd.clubelek.fr</a> est susceptible de traiter tout ou partie des données : </p> - - <ul> - - <li>pour permettre la navigation sur le Site et la gestion et la traçabilité des prestations et services commandés par l’utilisateur : données de connexion et d’utilisation du Site, facturation, historique des commandes, etc. </li> - - <li>pour prévenir et lutter contre la fraude informatique (spamming, hacking…) : matériel informatique utilisé pour la navigation, l’adresse IP, le mot de passe (hashé) </li> - - <li>pour améliorer la navigation sur le Site : données de connexion et d’utilisation </li> - - <li>pour mener des enquêtes de satisfaction facultatives sur <a href="https://escape-game-dd.clubelek.fr">https://escape-game-dd.clubelek.fr</a> : adresse email </li> - <li>pour mener des campagnes de communication (sms, mail) : numéro de téléphone, adresse email</li> - - - </ul> - - <p><a href="https://escape-game-dd.clubelek.fr">https://escape-game-dd.clubelek.fr</a> ne commercialise pas vos données personnelles qui sont donc uniquement utilisées par nécessité ou à des fins statistiques et d’analyses.</p> - - <h3>7.3 Droit d’accès, de rectification et d’opposition</h3> - - <p> - Conformément à la réglementation européenne en vigueur, les Utilisateurs de <a href="https://escape-game-dd.clubelek.fr">https://escape-game-dd.clubelek.fr</a> disposent des droits suivants : </p> - <ul> - - <li>droit d'accès (article 15 RGPD) et de rectification (article 16 RGPD), de mise à jour, de complétude des données des Utilisateurs droit de verrouillage ou d’effacement des données des Utilisateurs à caractère personnel (article 17 du RGPD), lorsqu’elles sont inexactes, incomplètes, équivoques, périmées, ou dont la collecte, l'utilisation, la communication ou la conservation est interdite </li> - - <li>droit de retirer à tout moment un consentement (article 13-2c RGPD) </li> - - <li>droit à la limitation du traitement des données des Utilisateurs (article 18 RGPD) </li> - - <li>droit d’opposition au traitement des données des Utilisateurs (article 21 RGPD) </li> - - <li>droit à la portabilité des données que les Utilisateurs auront fournies, lorsque ces données font l’objet de traitements automatisés fondés sur leur consentement ou sur un contrat (article 20 RGPD) </li> - - <li>droit de définir le sort des données des Utilisateurs après leur mort et de choisir à qui <a href="https://escape-game-dd.clubelek.fr">https://escape-game-dd.clubelek.fr</a> devra communiquer (ou non) ses données à un tiers qu’ils aura préalablement désigné</li> - </ul> - - <p>Dès que <a href="https://escape-game-dd.clubelek.fr">https://escape-game-dd.clubelek.fr</a> a connaissance du décès d’un Utilisateur et à défaut d’instructions de sa part, <a href="https://escape-game-dd.clubelek.fr">https://escape-game-dd.clubelek.fr</a> s’engage à détruire ses données, sauf si leur conservation s’avère nécessaire à des fins probatoires ou pour répondre à une obligation légale.</p> - - <p>Si l’Utilisateur souhaite savoir comment <a href="https://escape-game-dd.clubelek.fr">https://escape-game-dd.clubelek.fr</a> utilise ses Données Personnelles, demander à les rectifier ou s’oppose à leur traitement, l’Utilisateur peut contacter <a href="https://escape-game-dd.clubelek.fr">https://escape-game-dd.clubelek.fr</a> par écrit à l’adresse suivante : </p> - - Clubelek (Association loi 1901) – DPO, Antoine Rochebois <br> - INSA Lyon - 20 Avenue Albert Einstein 69100 Villeurbanne. - - <p>Dans ce cas, l’Utilisateur doit indiquer les Données Personnelles qu’il souhaiterait que <a href="https://escape-game-dd.clubelek.fr">https://escape-game-dd.clubelek.fr</a> corrige, mette à jour ou supprime, en s’identifiant précisément avec une copie d’une pièce d’identité (carte d’identité ou passeport). </p> - - <p> - Les demandes de suppression de Données Personnelles seront soumises aux obligations qui sont imposées à <a href="https://escape-game-dd.clubelek.fr">https://escape-game-dd.clubelek.fr</a> par la loi, notamment en matière de conservation ou d’archivage des documents. Enfin, les Utilisateurs de <a href="https://escape-game-dd.clubelek.fr">https://escape-game-dd.clubelek.fr</a> peuvent déposer une réclamation auprès des autorités de contrôle, et notamment de la CNIL (https://www.cnil.fr/fr/plaintes).</p> - - <h3>7.4 Non-communication des données personnelles</h3> - - <p> - <a href="https://escape-game-dd.clubelek.fr">https://escape-game-dd.clubelek.fr</a> s’interdit de traiter, héberger ou transférer les Informations collectées sur ses Clients vers un pays situé en dehors de l’Union européenne ou reconnu comme « non adéquat » par la Commission européenne sans en informer préalablement le client. Pour autant, <a href="https://escape-game-dd.clubelek.fr">https://escape-game-dd.clubelek.fr</a> reste libre du choix de ses sous-traitants techniques et commerciaux à la condition qu’il présentent les garanties suffisantes au regard des exigences du Règlement Général sur la Protection des Données (RGPD : n° 2016-679).</p> - - <p> - <a href="https://escape-game-dd.clubelek.fr">https://escape-game-dd.clubelek.fr</a> s’engage à prendre toutes les précautions nécessaires afin de préserver la sécurité des Informations et notamment qu’elles ne soient pas communiquées à des personnes non autorisées. Cependant, si un incident impactant l’intégrité ou la confidentialité des Informations du Client est portée à la connaissance de <a href="https://escape-game-dd.clubelek.fr">https://escape-game-dd.clubelek.fr</a>, celle-ci devra dans les meilleurs délais informer le Client et lui communiquer les mesures de corrections prises. Par ailleurs <a href="https://escape-game-dd.clubelek.fr">https://escape-game-dd.clubelek.fr</a> ne collecte aucune « données sensibles ».</p> - - <p> - Les Données Personnelles de l’Utilisateur peuvent être traitées par des filiales de <a href="https://escape-game-dd.clubelek.fr">https://escape-game-dd.clubelek.fr</a> et des sous-traitants (prestataires de services), exclusivement afin de réaliser les finalités de la présente politique.</p> - <p> - Dans la limite de leurs attributions respectives et pour les finalités rappelées ci-dessus, les principales personnes susceptibles d’avoir accès aux données des Utilisateurs de <a href="https://escape-game-dd.clubelek.fr">https://escape-game-dd.clubelek.fr</a> sont principalement les agents de notre service client.</p> - - <div ng-bind-html="rgpdHTML"></div> - - - <h2>8. Notification d’incident</h2> - <p> - Quels que soient les efforts fournis, aucune méthode de transmission sur Internet et aucune méthode de stockage électronique n'est complètement sûre. Nous ne pouvons en conséquence pas garantir une sécurité absolue. - Si nous prenions connaissance d'une brèche de la sécurité, nous avertirions les utilisateurs concernés afin qu'ils puissent prendre les mesures appropriées. Nos procédures de notification d’incident tiennent compte de nos obligations légales, qu'elles se situent au niveau national ou européen. Nous nous engageons à informer pleinement nos clients de toutes les questions relevant de la sécurité de leur compte et à leur fournir toutes les informations nécessaires pour les aider à respecter leurs propres obligations réglementaires en matière de reporting.</p> - <p> - Aucune information personnelle de l'utilisateur du site <a href="https://escape-game-dd.clubelek.fr">https://escape-game-dd.clubelek.fr</a> n'est publiée à l'insu de l'utilisateur, échangée, transférée, cédée ou vendue sur un support quelconque à des tiers. Seule l'hypothèse du rachat de <a href="https://escape-game-dd.clubelek.fr">https://escape-game-dd.clubelek.fr</a> et de ses droits permettrait la transmission des dites informations à l'éventuel acquéreur qui serait à son tour tenu de la même obligation de conservation et de modification des données vis à vis de l'utilisateur du site <a href="https://escape-game-dd.clubelek.fr">https://escape-game-dd.clubelek.fr</a>.</p> - - <h3>Sécurité</h3> - - <p> - Pour assurer la sécurité et la confidentialité des Données Personnelles et des Données Personnelles de Santé, <a href="https://escape-game-dd.clubelek.fr">https://escape-game-dd.clubelek.fr</a> utilise des réseaux protégés par des dispositifs standards tels que par pare-feu, la pseudonymisation, l’encryption et mot de passe. </p> - - <p> - Lors du traitement des Données Personnelles, <a href="https://escape-game-dd.clubelek.fr">https://escape-game-dd.clubelek.fr</a>prend toutes les mesures raisonnables visant à les protéger contre toute perte, utilisation détournée, accès non autorisé, divulgation, altération ou destruction.</p> - - <h2>9. Liens hypertextes « cookies » et balises (“tagsâ€) internet</h2> - <p> - Le site <a href="https://escape-game-dd.clubelek.fr">https://escape-game-dd.clubelek.fr</a> contient un certain nombre de liens hypertextes vers d’autres sites, mis en place avec l’autorisation de <a href="https://escape-game-dd.clubelek.fr">https://escape-game-dd.clubelek.fr</a>. Cependant, <a href="https://escape-game-dd.clubelek.fr">https://escape-game-dd.clubelek.fr</a> n’a pas la possibilité de vérifier le contenu des sites ainsi visités, et n’assumera en conséquence aucune responsabilité de ce fait.</p> - Sauf si vous décidez de désactiver les cookies, vous acceptez que le site puisse les utiliser. Vous pouvez à tout moment désactiver ces cookies et ce gratuitement à partir des possibilités de désactivation qui vous sont offertes et rappelées ci-après, sachant que cela peut réduire ou empêcher l’accessibilité à tout ou partie des Services proposés par le site. - <p></p> - - <h3>9.1. « COOKIES »</h3> - <p> - Un « cookie » est un petit fichier d’information envoyé sur le navigateur de l’Utilisateur et enregistré au sein du terminal de l’Utilisateur (ex : ordinateur, smartphone), (ci-après « Cookies »). Ce fichier comprend des informations telles que le nom de domaine de l’Utilisateur, le fournisseur d’accès Internet de l’Utilisateur, le système d’exploitation de l’Utilisateur, ainsi que la date et l’heure d’accès. Les Cookies ne risquent en aucun cas d’endommager le terminal de l’Utilisateur.</p> - <p> - <a href="https://escape-game-dd.clubelek.fr">https://escape-game-dd.clubelek.fr</a> est susceptible de traiter les informations de l’Utilisateur concernant sa visite du Site, telles que les pages consultées, les recherches effectuées. Ces informations permettent à <a href="https://escape-game-dd.clubelek.fr">https://escape-game-dd.clubelek.fr</a> d’améliorer le contenu du Site, de la navigation de l’Utilisateur.</p> - <p> - Les Cookies facilitant la navigation et/ou la fourniture des services proposés par le Site, l’Utilisateur peut configurer son navigateur pour qu’il lui permette de décider s’il souhaite ou non les accepter de manière à ce que des Cookies soient enregistrés dans le terminal ou, au contraire, qu’ils soient rejetés, soit systématiquement, soit selon leur émetteur. L’Utilisateur peut également configurer son logiciel de navigation de manière à ce que l’acceptation ou le refus des Cookies lui soient proposés ponctuellement, avant qu’un Cookie soit susceptible d’être enregistré dans son terminal. <a href="https://escape-game-dd.clubelek.fr">https://escape-game-dd.clubelek.fr</a> informe l’Utilisateur que, dans ce cas, il se peut que les fonctionnalités de son logiciel de navigation ne soient pas toutes disponibles.</p> - <p> - Si l’Utilisateur refuse l’enregistrement de Cookies dans son terminal ou son navigateur, ou si l’Utilisateur supprime ceux qui y sont enregistrés, l’Utilisateur est informé que sa navigation et son expérience sur le Site peuvent être limitées. Cela pourrait également être le cas lorsque <a href="https://escape-game-dd.clubelek.fr">https://escape-game-dd.clubelek.fr</a> ou l’un de ses prestataires ne peut pas reconnaître, à des fins de compatibilité technique, le type de navigateur utilisé par le terminal, les paramètres de langue et d’affichage ou le pays depuis lequel le terminal semble connecté à Internet.</p> - <p> - Le cas échéant, <a href="https://escape-game-dd.clubelek.fr">https://escape-game-dd.clubelek.fr</a> décline toute responsabilité pour les conséquences liées au fonctionnement dégradé du Site et des services éventuellement proposés par <a href="https://escape-game-dd.clubelek.fr">https://escape-game-dd.clubelek.fr</a>, résultant (i) du refus de Cookies par l’Utilisateur (ii) de l’impossibilité pour <a href="https://escape-game-dd.clubelek.fr">https://escape-game-dd.clubelek.fr</a> d’enregistrer ou de consulter les Cookies nécessaires à leur fonctionnement du fait du choix de l’Utilisateur. Pour la gestion des Cookies et des choix de l’Utilisateur, la configuration de chaque navigateur est différente. Elle est décrite dans le menu d’aide du navigateur, qui permettra de savoir de quelle manière l’Utilisateur peut modifier ses souhaits en matière de Cookies.</p> - <p> - À tout moment, l’Utilisateur peut faire le choix d’exprimer et de modifier ses souhaits en matière de Cookies. <a href="https://escape-game-dd.clubelek.fr">https://escape-game-dd.clubelek.fr</a> pourra en outre faire appel aux services de prestataires externes pour l’aider à recueillir et traiter les informations décrites dans cette section.</p> - <p> - Enfin, en cliquant sur les icônes dédiées aux réseaux sociaux Twitter, Facebook, Linkedin et Google Plus figurant sur le Site de <a href="https://escape-game-dd.clubelek.fr">https://escape-game-dd.clubelek.fr</a> ou dans son application mobile et si l’Utilisateur a accepté le dépôt de cookies en poursuivant sa navigation sur le Site Internet ou l’application mobile de <a href="https://escape-game-dd.clubelek.fr">https://escape-game-dd.clubelek.fr</a>, Twitter, Facebook, Linkedin et Google Plus peuvent également déposer des cookies sur vos terminaux (ordinateur, tablette, téléphone portable).</p> - <p> - Ces types de cookies ne sont déposés sur vos terminaux qu’à condition que vous y consentiez, en continuant votre navigation sur le Site Internet ou l’application mobile de <a href="https://escape-game-dd.clubelek.fr">https://escape-game-dd.clubelek.fr</a>. À tout moment, l’Utilisateur peut néanmoins revenir sur son consentement à ce que <a href="https://escape-game-dd.clubelek.fr">https://escape-game-dd.clubelek.fr</a> dépose ce type de cookies.</p> - - <h3>Article 9.2. BALISES (“TAGSâ€) INTERNET</h3> - - - <p> - - <a href="https://escape-game-dd.clubelek.fr">https://escape-game-dd.clubelek.fr</a> peut employer occasionnellement des balises Internet (également appelées « tags », ou balises d’action, GIF à un pixel, GIF transparents, GIF invisibles et GIF un à un) et les déployer par l’intermédiaire d’un partenaire spécialiste d’analyses Web susceptible de se trouver (et donc de stocker les informations correspondantes, y compris l’adresse IP de l’Utilisateur) dans un pays étranger.</p> - - <p> - Ces balises sont placées à la fois dans les publicités en ligne permettant aux internautes d’accéder au Site, et sur les différentes pages de celui-ci. - </p> - <p> - Cette technologie permet à <a href="https://escape-game-dd.clubelek.fr">https://escape-game-dd.clubelek.fr</a> d’évaluer les réponses des visiteurs face au Site et l’efficacité de ses actions (par exemple, le nombre de fois où une page est ouverte et les informations consultées), ainsi que l’utilisation de ce Site par l’Utilisateur. </p> - <p> - Le prestataire externe pourra éventuellement recueillir des informations sur les visiteurs du Site et d’autres sites Internet grâce à ces balises, constituer des rapports sur l’activité du Site à l’attention de <a href="https://escape-game-dd.clubelek.fr">https://escape-game-dd.clubelek.fr</a>, et fournir d’autres services relatifs à l’utilisation de celui-ci et d’Internet.</p> - <p> - </p><h2>10. Droit applicable et attribution de juridiction.</h2> - <p> - Tout litige en relation avec l’utilisation du site <a href="https://escape-game-dd.clubelek.fr">https://escape-game-dd.clubelek.fr</a> est soumis au droit français. - En dehors des cas où la loi ne le permet pas, il est fait attribution exclusive de juridiction aux tribunaux compétents de Lyon</p> - - - - - + <div class="content"> + <h2>Définitions</h2> + <p> + <b>Client :</b> tout professionnel ou personne physique capable au sens + des articles 1123 et suivants du Code civil, ou personne morale, qui + visite le Site objet des présentes conditions générales.<br /> + <b>Prestations et Services :</b> + <a href="https://escape-game-dd.clubelek.fr" + >https://escape-game-dd.clubelek.fr</a + > + met à disposition des Clients : + </p> + + <p> + <b>Contenu :</b> Ensemble des éléments constituants l’information présente + sur le Site, notamment textes – images – vidéos. + </p> + + <p> + <b>Informations clients :</b> Ci après dénommé « Information (s) » qui + correspondent à l’ensemble des données personnelles susceptibles d’être + détenues par + <a href="https://escape-game-dd.clubelek.fr" + >https://escape-game-dd.clubelek.fr</a + > + pour la gestion de votre compte, de la gestion de la relation client et à + des fins d’analyses et de statistiques. + </p> + + <p> + <b>Utilisateur :</b> Internaute se connectant, utilisant le site susnommé. + </p> + <p> + <b>Informations personnelles :</b> « Les informations qui permettent, sous + quelque forme que ce soit, directement ou non, l'identification des + personnes physiques auxquelles elles s'appliquent » (article 4 de la loi + n° 78-17 du 6 janvier 1978). + </p> + <p> + Les termes « données à caractère personnel », « personne concernée », « + sous traitant » et « données sensibles » ont le sens défini par le + Règlement Général sur la Protection des Données (RGPD : n° 2016-679) + </p> + + <h2>1. Présentation du site internet.</h2> + <p> + En vertu de l'article 6 de la loi n° 2004-575 du 21 juin 2004 pour la + confiance dans l'économie numérique, il est précisé aux utilisateurs du + site internet + <a href="https://escape-game-dd.clubelek.fr" + >https://escape-game-dd.clubelek.fr</a + > + l'identité des différents intervenants dans le cadre de sa réalisation et + de son suivi: + </p> + <p> + <strong>Propriétaire</strong> : Association loi 1901 Clubelek (Association + loi 1901) – INSA Lyon - 20 Avenue Albert Einstein 69100 Villeurbanne<br /> + + <strong>Responsable publication</strong> : Clubelek – + clubelek@insa-lyon.fr<br /> + Le responsable publication est une personne physique ou une personne + morale.<br /> + <strong>Webmaster</strong> : Antoine Rochebois – + antoine.rochebois@insa-lyon.fr<br /> + <strong>Hébergeur</strong> : ovh – 2 rue Kellermann 59100 Roubaix 1007<br /> + <strong>Délégué à la protection des données</strong> : Antoine Rochebois – + antoine.rochebois@insa-lyon.fr<br /> + </p> + + <div ng-bind-html="linkHTML"> + <p> + Ce modèle de mentions légales est proposé par le + <a + href="https://fr.orson.io/1371/generateur-mentions-legales" + title="générateur gratuit offert par Orson.io" + >générateur gratuit offert par Orson.io</a + > + </p> </div> + + <h2> + 2. Conditions générales d’utilisation du site et des services proposés. + </h2> + + <p> + Le Site constitue une Å“uvre de l’esprit protégée par les dispositions du + Code de la Propriété Intellectuelle et des Réglementations Internationales + applicables. Le Client ne peut en aucune manière réutiliser, céder ou + exploiter pour son propre compte tout ou partie des éléments ou travaux du + Site. + </p> + + <p> + L’utilisation du site + <a href="https://escape-game-dd.clubelek.fr" + >https://escape-game-dd.clubelek.fr</a + > + implique l’acceptation pleine et entière des conditions générales + d’utilisation ci-après décrites. Ces conditions d’utilisation sont + susceptibles d’être modifiées ou complétées à tout moment, les + utilisateurs du site + <a href="https://escape-game-dd.clubelek.fr" + >https://escape-game-dd.clubelek.fr</a + > + sont donc invités à les consulter de manière régulière. + </p> + + <p> + Ce site internet est normalement accessible à tout moment aux + utilisateurs. Une interruption pour raison de maintenance technique peut + être toutefois décidée par + <a href="https://escape-game-dd.clubelek.fr" + >https://escape-game-dd.clubelek.fr</a + >, qui s’efforcera alors de communiquer préalablement aux utilisateurs les + dates et heures de l’intervention. Le site web + <a href="https://escape-game-dd.clubelek.fr" + >https://escape-game-dd.clubelek.fr</a + > + est mis à jour régulièrement par + <a href="https://escape-game-dd.clubelek.fr" + >https://escape-game-dd.clubelek.fr</a + > + responsable. De la même façon, les mentions légales peuvent être modifiées + à tout moment : elles s’imposent néanmoins à l’utilisateur qui est invité + à s’y référer le plus souvent possible afin d’en prendre connaissance. + </p> + + <h2>3. Description des services fournis.</h2> + + <p> + Le site internet + <a href="https://escape-game-dd.clubelek.fr" + >https://escape-game-dd.clubelek.fr</a + > + a pour objet de fournir une information concernant l’ensemble des + activités de la société. + <a href="https://escape-game-dd.clubelek.fr" + >https://escape-game-dd.clubelek.fr</a + > + s’efforce de fournir sur le site + <a href="https://escape-game-dd.clubelek.fr" + >https://escape-game-dd.clubelek.fr</a + > + des informations aussi précises que possible. Toutefois, il ne pourra être + tenu responsable des oublis, des inexactitudes et des carences dans la + mise à jour, qu’elles soient de son fait ou du fait des tiers partenaires + qui lui fournissent ces informations. + </p> + + <p> + Toutes les informations indiquées sur le site + <a href="https://escape-game-dd.clubelek.fr" + >https://escape-game-dd.clubelek.fr</a + > + sont données à titre indicatif, et sont susceptibles d’évoluer. Par + ailleurs, les renseignements figurant sur le site + <a href="https://escape-game-dd.clubelek.fr" + >https://escape-game-dd.clubelek.fr</a + > + ne sont pas exhaustifs. Ils sont donnés sous réserve de modifications + ayant été apportées depuis leur mise en ligne. + </p> + + <h2>4. Limitations contractuelles sur les données techniques.</h2> + + <p> + Le site utilise la technologie JavaScript. Le site Internet ne pourra être + tenu responsable de dommages matériels liés à l’utilisation du site. De + plus, l’utilisateur du site s’engage à accéder au site en utilisant un + matériel récent, ne contenant pas de virus et avec un navigateur de + dernière génération mis-à -jour Le site + <a href="https://escape-game-dd.clubelek.fr" + >https://escape-game-dd.clubelek.fr</a + > + est hébergé chez un prestataire sur le territoire de l’Union Européenne + conformément aux dispositions du Règlement Général sur la Protection des + Données (RGPD : n° 2016-679) + </p> + + <p> + L’objectif est d’apporter une prestation qui assure le meilleur taux + d’accessibilité. L’hébergeur assure la continuité de son service 24 Heures + sur 24, tous les jours de l’année. Il se réserve néanmoins la possibilité + d’interrompre le service d’hébergement pour les durées les plus courtes + possibles notamment à des fins de maintenance, d’amélioration de ses + infrastructures, de défaillance de ses infrastructures ou si les + Prestations et Services génèrent un trafic réputé anormal. + </p> + + <p> + <a href="https://escape-game-dd.clubelek.fr" + >https://escape-game-dd.clubelek.fr</a + > + et l’hébergeur ne pourront être tenus responsables en cas de + dysfonctionnement du réseau Internet, des lignes téléphoniques ou du + matériel informatique et de téléphonie lié notamment à l’encombrement du + réseau empêchant l’accès au serveur. + </p> + + <h2>5. Propriété intellectuelle et contrefaçons.</h2> + + <p> + <a href="https://escape-game-dd.clubelek.fr" + >https://escape-game-dd.clubelek.fr</a + > + est propriétaire des droits de propriété intellectuelle et détient les + droits d’usage sur tous les éléments accessibles sur le site internet, + notamment les textes, images, graphismes, logos, vidéos, icônes et sons. + Toute reproduction, représentation, modification, publication, adaptation + de tout ou partie des éléments du site, quel que soit le moyen ou le + procédé utilisé, est interdite, sauf autorisation écrite préalable de : + <a href="https://escape-game-dd.clubelek.fr" + >https://escape-game-dd.clubelek.fr</a + >. + </p> + + <p> + Toute exploitation non autorisée du site ou de l’un quelconque des + éléments qu’il contient sera considérée comme constitutive d’une + contrefaçon et poursuivie conformément aux dispositions des articles + L.335-2 et suivants du Code de Propriété Intellectuelle. + </p> + + <h2>6. Limitations de responsabilité.</h2> + + <p> + <a href="https://escape-game-dd.clubelek.fr" + >https://escape-game-dd.clubelek.fr</a + > + agit en tant qu’éditeur du site. + <a href="https://escape-game-dd.clubelek.fr" + >https://escape-game-dd.clubelek.fr</a + > + est responsable de la qualité et de la véracité du Contenu qu’il publie. + </p> + + <p> + <a href="https://escape-game-dd.clubelek.fr" + >https://escape-game-dd.clubelek.fr</a + > + ne pourra être tenu responsable des dommages directs et indirects causés + au matériel de l’utilisateur, lors de l’accès au site internet + <a href="https://escape-game-dd.clubelek.fr" + >https://escape-game-dd.clubelek.fr</a + >, et résultant soit de l’utilisation d’un matériel ne répondant pas aux + spécifications indiquées au point 4, soit de l’apparition d’un bug ou + d’une incompatibilité. + </p> + + <p> + <a href="https://escape-game-dd.clubelek.fr" + >https://escape-game-dd.clubelek.fr</a + > + ne pourra également être tenu responsable des dommages indirects (tels par + exemple qu’une perte de marché ou perte d’une chance) consécutifs à + l’utilisation du site + <a href="https://escape-game-dd.clubelek.fr" + >https://escape-game-dd.clubelek.fr</a + >. Des espaces interactifs (possibilité de poser des questions dans + l’espace contact) sont à la disposition des utilisateurs. + <a href="https://escape-game-dd.clubelek.fr" + >https://escape-game-dd.clubelek.fr</a + > + se réserve le droit de supprimer, sans mise en demeure préalable, tout + contenu déposé dans cet espace qui contreviendrait à la législation + applicable en France, en particulier aux dispositions relatives à la + protection des données. Le cas échéant, + <a href="https://escape-game-dd.clubelek.fr" + >https://escape-game-dd.clubelek.fr</a + > + se réserve également la possibilité de mettre en cause la responsabilité + civile et/ou pénale de l’utilisateur, notamment en cas de message à + caractère raciste, injurieux, diffamant, ou pornographique, quel que soit + le support utilisé (texte, photographie …). + </p> + + <h2>7. Gestion des données personnelles.</h2> + + <p> + Le Client est informé des réglementations concernant la communication + marketing, la loi du 21 Juin 2014 pour la confiance dans l’Economie + Numérique, la Loi Informatique et Liberté du 06 Août 2004 ainsi que du + Règlement Général sur la Protection des Données (RGPD : n° 2016-679). + </p> + + <h3>7.1 Responsables de la collecte des données personnelles</h3> + + <p> + Pour les Données Personnelles collectées dans le cadre de la création du + compte personnel de l’Utilisateur et de sa navigation sur le Site, le + responsable du traitement des Données Personnelles est : Clubelek + (Association loi 1901). + <a href="https://escape-game-dd.clubelek.fr" + >https://escape-game-dd.clubelek.fr</a + >est représenté par Thomas Vadebout, son représentant légal + </p> + + <p> + En tant que responsable du traitement des données qu’il collecte, + <a href="https://escape-game-dd.clubelek.fr" + >https://escape-game-dd.clubelek.fr</a + > + s’engage à respecter le cadre des dispositions légales en vigueur. Il lui + appartient notamment au Client d’établir les finalités de ses traitements + de données, de fournir à ses prospects et clients, à partir de la collecte + de leurs consentements, une information complète sur le traitement de + leurs données personnelles et de maintenir un registre des traitements + conforme à la réalité. Chaque fois que + <a href="https://escape-game-dd.clubelek.fr" + >https://escape-game-dd.clubelek.fr</a + > + traite des Données Personnelles, + <a href="https://escape-game-dd.clubelek.fr" + >https://escape-game-dd.clubelek.fr</a + > + prend toutes les mesures raisonnables pour s’assurer de l’exactitude et de + la pertinence des Données Personnelles au regard des finalités pour + lesquelles + <a href="https://escape-game-dd.clubelek.fr" + >https://escape-game-dd.clubelek.fr</a + > + les traite. + </p> + + <h3>7.2 Finalité des données collectées</h3> + + <p> + <a href="https://escape-game-dd.clubelek.fr" + >https://escape-game-dd.clubelek.fr</a + > + est susceptible de traiter tout ou partie des données : + </p> + + <ul> + <li> + pour permettre la navigation sur le Site et la gestion et la traçabilité + des prestations et services commandés par l’utilisateur : données de + connexion et d’utilisation du Site, facturation, historique des + commandes, etc. + </li> + + <li> + pour prévenir et lutter contre la fraude informatique (spamming, + hacking…) : matériel informatique utilisé pour la navigation, l’adresse + IP, le mot de passe (hashé) + </li> + + <li> + pour améliorer la navigation sur le Site : données de connexion et + d’utilisation + </li> + + <li> + pour mener des enquêtes de satisfaction facultatives sur + <a href="https://escape-game-dd.clubelek.fr" + >https://escape-game-dd.clubelek.fr</a + > + : adresse email + </li> + <li> + pour mener des campagnes de communication (sms, mail) : numéro de + téléphone, adresse email + </li> + </ul> + + <p> + <a href="https://escape-game-dd.clubelek.fr" + >https://escape-game-dd.clubelek.fr</a + > + ne commercialise pas vos données personnelles qui sont donc uniquement + utilisées par nécessité ou à des fins statistiques et d’analyses. + </p> + + <h3>7.3 Droit d’accès, de rectification et d’opposition</h3> + + <p> + Conformément à la réglementation européenne en vigueur, les Utilisateurs + de + <a href="https://escape-game-dd.clubelek.fr" + >https://escape-game-dd.clubelek.fr</a + > + disposent des droits suivants : + </p> + <ul> + <li> + droit d'accès (article 15 RGPD) et de rectification (article 16 RGPD), + de mise à jour, de complétude des données des Utilisateurs droit de + verrouillage ou d’effacement des données des Utilisateurs à caractère + personnel (article 17 du RGPD), lorsqu’elles sont inexactes, + incomplètes, équivoques, périmées, ou dont la collecte, l'utilisation, + la communication ou la conservation est interdite + </li> + + <li> + droit de retirer à tout moment un consentement (article 13-2c RGPD) + </li> + + <li> + droit à la limitation du traitement des données des Utilisateurs + (article 18 RGPD) + </li> + + <li> + droit d’opposition au traitement des données des Utilisateurs (article + 21 RGPD) + </li> + + <li> + droit à la portabilité des données que les Utilisateurs auront fournies, + lorsque ces données font l’objet de traitements automatisés fondés sur + leur consentement ou sur un contrat (article 20 RGPD) + </li> + + <li> + droit de définir le sort des données des Utilisateurs après leur mort et + de choisir à qui + <a href="https://escape-game-dd.clubelek.fr" + >https://escape-game-dd.clubelek.fr</a + > + devra communiquer (ou non) ses données à un tiers qu’ils aura + préalablement désigné + </li> + </ul> + + <p> + Dès que + <a href="https://escape-game-dd.clubelek.fr" + >https://escape-game-dd.clubelek.fr</a + > + a connaissance du décès d’un Utilisateur et à défaut d’instructions de sa + part, + <a href="https://escape-game-dd.clubelek.fr" + >https://escape-game-dd.clubelek.fr</a + > + s’engage à détruire ses données, sauf si leur conservation s’avère + nécessaire à des fins probatoires ou pour répondre à une obligation + légale. + </p> + + <p> + Si l’Utilisateur souhaite savoir comment + <a href="https://escape-game-dd.clubelek.fr" + >https://escape-game-dd.clubelek.fr</a + > + utilise ses Données Personnelles, demander à les rectifier ou s’oppose à + leur traitement, l’Utilisateur peut contacter + <a href="https://escape-game-dd.clubelek.fr" + >https://escape-game-dd.clubelek.fr</a + > + par écrit à l’adresse suivante : + </p> + + Clubelek (Association loi 1901) – DPO, Antoine Rochebois <br /> + INSA Lyon - 20 Avenue Albert Einstein 69100 Villeurbanne. + + <p> + Dans ce cas, l’Utilisateur doit indiquer les Données Personnelles qu’il + souhaiterait que + <a href="https://escape-game-dd.clubelek.fr" + >https://escape-game-dd.clubelek.fr</a + > + corrige, mette à jour ou supprime, en s’identifiant précisément avec une + copie d’une pièce d’identité (carte d’identité ou passeport). + </p> + + <p> + Les demandes de suppression de Données Personnelles seront soumises aux + obligations qui sont imposées à + <a href="https://escape-game-dd.clubelek.fr" + >https://escape-game-dd.clubelek.fr</a + > + par la loi, notamment en matière de conservation ou d’archivage des + documents. Enfin, les Utilisateurs de + <a href="https://escape-game-dd.clubelek.fr" + >https://escape-game-dd.clubelek.fr</a + > + peuvent déposer une réclamation auprès des autorités de contrôle, et + notamment de la CNIL (https://www.cnil.fr/fr/plaintes). + </p> + + <h3>7.4 Non-communication des données personnelles</h3> + + <p> + <a href="https://escape-game-dd.clubelek.fr" + >https://escape-game-dd.clubelek.fr</a + > + s’interdit de traiter, héberger ou transférer les Informations collectées + sur ses Clients vers un pays situé en dehors de l’Union européenne ou + reconnu comme « non adéquat » par la Commission européenne sans en + informer préalablement le client. Pour autant, + <a href="https://escape-game-dd.clubelek.fr" + >https://escape-game-dd.clubelek.fr</a + > + reste libre du choix de ses sous-traitants techniques et commerciaux à la + condition qu’il présentent les garanties suffisantes au regard des + exigences du Règlement Général sur la Protection des Données (RGPD : n° + 2016-679). + </p> + + <p> + <a href="https://escape-game-dd.clubelek.fr" + >https://escape-game-dd.clubelek.fr</a + > + s’engage à prendre toutes les précautions nécessaires afin de préserver la + sécurité des Informations et notamment qu’elles ne soient pas communiquées + à des personnes non autorisées. Cependant, si un incident impactant + l’intégrité ou la confidentialité des Informations du Client est portée à + la connaissance de + <a href="https://escape-game-dd.clubelek.fr" + >https://escape-game-dd.clubelek.fr</a + >, celle-ci devra dans les meilleurs délais informer le Client et lui + communiquer les mesures de corrections prises. Par ailleurs + <a href="https://escape-game-dd.clubelek.fr" + >https://escape-game-dd.clubelek.fr</a + > + ne collecte aucune « données sensibles ». + </p> + + <p> + Les Données Personnelles de l’Utilisateur peuvent être traitées par des + filiales de + <a href="https://escape-game-dd.clubelek.fr" + >https://escape-game-dd.clubelek.fr</a + > + et des sous-traitants (prestataires de services), exclusivement afin de + réaliser les finalités de la présente politique. + </p> + <p> + Dans la limite de leurs attributions respectives et pour les finalités + rappelées ci-dessus, les principales personnes susceptibles d’avoir accès + aux données des Utilisateurs de + <a href="https://escape-game-dd.clubelek.fr" + >https://escape-game-dd.clubelek.fr</a + > + sont principalement les agents de notre service client. + </p> + + <div ng-bind-html="rgpdHTML"></div> + + <h2>8. Notification d’incident</h2> + <p> + Quels que soient les efforts fournis, aucune méthode de transmission sur + Internet et aucune méthode de stockage électronique n'est complètement + sûre. Nous ne pouvons en conséquence pas garantir une sécurité absolue. Si + nous prenions connaissance d'une brèche de la sécurité, nous avertirions + les utilisateurs concernés afin qu'ils puissent prendre les mesures + appropriées. Nos procédures de notification d’incident tiennent compte de + nos obligations légales, qu'elles se situent au niveau national ou + européen. Nous nous engageons à informer pleinement nos clients de toutes + les questions relevant de la sécurité de leur compte et à leur fournir + toutes les informations nécessaires pour les aider à respecter leurs + propres obligations réglementaires en matière de reporting. + </p> + <p> + Aucune information personnelle de l'utilisateur du site + <a href="https://escape-game-dd.clubelek.fr" + >https://escape-game-dd.clubelek.fr</a + > + n'est publiée à l'insu de l'utilisateur, échangée, transférée, cédée ou + vendue sur un support quelconque à des tiers. Seule l'hypothèse du rachat + de + <a href="https://escape-game-dd.clubelek.fr" + >https://escape-game-dd.clubelek.fr</a + > + et de ses droits permettrait la transmission des dites informations à + l'éventuel acquéreur qui serait à son tour tenu de la même obligation de + conservation et de modification des données vis à vis de l'utilisateur du + site + <a href="https://escape-game-dd.clubelek.fr" + >https://escape-game-dd.clubelek.fr</a + >. + </p> + + <h3>Sécurité</h3> + + <p> + Pour assurer la sécurité et la confidentialité des Données Personnelles et + des Données Personnelles de Santé, + <a href="https://escape-game-dd.clubelek.fr" + >https://escape-game-dd.clubelek.fr</a + > + utilise des réseaux protégés par des dispositifs standards tels que par + pare-feu, la pseudonymisation, l’encryption et mot de passe. + </p> + + <p> + Lors du traitement des Données Personnelles, + <a href="https://escape-game-dd.clubelek.fr" + >https://escape-game-dd.clubelek.fr</a + >prend toutes les mesures raisonnables visant à les protéger contre toute + perte, utilisation détournée, accès non autorisé, divulgation, altération + ou destruction. + </p> + + <h2>9. Liens hypertextes « cookies » et balises (“tagsâ€) internet</h2> + <p> + Le site + <a href="https://escape-game-dd.clubelek.fr" + >https://escape-game-dd.clubelek.fr</a + > + contient un certain nombre de liens hypertextes vers d’autres sites, mis + en place avec l’autorisation de + <a href="https://escape-game-dd.clubelek.fr" + >https://escape-game-dd.clubelek.fr</a + >. Cependant, + <a href="https://escape-game-dd.clubelek.fr" + >https://escape-game-dd.clubelek.fr</a + > + n’a pas la possibilité de vérifier le contenu des sites ainsi visités, et + n’assumera en conséquence aucune responsabilité de ce fait. + </p> + Sauf si vous décidez de désactiver les cookies, vous acceptez que le site + puisse les utiliser. Vous pouvez à tout moment désactiver ces cookies et ce + gratuitement à partir des possibilités de désactivation qui vous sont + offertes et rappelées ci-après, sachant que cela peut réduire ou empêcher + l’accessibilité à tout ou partie des Services proposés par le site. + <p></p> + + <h3>9.1. « COOKIES »</h3> + <p> + Un « cookie » est un petit fichier d’information envoyé sur le navigateur + de l’Utilisateur et enregistré au sein du terminal de l’Utilisateur (ex : + ordinateur, smartphone), (ci-après « Cookies »). Ce fichier comprend des + informations telles que le nom de domaine de l’Utilisateur, le fournisseur + d’accès Internet de l’Utilisateur, le système d’exploitation de + l’Utilisateur, ainsi que la date et l’heure d’accès. Les Cookies ne + risquent en aucun cas d’endommager le terminal de l’Utilisateur. + </p> + <p> + <a href="https://escape-game-dd.clubelek.fr" + >https://escape-game-dd.clubelek.fr</a + > + est susceptible de traiter les informations de l’Utilisateur concernant sa + visite du Site, telles que les pages consultées, les recherches + effectuées. Ces informations permettent à + <a href="https://escape-game-dd.clubelek.fr" + >https://escape-game-dd.clubelek.fr</a + > + d’améliorer le contenu du Site, de la navigation de l’Utilisateur. + </p> + <p> + Les Cookies facilitant la navigation et/ou la fourniture des services + proposés par le Site, l’Utilisateur peut configurer son navigateur pour + qu’il lui permette de décider s’il souhaite ou non les accepter de manière + à ce que des Cookies soient enregistrés dans le terminal ou, au contraire, + qu’ils soient rejetés, soit systématiquement, soit selon leur émetteur. + L’Utilisateur peut également configurer son logiciel de navigation de + manière à ce que l’acceptation ou le refus des Cookies lui soient proposés + ponctuellement, avant qu’un Cookie soit susceptible d’être enregistré dans + son terminal. + <a href="https://escape-game-dd.clubelek.fr" + >https://escape-game-dd.clubelek.fr</a + > + informe l’Utilisateur que, dans ce cas, il se peut que les fonctionnalités + de son logiciel de navigation ne soient pas toutes disponibles. + </p> + <p> + Si l’Utilisateur refuse l’enregistrement de Cookies dans son terminal ou + son navigateur, ou si l’Utilisateur supprime ceux qui y sont enregistrés, + l’Utilisateur est informé que sa navigation et son expérience sur le Site + peuvent être limitées. Cela pourrait également être le cas lorsque + <a href="https://escape-game-dd.clubelek.fr" + >https://escape-game-dd.clubelek.fr</a + > + ou l’un de ses prestataires ne peut pas reconnaître, à des fins de + compatibilité technique, le type de navigateur utilisé par le terminal, + les paramètres de langue et d’affichage ou le pays depuis lequel le + terminal semble connecté à Internet. + </p> + <p> + Le cas échéant, + <a href="https://escape-game-dd.clubelek.fr" + >https://escape-game-dd.clubelek.fr</a + > + décline toute responsabilité pour les conséquences liées au fonctionnement + dégradé du Site et des services éventuellement proposés par + <a href="https://escape-game-dd.clubelek.fr" + >https://escape-game-dd.clubelek.fr</a + >, résultant (i) du refus de Cookies par l’Utilisateur (ii) de + l’impossibilité pour + <a href="https://escape-game-dd.clubelek.fr" + >https://escape-game-dd.clubelek.fr</a + > + d’enregistrer ou de consulter les Cookies nécessaires à leur + fonctionnement du fait du choix de l’Utilisateur. Pour la gestion des + Cookies et des choix de l’Utilisateur, la configuration de chaque + navigateur est différente. Elle est décrite dans le menu d’aide du + navigateur, qui permettra de savoir de quelle manière l’Utilisateur peut + modifier ses souhaits en matière de Cookies. + </p> + <p> + À tout moment, l’Utilisateur peut faire le choix d’exprimer et de modifier + ses souhaits en matière de Cookies. + <a href="https://escape-game-dd.clubelek.fr" + >https://escape-game-dd.clubelek.fr</a + > + pourra en outre faire appel aux services de prestataires externes pour + l’aider à recueillir et traiter les informations décrites dans cette + section. + </p> + <p> + Enfin, en cliquant sur les icônes dédiées aux réseaux sociaux Twitter, + Facebook, Linkedin et Google Plus figurant sur le Site de + <a href="https://escape-game-dd.clubelek.fr" + >https://escape-game-dd.clubelek.fr</a + > + ou dans son application mobile et si l’Utilisateur a accepté le dépôt de + cookies en poursuivant sa navigation sur le Site Internet ou l’application + mobile de + <a href="https://escape-game-dd.clubelek.fr" + >https://escape-game-dd.clubelek.fr</a + >, Twitter, Facebook, Linkedin et Google Plus peuvent également déposer + des cookies sur vos terminaux (ordinateur, tablette, téléphone portable). + </p> + <p> + Ces types de cookies ne sont déposés sur vos terminaux qu’à condition que + vous y consentiez, en continuant votre navigation sur le Site Internet ou + l’application mobile de + <a href="https://escape-game-dd.clubelek.fr" + >https://escape-game-dd.clubelek.fr</a + >. À tout moment, l’Utilisateur peut néanmoins revenir sur son + consentement à ce que + <a href="https://escape-game-dd.clubelek.fr" + >https://escape-game-dd.clubelek.fr</a + > + dépose ce type de cookies. + </p> + + <h3>Article 9.2. BALISES (“TAGSâ€) INTERNET</h3> + + <p> + <a href="https://escape-game-dd.clubelek.fr" + >https://escape-game-dd.clubelek.fr</a + > + peut employer occasionnellement des balises Internet (également appelées « + tags », ou balises d’action, GIF à un pixel, GIF transparents, GIF + invisibles et GIF un à un) et les déployer par l’intermédiaire d’un + partenaire spécialiste d’analyses Web susceptible de se trouver (et donc + de stocker les informations correspondantes, y compris l’adresse IP de + l’Utilisateur) dans un pays étranger. + </p> + + <p> + Ces balises sont placées à la fois dans les publicités en ligne permettant + aux internautes d’accéder au Site, et sur les différentes pages de + celui-ci. + </p> + <p> + Cette technologie permet à + <a href="https://escape-game-dd.clubelek.fr" + >https://escape-game-dd.clubelek.fr</a + > + d’évaluer les réponses des visiteurs face au Site et l’efficacité de ses + actions (par exemple, le nombre de fois où une page est ouverte et les + informations consultées), ainsi que l’utilisation de ce Site par + l’Utilisateur. + </p> + <p> + Le prestataire externe pourra éventuellement recueillir des informations + sur les visiteurs du Site et d’autres sites Internet grâce à ces balises, + constituer des rapports sur l’activité du Site à l’attention de + <a href="https://escape-game-dd.clubelek.fr" + >https://escape-game-dd.clubelek.fr</a + >, et fournir d’autres services relatifs à l’utilisation de celui-ci et + d’Internet. + </p> + <p></p> + <h2>10. Droit applicable et attribution de juridiction.</h2> + <p> + Tout litige en relation avec l’utilisation du site + <a href="https://escape-game-dd.clubelek.fr" + >https://escape-game-dd.clubelek.fr</a + > + est soumis au droit français. En dehors des cas où la loi ne le permet + pas, il est fait attribution exclusive de juridiction aux tribunaux + compétents de Lyon + </p> + </div> </template> <script> export default { - name : "MentionsLegales" -} + name: "MentionsLegales" +}; </script> -<style scoped> -</style> \ No newline at end of file +<style scoped></style> diff --git a/client/src/components/PageFooter.vue b/client/src/components/PageFooter.vue index 02fc3c0cf0716290aa7b4d69c30ced5644204b35..d58579de869b63ad407291643bb585a1c29e5d9b 100644 --- a/client/src/components/PageFooter.vue +++ b/client/src/components/PageFooter.vue @@ -1,26 +1,33 @@ <template> - <footer class="footer"> - <div class="content has-text-centered"> - <p> - Conçu et développé par le Clubelek et Objectif21, de l'INSA Lyon - </p> - </div> - </footer> - + <footer class="footer has-text-centered"> + <div class="content level"> + <a class="level-item has-text-centered" href="https://www.insa-lyon.fr"> + <img src="../assets/img/insa.png"> + </a> + <a class="level-item has-text-centered" href="https://www.clubelek.fr"> + <img src="../assets/img/clubelek.png"> + </a> + <a class="level-item has-text-centered"> + <img src="../assets/img/objectif21.png"> + </a> + </div> + <div class="content"> + <p>Conçu et développé par les associations Clubelek et Objectif21, de l'INSA Lyon - Saison 2020/2021</p> + </div> + + </footer> </template> <script> export default { - name:"PageFooter" -} + name: "PageFooter" +}; </script> - -<style> - footer { - bottom: 0; - left: 0; - position: fixed; - right: 0; - z-index: 30; - } -</style> \ No newline at end of file + +<style scoped> +img { + height:64px; +} + + +</style> diff --git a/client/src/components/Register.vue b/client/src/components/Register.vue index 34c5f04bdbb6e95366ec6efd51d2d431dc7252a0..c8248f39e3070810ec5d9285336fd73ce37c3c25 100644 --- a/client/src/components/Register.vue +++ b/client/src/components/Register.vue @@ -1,55 +1,83 @@ <template> - <div class="content"> - <form @submit.prevent="register"> - <div class="field"> - <p class="control has-icons-left"> - <input class="input is-primary" type=text v-model="username" placeholder="Identifiant"> - <span class="icon is-small is-left"> - <i class="fas fa-user"></i> - </span> - </p> - </div><br /> - <div class="field"> - <p class="control has-icons-left"> - <input class="input is-primary" type=text v-model="schoolName" placeholder="Nom de l'établissement"> - <span class="icon is-small is-left"> - <i class="fas fa-school"></i> - </span> - </p> - </div><br /> - <div class="field"> - <p class="control has-icons-left"> - <input type="password" class="input is-primary" v-model="password" placeholder="Mot de passe"> - <span class="icon is-small is-left"> - <i class="fas fa-lock"></i> - </span> - </p> - </div><br /> - <div> - <button class="button is-primary" type="submit">S'inscire</button> - </div> - </form> - </div> + <div class="content"> + <form @submit.prevent="register"> + <div class="field"> + <p class="control has-icons-left"> + <input + class="input is-primary" + type="text" + v-model="username" + placeholder="Identifiant" + /> + <span class="icon is-small is-left"> + <i class="fas fa-user"></i> + </span> + </p> + </div> + <br /> + <div class="field"> + <p class="control has-icons-left"> + <input + class="input is-primary" + type="text" + v-model="schoolName" + placeholder="Nom de l'établissement" + /> + <span class="icon is-small is-left"> + <i class="fas fa-school"></i> + </span> + </p> + </div> + <br /> + <div class="field"> + <p class="control has-icons-left"> + <input + type="password" + class="input is-primary" + v-model="password" + placeholder="Mot de passe" + /> + <span class="icon is-small is-left"> + <i class="fas fa-lock"></i> + </span> + </p> + </div> + <br /> + <div> + <button class="button is-primary" type="submit">S'inscire</button> + </div> + </form> + </div> </template> <script> export default { - name: "Login", - data() { - return { - username : "", - schoolName : "", - password : "" - } - }, - methods: { - register(){ - let uri = "//localhost:3000/register" - this.axios.post(uri, {username: this.username, schoolName: this.schoolName, password:this.password}, { withCredentials: true }).then(response => { - console.log(response) - this.$router.push('/login') - }); - } + name: "Login", + data() { + return { + username: "", + schoolName: "", + password: "" + }; + }, + methods: { + register() { + let uri = "//localhost:3000/register"; + this.axios + .post( + uri, + { + username: this.username, + schoolName: this.schoolName, + password: this.password + }, + { withCredentials: true } + ) + .then(response => { + console.log(response); + this.$router.push("/login"); + }); } -} -</script> \ No newline at end of file + } +}; +</script> diff --git a/client/src/components/SchoolManager.vue b/client/src/components/SchoolManager.vue index 5c29d1d3d8b4d38a1516f225e061ef1d363c2a60..4767dafdbdd29ebd7abc27b0679d1f0004136ded 100644 --- a/client/src/components/SchoolManager.vue +++ b/client/src/components/SchoolManager.vue @@ -23,24 +23,21 @@ export default { TeamElement, TeamAdder }, - data() { - return { - teams : [], - } + data() { + return { + teams: [] + }; }, created() { - let uri = "//localhost:3000/school"; - this.axios.get(uri, { withCredentials: true }).then(response => { - this.teams = response.data; - console.log(response) - }); - + let uri = "//localhost:3000/school"; + this.axios.get(uri, { withCredentials: true }).then(response => { + this.teams = response.data; + console.log(response); + }); }, - mounted() { - }, - methods: { - } + mounted() {}, + methods: {} }; </script> diff --git a/client/src/components/TeamAdder.vue b/client/src/components/TeamAdder.vue index fd338b3c2ba10beaf781a7e4361f10e65771760c..db36b088249188de762581c2d54ca1a8bf9381e5 100644 --- a/client/src/components/TeamAdder.vue +++ b/client/src/components/TeamAdder.vue @@ -1,56 +1,74 @@ <template> - <div class="message is-primary"> - <div class="message-header">Créer une nouvelle équipe</div> - <div class="message-body"> - <form @submit.prevent="addTeam"> - <div class="field"> - <label class="label">Nom de l'équipe</label> - <input class="input" type=text v-model="team.name"> - </div><br /> - <div class="field"> - <label class="label">Membres de l'équipe</label> - <div v-for="(c, index) in count" :key="c._id"> - <input class="input" type=text v-model="team.members[index]"/> - </div> - <button class="button is-primary is-outlined" type="button" @click="addMemberField">+</button> - <button class="button is-primary is-outlined" type="button" @click="removeMemberField">-</button> - </div><br /> - <div> - <button class="button is-primary" type="submit">Ajouter l'équipe</button> - </div> - </form> + <div class="message is-primary"> + <div class="message-header">Créer une nouvelle équipe</div> + <div class="message-body"> + <form @submit.prevent="addTeam"> + <div class="field"> + <label class="label">Nom de l'équipe</label> + <input class="input" type="text" v-model="team.name" /> </div> - </div> + <br /> + <div class="field"> + <label class="label">Membres de l'équipe</label> + <div v-for="(c, index) in count" :key="c._id"> + <input class="input" type="text" v-model="team.members[index]" /> + </div> + <button + class="button is-primary is-outlined" + type="button" + @click="addMemberField" + > + + + </button> + <button + class="button is-primary is-outlined" + type="button" + @click="removeMemberField" + > + - + </button> + </div> + <br /> + <div> + <button class="button is-primary" type="submit"> + Ajouter l'équipe + </button> + </div> + </form> + </div> + </div> </template> <script> export default { - name: "TeamAdder", - props : { - teamArray : Array + name: "TeamAdder", + props: { + teamArray: Array + }, + data() { + return { + team: { name: "", members: [] }, + count: 1 + }; + }, + methods: { + addTeam() { + let uri = "//localhost:3000/school/addTeam"; + this.axios + .post(uri, this.team, { withCredentials: true }) + .then(response => { + console.log("Team créée !", response); + this.teamArray.push(this.team); + this.team = { name: "", members: [] }; + }); }, - data() { - return { - team : {name : "", members: []}, - count: 1 - } + addMemberField() { + this.count++; }, - methods: { - addTeam(){ - let uri = "//localhost:3000/school/addTeam" - this.axios.post(uri, this.team, { withCredentials: true }).then(response => { - console.log("Team créée !", response) - this.teamArray.push(this.team) - this.team = {name : "", members: []} - }); - }, - addMemberField() { - this.count ++; - }, - removeMemberField() { - this.team.members.pop() - this.count --; - } + removeMemberField() { + this.team.members.pop(); + this.count--; } -} -</script> \ No newline at end of file + } +}; +</script> diff --git a/client/src/components/TeamElement.vue b/client/src/components/TeamElement.vue index 188c69d43c75c3368cae90332b77eb309c264288..82cd87defc28fd493d123a9801502bdd234511a8 100644 --- a/client/src/components/TeamElement.vue +++ b/client/src/components/TeamElement.vue @@ -1,74 +1,116 @@ <template> - <div class="content"> - <span class="message is-info"> + <div class="content"> + <span class="message is-info"> + <div class="message-header"> + Equipe {{ team.name }} ({{ memberCount }} membres) + <button class="delete" @click="removeTeam"></button> + </div> + + <div class="message-body"> + <div class="level"> + <div class="level-left level-item column"> + <p class="is-size-4"><strong>Membres de l'équipe :</strong></p> + <ul> + <li v-for="member in team.members" :key="member">{{ member }}</li> + </ul> + </div> + <div class="level-right level-item column has-text-centered"> + <p class="heading" v-if="team.cardId"> + Carte associée avec l'ID : {{ team.cardId }} + </p> + <p class="heading" v-else> + Aucune carte associée ! + </p> + <button v-if="team.cardId" class="button is-danger"> + Dissocier la carte + </button> + <button + v-else + @click="showPairingModal = !showPairingModal" + class="button is-warning" + > + Associer une carte + </button> + </div> + </div> + <div> + <p v-if="team.donePuzzles.length > 0" class="is-size-4"><strong>Puzzles effectués :</strong></p> + <div v-for="puzzle in team.donePuzzles" :key="puzzle.name"> + <div class="level" v-if="puzzle.score"> + <div class="level-item level-left"><p><strong>{{puzzle.name}}</strong> ({{puzzle.room}}) : </p></div> + <div class="level-item level-right"><progress class="progress is-small" :value="puzzle.score" :max="puzzle.maxScore"></progress></div> + <div class="level-item level-right"><p>{{puzzle.score}}/{{puzzle.maxScore}}</p></div> + </div> + <div v-else class="level "> + <div class="level-item level-left"> + <p><strong>{{puzzle.name}}</strong> ({{puzzle.room}}) : </p> + </div> + <div class="level-item level-right"> + <span v-if="puzzle.validated" class="icon has-text-success"> + <i class="fas fa-check-circle"></i> + </span> + <span v-else class="icon has-text-danger"> + <i class="fas fa-times-circle"></i> + </span> + </div> + + </div> + </div> + </div> + </div> + + + <div class="modal" :class="{ 'is-active': showPairingModal }"> + <div class="modal-background"></div> + <div class="modal-content"> + <div class="message"> <div class="message-header"> - Equipe {{team.name}} ({{memberCount}} membres) - <button class="delete" @click="removeTeam"></button> + Association d'une carte NFC à l'équipe {{ team.name }} </div> - <div class="message-body"> - <div class="columns is-mobile"> - <div class="column is-one-quarter"> - <ul> - <li v-for="member in team.members" :key="member">{{member}}</li> - </ul> - </div> - <div class="column"> - <button v-if="team.cardID" class="button is-danger">Dissocier la carte</button> - <button v-else @click="showPairingModal = !showPairingModal" class="button is-warning">Associer une carte</button> - <p v-if="team.cardID">Carte associée avec l'ID : {{team.cardID}}</p> - </div> - </div> - </div> - <div class="modal" :class="{'is-active': showPairingModal}"> - <div class="modal-background"></div> - <div class="modal-content"> - <div class=message> - <div class=message-header> - Association d'une carte NFC à l'équipe {{team.name}} - </div> - <div class="message-body"> - Veuillez scanner une carte sur le lecteur pour l'associer à cette équipe : - </div> - </div> - </div> - <button class="modal-close is-large" @click="showPairingModal = false"></button> + Veuillez scanner une carte sur le lecteur pour l'associer à cette + équipe : </div> - </span> - </div> + </div> + </div> + <button + class="modal-close is-large" + @click="showPairingModal = false" + ></button> + </div> + </span> + </div> </template> <script> export default { - name : "TeamElement", - props : { - team: Object, - teamArray: Array - }, - data() { - return { - showPairingModal : false - } - - }, + name: "TeamElement", + props: { + team: Object, + teamArray: Array + }, + data() { + return { + showPairingModal: false + }; + }, - computed : { - memberCount: function() { - return this.team.members.length; - } - }, + computed: { + memberCount: function() { + return this.team.members.length; + } + }, - methods : { - removeTeam: function() { - let uri = `//localhost:3000/school/deleteTeam/${this.team._id}`; - this.axios.delete(uri, { withCredentials: true }).then(response => { - console.log("bien supprimé !", response) - this.teamArray.splice(this.teamArray.indexOf(this.team), 1); - }) - } + methods: { + removeTeam: function() { + let uri = `//localhost:3000/school/deleteTeam/${this.team._id}`; + this.axios.delete(uri, { withCredentials: true }).then(response => { + console.log("bien supprimé !", response); + this.teamArray.splice(this.teamArray.indexOf(this.team), 1); + }); } -} + } +}; </script> -<style scoped> -</style> \ No newline at end of file +<style scoped></style> diff --git a/client/src/main.js b/client/src/main.js index 21ac78f372e30d53832a40704120bb46c39a9043..02a218397a121f7ac4a7046acd43e682f301c54c 100644 --- a/client/src/main.js +++ b/client/src/main.js @@ -1,55 +1,53 @@ import Vue from "vue"; import Vuex from "vuex"; -import createPersistedState from 'vuex-persistedstate'; +import createPersistedState from "vuex-persistedstate"; import VueRouter from "vue-router"; import App from "./App.vue"; -import VueAxios from 'vue-axios'; -import axios from 'axios'; +import VueAxios from "vue-axios"; +import axios from "axios"; -import HomeComponent from "./components/HomeComponent.vue" -import SchoolManager from "./components/SchoolManager.vue" -import MentionsLegales from "./components/MentionsLegales.vue" -import Login from "./components/Login.vue" -import Register from "./components/Register.vue" -require("@/assets/main.scss") -import '@fortawesome/fontawesome-free/css/all.css' -import '@fortawesome/fontawesome-free/js/all.js' +import HomeComponent from "./components/HomeComponent.vue"; +import SchoolManager from "./components/SchoolManager.vue"; +import MentionsLegales from "./components/MentionsLegales.vue"; +import Login from "./components/Login.vue"; +import Register from "./components/Register.vue"; +require("@/assets/main.scss"); +import "@fortawesome/fontawesome-free/css/all.css"; +import "@fortawesome/fontawesome-free/js/all.js"; Vue.use(VueRouter); Vue.use(Vuex); -Vue.use(VueAxios, axios) +Vue.use(VueAxios, axios); Vue.config.productionTip = false; - - const routes = [ { - name : "home", - path : "/", + name: "home", + path: "/", component: HomeComponent }, { - name : "schoolManager", - path : "/school", + name: "schoolManager", + path: "/school", component: SchoolManager }, { - name : "mentionsLegales", - path : "/legal", + name: "mentionsLegales", + path: "/legal", component: MentionsLegales }, { - name : "register", - path : "/register", + name: "register", + path: "/register", component: Register }, { - name : "login", - path : "/login", + name: "login", + path: "/login", component: Login } -] +]; const store = new Vuex.Store({ state: { @@ -58,19 +56,17 @@ const store = new Vuex.Store({ }, mutations: { login(state, user) { - state.isLoggedIn = true - state.schoolName = user.schoolName + state.isLoggedIn = true; + state.schoolName = user.schoolName; }, logout(state) { - state.isLoggedIn = false - state.schoolName = "school-name" + state.isLoggedIn = false; + state.schoolName = "school-name"; } }, plugins: [createPersistedState()] - -}) - -const router = new VueRouter({mode: 'history', routes: routes}); +}); -new Vue(Vue.util.extend({ router, store }, App)).$mount('#app'); +const router = new VueRouter({ mode: "history", routes: routes }); +new Vue(Vue.util.extend({ router, store }, App)).$mount("#app"); diff --git a/server/db/puzzle.model.js b/server/db/puzzle.model.js new file mode 100644 index 0000000000000000000000000000000000000000..27b9a1297611c8887ed8de9aa5cf9a4ab2abd348 --- /dev/null +++ b/server/db/puzzle.model.js @@ -0,0 +1,12 @@ +const mongoose = require('mongoose'); +const Schema = mongoose.Schema; + +var Puzzle = Schema({ + name: String, + room: String, + validated: Boolean, + score: Number, + maxScore: Number +}) + +module.exports = mongoose.model('Puzzle', Puzzle) \ No newline at end of file diff --git a/server/db/team.model.js b/server/db/team.model.js index 248b4001cba8ea3ddd817e25709f39a45a8a3ed9..01823762a37fdf78ff37ff4843025fb4cefe137f 100644 --- a/server/db/team.model.js +++ b/server/db/team.model.js @@ -1,10 +1,14 @@ const mongoose = require('mongoose'); const Schema = mongoose.Schema; -let Team = new Schema({ +const Puzzle = require('./puzzle.model') + +var Team = new Schema({ name: String, schoolUser: String, - members: [String] + cardId: String, + members: [String], + donePuzzles: [Puzzle.schema] }, { collection: 'teams' }) diff --git a/server/db/team.route.js b/server/db/team.route.js index b3f9fe8d1c3addbec3012a515fbea2d537baf214..3b663bf38f799949811fd3d94909d127cca793fb 100644 --- a/server/db/team.route.js +++ b/server/db/team.route.js @@ -1,6 +1,7 @@ const express = require('express'); let Team = require('./team.model') +let Puzzle = require('./puzzle.model') const router = express.Router(); @@ -33,7 +34,33 @@ router.route('/').get(function (req, res) { router.route('/deleteTeam/:id').delete(function (req, res) { Team.findByIdAndRemove({_id: req.params.id}, function(err){ if(err) res.json(err); - else res.json('Successfully removed'); + else { + res.json('Successfully removed'); + console.log('Removed team'); + } + }); +}); +//TODO allow operation only if logged in +router.route('/updateTeamCard/:id').post(function (req, res) { + console.log("Request for updating card ID :", req.body.cardId); + Team.updateOne({_id: req.params.id}, {cardId: req.body.cardId}, function(err){ + if(err) res.json(err); + else { + res.json('Successfully updated card ID'); + console.log('Updated team card') + } + }); +}); + +router.route('/updateTeamPuzzles/:cardId').post(function (req, res) { + /*var puzzles = [] + for (puzzle in req.body) { + puzzles.push(new Puzzle(puzzle)) + }*/ + console.log("Request for updating puzzles :", req.body); + Team.updateOne({cardId: req.params.cardId /*, schoolUser: req.user.username*/}, {donePuzzles : req.body} , function(err){ + if(err) res.json(err); + else res.json('Successfully updated puzzles'); }); }); diff --git a/server/server.js b/server/server.js index 499cf8d23853c33f5116dc3d7380092837cc457d..ad0afc89864d82a051db8051ec16aa4b199b1d5d 100644 --- a/server/server.js +++ b/server/server.js @@ -25,21 +25,6 @@ app.use(cors({credentials: true, origin: 'http://localhost:8080'})); app.use(bodyParser.urlencoded({extended: true})); app.use(bodyParser.json()); - -//configuration passport -/*passport.use(new LocalStrategy( - User.findeOne({username: username}, function (err, user) { - if (err) {return done(err);} - if (!user) { - return done(null, false, { message: 'Incorrect username.' }) - } - if (!user.validPassword(password)) { - return done(null, false, { message: 'Incorrect password.' }); - } - return done(null, user); - }) -));*/ - const expressSession = require('express-session')({ secret: 'secret', resave: false,