{"id":25,"date":"2015-12-24T17:15:56","date_gmt":"2015-12-24T16:15:56","guid":{"rendered":"http:\/\/beta.grandcercle.org\/?page_id=25"},"modified":"2026-07-12T15:01:17","modified_gmt":"2026-07-12T13:01:17","slug":"clubs-assos","status":"publish","type":"page","link":"https:\/\/www.grandcercle.org\/en\/clubs-assos\/","title":{"rendered":"Clubs &amp; Associations"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"25\" class=\"elementor elementor-25\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-8fa135c elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"8fa135c\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-85b4932\" data-id=\"85b4932\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap\">\n\t\t\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-0205159 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"0205159\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-b8ff4c4\" data-id=\"b8ff4c4\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-3a32486 elementor-widget elementor-widget-html\" data-id=\"3a32486\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<section class=\"gc-section\">\r\n  <p>La vie associative \u00e0 Grenoble INP \u2013 UGA est particuli\u00e8rement d\u00e9velopp\u00e9e : une trentaine de clubs et associations, communs \u00e0 l'INP ou propres \u00e0 chaque \u00e9cole, port\u00e9s par des \u00e9tudiants engag\u00e9s.<\/p>\r\n  <p>Adh\u00e9rent, responsable ou simplement curieux : il y a sans doute une association faite pour toi.<\/p>\r\n<p style=\"text-align:center;\"><b>Envie de cr\u00e9er ton club ou besoin d'un accompagnement ? <a href=\"mailto:contact@grandcercle.org\/\">\u00c9cris nous<\/a>.<\/b><\/p>\r\n<\/section>\r\n\r\n  \t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-a93ed2f elementor-widget elementor-widget-html\" data-id=\"a93ed2f\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"gc-directory-toolbar\">\r\n  <input type=\"search\" id=\"gc-asso-search\" class=\"gc-search-input\" placeholder=\"Rechercher une association\u2026\" \/>\r\n<\/div>\r\n<div class=\"gc-directory-filters\" id=\"gc-school-filters\">\r\n  <button type=\"button\" id=\"gc-clear-filters\" class=\"gc-clear-btn\" style=\"display:none;\" aria-label=\"Effacer le filtre\">\u2715<\/button>\r\n<\/div>\r\n\r\n<div id=\"gc-asso-state\" class=\"gc-directory-state\">Chargement de l'annuaire\u2026<\/div>\r\n<div id=\"gc-asso-grid\" class=\"gc-card-grid\" style=\"display:none;\"><\/div>\r\n\r\n<div class=\"gc-sheet-backdrop\" id=\"gc-sheet-backdrop\"><\/div>\r\n<div class=\"gc-sheet\" id=\"gc-sheet\" role=\"dialog\" aria-modal=\"true\">\r\n  <div class=\"gc-sheet-topbar\">\r\n    <div class=\"gc-sheet-topbar-title\" id=\"gc-sheet-title\"><\/div>\r\n    <button class=\"gc-sheet-close\" id=\"gc-sheet-close\" aria-label=\"Fermer\">\u2715<\/button>\r\n  <\/div>\r\n  <div class=\"gc-sheet-body\" id=\"gc-sheet-body\"><\/div>\r\n<\/div>\r\n\r\n<script type=\"module\">\r\n  import { initializeApp } from \"https:\/\/www.gstatic.com\/firebasejs\/10.14.1\/firebase-app.js\";\r\n  import { getFirestore, collection, query, where, getDocs }\r\n    from \"https:\/\/www.gstatic.com\/firebasejs\/10.14.1\/firebase-firestore.js\";\r\n\r\n  const firebaseConfig = {\r\n    apiKey: \"AIzaSyBvrGB5uRgTZ2stBLsq_RAHbJ0f5Pdj2GQ\",\r\n    authDomain: \"gc-app-v1-pn9e05.firebaseapp.com\",\r\n    projectId: \"gc-app-v1-pn9e05\",\r\n    storageBucket: \"gc-app-v1-pn9e05.firebasestorage.app\",\r\n    messagingSenderId: \"591252529310\",\r\n    appId: \"1:591252529310:web:06f69c621f1c8d05ea5b8f\"\r\n  };\r\n  const app = initializeApp(firebaseConfig);\r\n  const db = getFirestore(app);\r\n\r\n  \/\/ GCDirectory : biblioth\u00e8que partag\u00e9e par les 3 annuaires (escapeHtml, normalize, slugify,\r\n  \/\/ buildSocialLinks, verrouillage du scroll, m\u00e9canique de fiche d\u00e9tail) \u2014 d\u00e9finie une seule fois dans\r\n  \/\/ le snippet global \"Header & footer\" (Phase 2). Si ce message appara\u00eet, recopie ce snippet en entier.\r\n  if (!window.GCDirectory) {\r\n    console.error('GC: window.GCDirectory absent \u2014 recopie le snippet global \"Header & footer\" (Phase 2), il a \u00e9t\u00e9 mis \u00e0 jour.');\r\n  }\r\n  const { escapeHtml, normalize, slugify, buildSocialLinks, initEntitySheetNav } = window.GCDirectory;\r\n\r\n  const SUPER_ENTITY_ID = 'vZyMJ9EqdfUfrraVeB4n';\r\n  const INP_SCHOOL_ID = 'YywQ0UGJtawRIx03tenk';\r\n  \/\/ Nom du param\u00e8tre URL du filtre \u00e9cole \u2014 change-le ici si besoin, tout le reste s'adapte.\r\n  const SCHOOL_PARAM = 'ecole';\r\n\r\n  let allEntities = [];   \/\/ { id, data, slug }\r\n  let schoolsById = {};   \/\/ id -> { shortName, color }\r\n  let selectedSchoolIds = new Set();\r\n  let searchText = '';\r\n\r\n  function renderSheetContent(item) {\r\n    const data = item.data;\r\n    const images = data.imagesEntity || [];\r\n    const banner = images[0] || data.coverUrl || '';\r\n    const avatar = data.imageUrl || '';\r\n    const extraImages = images.slice(1);\r\n    const school = data.ecole && schoolsById[data.ecole.id];\r\n\r\n    document.getElementById('gc-sheet-title').textContent = data.name || '';\r\n\r\n    let bodyHtml = '';\r\n    if (banner) {\r\n      bodyHtml += '<img decoding=\"async\" class=\"gc-sheet-banner\" src=\"' + escapeHtml(banner) + '\" alt=\"\" data-lightbox-src=\"' + escapeHtml(banner) + '\" \/>';\r\n    }\r\n\r\n    bodyHtml += '<div class=\"gc-sheet-pad\">';\r\n    bodyHtml +=\r\n      '<div class=\"gc-sheet-hero-row\">' +\r\n        (avatar ? '<img decoding=\"async\" class=\"gc-sheet-avatar\" src=\"' + escapeHtml(avatar) + '\" alt=\"\" data-lightbox-src=\"' + escapeHtml(avatar) + '\" \/>' : '<div class=\"gc-sheet-avatar\"><\/div>') +\r\n        '<div class=\"gc-sheet-hero-text\">' +\r\n          (data.description ? '<p>' + escapeHtml(data.description) + '<\/p>' : '') +\r\n          (school ? '<div class=\"gc-chip-row\"><span class=\"gc-chip\" style=\"background:' + escapeHtml(school.color || '#57636C') + '\">' + escapeHtml(school.shortName) + '<\/span><\/div>' : '') +\r\n        '<\/div>' +\r\n      '<\/div>' +\r\n      buildSocialLinks(data);\r\n\r\n    if (extraImages.length > 0) {\r\n      bodyHtml += '<div class=\"gc-sheet-gallery\">' + extraImages.map(function (src) {\r\n        return '<img decoding=\"async\" src=\"' + escapeHtml(src) + '\" alt=\"\" loading=\"lazy\" data-lightbox-src=\"' + escapeHtml(src) + '\" \/>';\r\n      }).join('') + '<\/div>';\r\n    }\r\n\r\n    \/\/ htmlDetails est du HTML de confiance saisi par les gestionnaires d'entit\u00e9 dans l'appli \u2014 inject\u00e9 tel quel, non \u00e9chapp\u00e9, comme le fait l'appli elle-m\u00eame.\r\n    if (data.htmlDetails) {\r\n      bodyHtml += '<h4 style=\"margin-top:22px;font-family:\\'Roboto Condensed\\',sans-serif;color:var(--gc-primary);\">Pr\u00e9sentation<\/h4>' +\r\n        '<div class=\"gc-sheet-details\" id=\"gc-sheet-details\">' + data.htmlDetails + '<\/div>';\r\n    }\r\n\r\n    bodyHtml += '<a href=\"https:\/\/app.grandcercle.org\/entity\/' + escapeHtml(item.id) + '\" class=\"gc-btn gc-btn-primary gc-mobile-only gc-sheet-app-cta\" style=\"margin-top:16px;\">Voir dans l\u2019application<\/a>';\r\n    bodyHtml += '<\/div>';\r\n\r\n    document.getElementById('gc-sheet-body').innerHTML = bodyHtml;\r\n\r\n    const detailsEl = document.getElementById('gc-sheet-details');\r\n    if (detailsEl && window.gcMakeExpandable) window.gcMakeExpandable(detailsEl, '160px');\r\n  }\r\n\r\n  \/\/ C\u00e2ble toute la m\u00e9canique de fiche d\u00e9tail (ouverture\/fermeture, historique navigateur, lightbox,\r\n  \/\/ verrouillage du scroll) via GCDirectory \u2014 voir Phase 2 pour le d\u00e9tail de ce qui est mutualis\u00e9.\r\n  const { openEntity } = initEntitySheetNav({\r\n    basePath: '\/clubs-assos\/',\r\n    findItem: function (slug) { return allEntities.find(function (e) { return e.slug === slug; }); },\r\n    render: renderSheetContent\r\n  });\r\n\r\n  \/* ---------- Recherche + filtre \u00e9coles + tri Grand Cercle en premier ---------- *\/\r\n  function computeVisible() {\r\n    return allEntities\r\n      .filter(function (e) {\r\n        const q = normalize(searchText);\r\n        const nameMatch = q === '' ||\r\n          normalize(e.data.name).indexOf(q) !== -1 ||\r\n          normalize(e.data.shortName).indexOf(q) !== -1;\r\n        const schoolMatch = selectedSchoolIds.size === 0 || (e.data.ecole && selectedSchoolIds.has(e.data.ecole.id));\r\n        return nameMatch && schoolMatch;\r\n      })\r\n      .sort(function (a, b) {\r\n        if (a.id === SUPER_ENTITY_ID) return -1;\r\n        if (b.id === SUPER_ENTITY_ID) return 1;\r\n        return a.data.name.localeCompare(b.data.name, 'fr');\r\n      });\r\n  }\r\n\r\n  function renderGrid() {\r\n    const grid = document.getElementById('gc-asso-grid');\r\n    const state = document.getElementById('gc-asso-state');\r\n    const visible = computeVisible();\r\n    grid.innerHTML = '';\r\n    if (visible.length === 0) {\r\n      grid.style.display = 'none';\r\n      state.style.display = 'block';\r\n      state.textContent = 'Aucune association trouv\u00e9e.';\r\n      return;\r\n    }\r\n    state.style.display = 'none';\r\n    visible.forEach(function (item) {\r\n      const data = item.data;\r\n      const school = data.ecole && schoolsById[data.ecole.id];\r\n      const img = data.imageUrl || '';\r\n      const card = document.createElement('button');\r\n      card.type = 'button';\r\n      card.className = 'gc-card gc-dir-card';\r\n      card.innerHTML =\r\n        '<div class=\"gc-dir-card-row\">' +\r\n          (img ? '<img decoding=\"async\" class=\"gc-dir-avatar\" src=\"' + img + '\" alt=\"\" loading=\"lazy\" \/>' : '<div class=\"gc-dir-avatar\"><\/div>') +\r\n          '<div class=\"gc-dir-card-head\">' +\r\n            '<p class=\"gc-card-title\">' + escapeHtml(data.name) + '<\/p>' +\r\n            (school ? '<span class=\"gc-chip\" style=\"background:' + escapeHtml(school.color || '#57636C') + '\">' + escapeHtml(school.shortName) + '<\/span>' : '') +\r\n          '<\/div>' +\r\n        '<\/div>' +\r\n        '<p class=\"gc-card-desc\">' + escapeHtml(data.description || '') + '<\/p>';\r\n      card.addEventListener('click', function () { openEntity(item, true); });\r\n      grid.appendChild(card);\r\n    });\r\n    grid.style.display = 'grid';\r\n  }\r\n\r\n  document.getElementById('gc-asso-search').addEventListener('input', function (e) {\r\n    searchText = e.target.value;\r\n    renderGrid();\r\n  });\r\n\r\n  \/\/ Met \u00e0 jour ?ecole=... dans l'URL sans recharger la page \u2014 refl\u00e8te l'\u00e9tat courant du filtre.\r\n  \/\/ Avec plusieurs \u00e9coles s\u00e9lectionn\u00e9es, seule la premi\u00e8re est refl\u00e9t\u00e9e dans l'URL (cas rare, le clic reste la source de v\u00e9rit\u00e9).\r\n  function syncSchoolParam() {\r\n    const params = new URLSearchParams(location.search);\r\n    if (selectedSchoolIds.size === 0) {\r\n      params.delete(SCHOOL_PARAM);\r\n    } else {\r\n      const firstId = selectedSchoolIds.values().next().value;\r\n      const shortName = firstId === INP_SCHOOL_ID ? 'INP' : (schoolsById[firstId] && schoolsById[firstId].shortName) || '';\r\n      if (shortName) params.set(SCHOOL_PARAM, shortName); else params.delete(SCHOOL_PARAM);\r\n    }\r\n    const newUrl = location.pathname + (params.toString() ? '?' + params.toString() : '') + location.hash;\r\n    history.replaceState(history.state, '', newUrl);\r\n  }\r\n\r\n  function renderSchoolFilters(schoolsList) {\r\n    const wrap = document.getElementById('gc-school-filters');\r\n    const clearBtn = document.getElementById('gc-clear-filters');\r\n    const chipButtons = [];\r\n\r\n    function updateClearBtnVisibility() {\r\n      clearBtn.style.display = selectedSchoolIds.size > 0 ? 'flex' : 'none';\r\n    }\r\n    clearBtn.addEventListener('click', function () {\r\n      selectedSchoolIds.clear();\r\n      chipButtons.forEach(function (b) { b.classList.remove('active'); });\r\n      updateClearBtnVisibility();\r\n      syncSchoolParam();\r\n      renderGrid();\r\n    });\r\n\r\n    const inp = schoolsList.find(function (s) { return s.id === INP_SCHOOL_ID; });\r\n    const others = schoolsList\r\n      .filter(function (s) { return s.id !== INP_SCHOOL_ID; })\r\n      .sort(function (a, b) { return a.shortName.localeCompare(b.shortName, 'fr'); });\r\n    const orderedSchools = inp ? [inp].concat(others) : others;\r\n\r\n    \/\/ Pr\u00e9s\u00e9lection depuis l'URL (?ecole=INP ou ?ecole=Ense3, etc.) \u2014 \"INP\" matche sur l'ID wildcard, le reste sur shortName (insensible \u00e0 la casse\/accents).\r\n    const initialParam = new URLSearchParams(location.search).get(SCHOOL_PARAM);\r\n    if (initialParam) {\r\n      const normalizedParam = normalize(initialParam);\r\n      const match = orderedSchools.find(function (s) {\r\n        return (normalizedParam === 'inp' && s.id === INP_SCHOOL_ID) || normalize(s.shortName) === normalizedParam;\r\n      });\r\n      if (match) selectedSchoolIds.add(match.id);\r\n    }\r\n\r\n    orderedSchools.forEach(function (s) {\r\n      const btn = document.createElement('button');\r\n      btn.type = 'button';\r\n      btn.textContent = s.shortName;\r\n      if (selectedSchoolIds.has(s.id)) btn.classList.add('active');\r\n      btn.addEventListener('click', function () {\r\n        if (selectedSchoolIds.has(s.id)) { selectedSchoolIds.delete(s.id); btn.classList.remove('active'); }\r\n        else { selectedSchoolIds.add(s.id); btn.classList.add('active'); }\r\n        updateClearBtnVisibility();\r\n        syncSchoolParam();\r\n        renderGrid();\r\n      });\r\n      chipButtons.push(btn);\r\n      wrap.appendChild(btn);\r\n    });\r\n    updateClearBtnVisibility();\r\n    \/\/ Pas besoin de renderGrid() ici : le chargement des Entities (juste en dessous) l'appelle\r\n    \/\/ syst\u00e9matiquement une fois pr\u00eat, et lira selectedSchoolIds d\u00e9j\u00e0 pr\u00e9selectionn\u00e9 ci-dessus.\r\n  }\r\n\r\n  \/* ---------- Chargement des donn\u00e9es ---------- *\/\r\n  getDocs(collection(db, 'Schools')).then(function (snap) {\r\n    const schoolsList = [];\r\n    snap.forEach(function (docSnap) {\r\n      const data = docSnap.data();\r\n      schoolsById[docSnap.id] = { shortName: data.shortName, color: data.color };\r\n      if (data.selectable || docSnap.id === INP_SCHOOL_ID) {\r\n        schoolsList.push({ id: docSnap.id, shortName: data.shortName });\r\n      }\r\n    });\r\n    renderSchoolFilters(schoolsList);\r\n  }).catch(function (err) { console.error('GC \u00e9coles:', err); });\r\n\r\n  const q = query(collection(db, 'Entities'), where('active', '==', true), where('type', '==', 0));\r\n\r\n  getDocs(q).then(function (snap) {\r\n    document.getElementById('gc-asso-state').style.display = 'none';\r\n    if (snap.empty) {\r\n      document.getElementById('gc-asso-state').style.display = 'block';\r\n      document.getElementById('gc-asso-state').textContent = 'Aucune association trouv\u00e9e.';\r\n      return;\r\n    }\r\n    snap.forEach(function (docSnap) {\r\n      const data = docSnap.data();\r\n      allEntities.push({ id: docSnap.id, data: data, slug: slugify(data.shortName || data.name) });\r\n    });\r\n    renderGrid();\r\n\r\n    const initialSlug = new URLSearchParams(location.search).get('entity');\r\n    const initialItem = initialSlug && allEntities.find(function (e) { return e.slug === initialSlug; });\r\n    if (initialItem) openEntity(initialItem, false);\r\n  }).catch(function (err) {\r\n    const state = document.getElementById('gc-asso-state');\r\n    state.style.display = 'block';\r\n    state.textContent = 'Impossible de charger l\u2019annuaire pour le moment.';\r\n    console.error('GC annuaire clubs:', err);\r\n  });\r\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Des dizaines de clubs et associations \u00e0 Grenoble INP \u2013 UGA : sport, culture, engagement.<br \/>\nTrouve celui qui te correspond.<\/p>","protected":false},"author":100,"featured_media":5691,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_header_footer","meta":{"inline_featured_image":false,"footnotes":""},"class_list":["post-25","page","type-page","status-publish","has-post-thumbnail","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.0 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Clubs &amp; Associations<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.grandcercle.org\/en\/clubs-assos\/\" \/>\n<meta property=\"og:locale\" content=\"en_GB\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Clubs &amp; Associations\" \/>\n<meta property=\"og:description\" content=\"Des dizaines de clubs et associations \u00e0 Grenoble INP \u2013 UGA : sport, culture, engagement. Trouve celui qui te correspond.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.grandcercle.org\/en\/clubs-assos\/\" \/>\n<meta property=\"og:site_name\" content=\"Grand Cercle\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/grandcercle\" \/>\n<meta property=\"article:modified_time\" content=\"2026-07-12T13:01:17+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.grandcercle.org\/wp-content\/uploads\/2024\/03\/photo-MINP-street-view-2019.png\" \/>\n\t<meta property=\"og:image:width\" content=\"897\" \/>\n\t<meta property=\"og:image:height\" content=\"712\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"29 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.grandcercle.org\\\/clubs-assos\\\/\",\"url\":\"https:\\\/\\\/www.grandcercle.org\\\/clubs-assos\\\/\",\"name\":\"Clubs & Associations\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.grandcercle.org\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.grandcercle.org\\\/clubs-assos\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.grandcercle.org\\\/clubs-assos\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.grandcercle.org\\\/wp-content\\\/uploads\\\/2024\\\/03\\\/photo-MINP-street-view-2019.png\",\"datePublished\":\"2015-12-24T16:15:56+00:00\",\"dateModified\":\"2026-07-12T13:01:17+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.grandcercle.org\\\/clubs-assos\\\/#breadcrumb\"},\"inLanguage\":\"en-GB\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.grandcercle.org\\\/clubs-assos\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\\\/\\\/www.grandcercle.org\\\/clubs-assos\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.grandcercle.org\\\/wp-content\\\/uploads\\\/2024\\\/03\\\/photo-MINP-street-view-2019.png\",\"contentUrl\":\"https:\\\/\\\/www.grandcercle.org\\\/wp-content\\\/uploads\\\/2024\\\/03\\\/photo-MINP-street-view-2019.png\",\"width\":897,\"height\":712},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.grandcercle.org\\\/clubs-assos\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.grandcercle.org\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Clubs &#038; Associations\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.grandcercle.org\\\/#website\",\"url\":\"https:\\\/\\\/www.grandcercle.org\\\/\",\"name\":\"Grand Cercle\",\"description\":\"Cercle des \u00e9l\u00e8ves de Grenoble INP - UGA\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.grandcercle.org\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.grandcercle.org\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-GB\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.grandcercle.org\\\/#organization\",\"name\":\"Grand Cercle\",\"alternateName\":\"GC\",\"url\":\"https:\\\/\\\/www.grandcercle.org\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\\\/\\\/www.grandcercle.org\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.grandcercle.org\\\/wp-content\\\/uploads\\\/2024\\\/10\\\/cropped-Logo-GC-centree.png\",\"contentUrl\":\"https:\\\/\\\/www.grandcercle.org\\\/wp-content\\\/uploads\\\/2024\\\/10\\\/cropped-Logo-GC-centree.png\",\"width\":512,\"height\":512,\"caption\":\"Grand Cercle\"},\"image\":{\"@id\":\"https:\\\/\\\/www.grandcercle.org\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/grandcercle\",\"https:\\\/\\\/www.instagram.com\\\/grand_cercle\\\/\",\"https:\\\/\\\/www.linkedin.com\\\/company\\\/grand-cercle-grenoble-inp\\\/\",\"https:\\\/\\\/www.youtube.com\\\/user\\\/LeGrandCercle\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Clubs & Associations","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.grandcercle.org\/en\/clubs-assos\/","og_locale":"en_GB","og_type":"article","og_title":"Clubs & Associations","og_description":"Des dizaines de clubs et associations \u00e0 Grenoble INP \u2013 UGA : sport, culture, engagement. Trouve celui qui te correspond.","og_url":"https:\/\/www.grandcercle.org\/en\/clubs-assos\/","og_site_name":"Grand Cercle","article_publisher":"https:\/\/www.facebook.com\/grandcercle","article_modified_time":"2026-07-12T13:01:17+00:00","og_image":[{"width":897,"height":712,"url":"https:\/\/www.grandcercle.org\/wp-content\/uploads\/2024\/03\/photo-MINP-street-view-2019.png","type":"image\/png"}],"twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"29 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.grandcercle.org\/clubs-assos\/","url":"https:\/\/www.grandcercle.org\/clubs-assos\/","name":"Clubs & Associations","isPartOf":{"@id":"https:\/\/www.grandcercle.org\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.grandcercle.org\/clubs-assos\/#primaryimage"},"image":{"@id":"https:\/\/www.grandcercle.org\/clubs-assos\/#primaryimage"},"thumbnailUrl":"https:\/\/www.grandcercle.org\/wp-content\/uploads\/2024\/03\/photo-MINP-street-view-2019.png","datePublished":"2015-12-24T16:15:56+00:00","dateModified":"2026-07-12T13:01:17+00:00","breadcrumb":{"@id":"https:\/\/www.grandcercle.org\/clubs-assos\/#breadcrumb"},"inLanguage":"en-GB","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.grandcercle.org\/clubs-assos\/"]}]},{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/www.grandcercle.org\/clubs-assos\/#primaryimage","url":"https:\/\/www.grandcercle.org\/wp-content\/uploads\/2024\/03\/photo-MINP-street-view-2019.png","contentUrl":"https:\/\/www.grandcercle.org\/wp-content\/uploads\/2024\/03\/photo-MINP-street-view-2019.png","width":897,"height":712},{"@type":"BreadcrumbList","@id":"https:\/\/www.grandcercle.org\/clubs-assos\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.grandcercle.org\/"},{"@type":"ListItem","position":2,"name":"Clubs &#038; Associations"}]},{"@type":"WebSite","@id":"https:\/\/www.grandcercle.org\/#website","url":"https:\/\/www.grandcercle.org\/","name":"Grand Circle","description":"Grenoble INP \u2013 UGA Student Union","publisher":{"@id":"https:\/\/www.grandcercle.org\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.grandcercle.org\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-GB"},{"@type":"Organization","@id":"https:\/\/www.grandcercle.org\/#organization","name":"Grand Circle","alternateName":"GC","url":"https:\/\/www.grandcercle.org\/","logo":{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/www.grandcercle.org\/#\/schema\/logo\/image\/","url":"https:\/\/www.grandcercle.org\/wp-content\/uploads\/2024\/10\/cropped-Logo-GC-centree.png","contentUrl":"https:\/\/www.grandcercle.org\/wp-content\/uploads\/2024\/10\/cropped-Logo-GC-centree.png","width":512,"height":512,"caption":"Grand Cercle"},"image":{"@id":"https:\/\/www.grandcercle.org\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/grandcercle","https:\/\/www.instagram.com\/grand_cercle\/","https:\/\/www.linkedin.com\/company\/grand-cercle-grenoble-inp\/","https:\/\/www.youtube.com\/user\/LeGrandCercle"]}]}},"_links":{"self":[{"href":"https:\/\/www.grandcercle.org\/en\/wp-json\/wp\/v2\/pages\/25","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.grandcercle.org\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.grandcercle.org\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.grandcercle.org\/en\/wp-json\/wp\/v2\/users\/100"}],"replies":[{"embeddable":true,"href":"https:\/\/www.grandcercle.org\/en\/wp-json\/wp\/v2\/comments?post=25"}],"version-history":[{"count":60,"href":"https:\/\/www.grandcercle.org\/en\/wp-json\/wp\/v2\/pages\/25\/revisions"}],"predecessor-version":[{"id":8177,"href":"https:\/\/www.grandcercle.org\/en\/wp-json\/wp\/v2\/pages\/25\/revisions\/8177"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.grandcercle.org\/en\/wp-json\/wp\/v2\/media\/5691"}],"wp:attachment":[{"href":"https:\/\/www.grandcercle.org\/en\/wp-json\/wp\/v2\/media?parent=25"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}