-
peter_rabbit authoredpeter_rabbit authored
education.js 28.14 KiB
(function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c="function"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error("Cannot find module '"+i+"'");throw a.code="MODULE_NOT_FOUND",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u="function"==typeof require&&require,i=0;i<t.length;i++)o(t[i]);return o}return r})()({1:[function(require,module,exports){
const ENV = "dev";
let server_url;
switch (ENV) {
case "dev":
server_url = "http://localhost:9000";
break;
case "prod":
server_url = "http://your_production_server_url:port";
}
module.exports = { server_url };
},{}],2:[function(require,module,exports){
const { server_url } = require("./config");
module.exports = {
images_url: `${server_url}/assets/images`,
};
},{"./config":1}],3:[function(require,module,exports){
"use strict";
module.exports = {
setRenderCycleRoot(renderCycleRoot) {
this.renderCycleRoot = renderCycleRoot;
},
objectToHtml: function objectToHtml(obj) {
const { tag } = obj;
const node = document.createElement(tag);
const excludeKeys = ["tag", "contents", "style_rules", "state"];
Object.keys(obj)
.filter(attr => !excludeKeys.includes(attr))
.forEach(attr => {
if (attr === "class") {
node.classList.add(...obj[attr].split(" ").filter(s => s !== ""));
} else {
node[attr] = obj[attr];
}
});
if (obj.contents && typeof obj.contents === "string") {
node.innerHTML = obj.contents;
} else {
obj.contents &&
obj.contents.length > 0 &&
obj.contents.forEach(el => {
switch (typeof el) {
case "string":
node.innerHTML = el;
break;
case "object":
node.appendChild(objectToHtml(el));
break;
}
});
}
if (obj.style_rules) {
Object.keys(obj.style_rules).forEach(rule => {
node.style[rule] = obj.style_rules[rule];
});
}
return node;
},
renderCycle: function () {
this.subRender(this.renderCycleRoot.render(), document.getElementsByTagName("main")[0], {
mode: "replace",
});
},
subRender(object, htmlNode, options = { mode: "append" }) {
const insert = this.objectToHtml(object);
switch (options.mode) {
case "append":
htmlNode.appendChild(insert);
break;
case "override":
htmlNode.innerHTML = "";
htmlNode.appendChild(insert);
break;
case "insert-before":
htmlNode.insertBefore(insert, htmlNode.childNodes[options.insertIndex]);
break;
case "adjacent":
/**
* options.insertLocation must be one of:
*
* afterbegin
* afterend
* beforebegin
* beforeend
*/
htmlNode.insertAdjacentHTML(options.insertLocation, insert);
break;
case "replace":
htmlNode.parentNode.replaceChild(insert, htmlNode);
break;
case "remove":
htmlNode.remove();
break;
}
},
};
},{}],4:[function(require,module,exports){
"use strict";
const { images_url } = require("../../../../constants");
const GAMEDEV_ASPECTS = [
{
title: "Dessin et création 2D",
image: `${images_url}/glitch_meta_screen1.png`,
comment: "",
details: [
"Créer des décors et des personnages",
"Dessiner sur ordinateur, faire du pixel art",
"Créer des animations 2D",
],
},
{
title: "Musique et effets sonores",
image: `${images_url}/glitch_meta_screen2.png`,
comment: "",
details: [
"Utiliser des logiciels de son et des synthétiseurs",
"Composer une musique",
"Faire une prise de son",
"Mixer un enregistrement",
],
},
{
title: "Développer un univers",
image: `${images_url}/glitch_meta_screen3.png`,
comment: "",
details: [
"Écrire une histoire, construire une narration",
"Imaginer des mondes et des personnages",
],
},
{
title: "Concevoir le jeu",
image: `${images_url}/glitch_meta_screen4.png`,
comment: "",
details: [
"Comprendres les différents éléments qui composent un jeu",
"Développer les mécanismes de gameplay",
],
},
{
title: "Programmation informatique",
image: `${images_url}/glitch_meta_screen5.png`,
comment: "",
details: [
"Apprendre pas à pas à coder avec différents langages de programmation",
"Découvrir les bases du web en créant des mini-jeux en lignes",
],
},
{
title: "Mathématiques et physique",
image: `${images_url}/glitch_meta_screen6.png`,
comment:
"<i>Le jeu vidéo et l'informatique en général, c'est l'occasion de découvrir plein de sujets en maths et en physique tout en s'amusant !</i>",
details: [
"Algorithmie, logique, calcul, ensembles, géométrie, trigonométrie, algèbre linéaire ,vecteurs, repères en 2 dimensions ...",
],
},
{
title: "Travail en équipe",
image: `${images_url}/glitch_meta_screen1.png`,
comment:
"<i>Faire son jeu tout seul c'est bien mais ça peut être long !<br>Créer des jeux c'est aussi l'occasion de se mettre à plusieurs pour tirer le meilleur parti des différents talents de chacun.</i>",
details: [],
},
{
title: "Logiciels libres, systèmes Linux",
image: `${images_url}/glitch_meta_screen2.png`,
comment:
"<i>Nous utilisons essentiellement des logiciels libres sur Linux.<br>C'est donc une bonne occasion de découvrir et démystifier tout ça en douceur !</i>",
details: [],
},
];
class GameStudioClub {
render() {
return {
tag: "section",
contents: [
{
tag: "div",
class: "title-banner",
contents: [{ tag: "h2", contents: "Game Studio Club" }],
},
{
tag: "div",
class: "section-contents",
contents: [
{
tag: "div",
class: "teaser",
contents: [
{ tag: "h3", contents: "Apprendre à créer un jeu vidéo de A à Z" },
{
tag: "strong",
contents:
"La création d'un jeu vidéo c'est l'occasion d'aborder plein de choses différentes !",
},
],
},
{
tag: "div",
class: "practical-infos",
contents: [
{
tag: "div",
class: "info-item",
contents: [
{ tag: "strong", contents: "Ça se passe où ?" },
{
tag: "span",
contents:
"Dans nos locaux,<br/><i>32 rue Simon Vialet, passage du Cheminou<br/>07240 Vernoux en Vivarais</i>",
},
],
},
{
tag: "div",
class: "info-item",
contents: [
{ tag: "strong", contents: "Pour qui ?" },
{
tag: "span",
contents: " Tout le monde à partir de 12 ans.",
},
],
},
{
tag: "div",
class: "info-item",
contents: [
{
tag: "strong",
contents: "Contact",
},
{
tag: "span",
contents: "04 75 78 08 72",
},
{
tag: "a",
href: "mailto:kuadrado-software@tutanota.com",
contents: "kuadrado-software@tutanota.com",
},
],
},
],
},
{
tag: "ul",
class: "learning-themes",
contents: GAMEDEV_ASPECTS.map(li => {
return {
tag: "li",
class: "learning-theme",
contents: [
{
tag: "div",
class: "img-wrapper",
contents: [{ tag: "img", src: li.image }],
},
{
tag: "div",
class: "right",
contents: [
{ tag: "strong", contents: li.title },
{
tag: "div",
class: "comment",
contents: li.comment,
},
{
tag: "ul",
contents: li.details.map(d => {
return {
tag: "li",
contents: d,
};
}),
},
],
},
],
};
}),
},
{
tag: "p",
contents: `Une de ces choses vous intéresse mais pas spécialement le jeu vidéo ?
<br>Pas de problème ! On peut se concentrer par exemple uniquement sur de la création 2D, ou de la création sonore, ou même uniquement des maths !
<br>L'orientation se fait en fonction des préférences de chacun.`,
},
{
tag: "div",
class: "infos-inscriptions",
contents: [
{
tag: "div",
class: "groups",
contents: [
{
tag: "h3",
contents: "Groupes",
},
{
tag: "table",
contents: [
{
tag: "tr",
contents: [
{ tag: "td", contents: "Mardi" },
{ tag: "td", contents: "16h - 19h" },
],
},
{
tag: "tr",
contents: [
{ tag: "td", contents: "Mercredi" },
{ tag: "td", contents: "14h - 17h" },
],
},
{
tag: "tr",
contents: [
{ tag: "td", contents: "Jeudi" },
{ tag: "td", contents: "16h - 19h" },
],
},
],
},
],
},
{
tag: "div",
class: "pricing",
contents: [
{
tag: "h3",
contents: "Inscription, fonctionnement et tarifs",
},
{
tag: "p",
contents: `Vous pouvez vous inscrire dans un des groupes pour un mois ou un trimestre.
<br>Les groupes sont de 5 personnes maximum.
<br>Le matériel informatique est fourni sur place, mais vous pouvez amener votre propre ordinateur portable si vous le souhaitez.
`,
},
{
tag: "table",
contents: [
{
tag: "tr",
contents: [
{
tag: "td",
contents: "Abonnement 1 mois",
},
{ tag: "td", contents: "(4 séances)" },
{ tag: "td", contents: "70€" },
],
},
{
tag: "tr",
contents: [
{
tag: "td",
contents: "Abonnement 1 trimestre",
},
{ tag: "td", contents: "(12 séances)" },
{ tag: "td", contents: "190€" },
],
},
],
},
],
},
],
},
],
},
],
};
}
}
module.exports = GameStudioClub;
},{"../../../../constants":2}],5:[function(require,module,exports){
"use strict";
const GameStudioClub = require("./components/game-studio-club");
class EducationPage {
constructor(args) {
Object.assign(this, args);
}
render() {
return {
tag: "div",
id: "education-page",
contents: [
{ tag: "h1", contents: "Pédagogie" },
{tag: "p", class: "edu-philo", contents: `
Nous pensons que la démystification de la technologie et son appropriation par les utilisateurs passent
avant tout par la pédagogie et le partage de connaissances. Nous proposons blablabla`,},
new GameStudioClub().render(),
{ tag: "h2", contents: "Ateliers de vulgarisation" },
{
tag: "div",
contents:
"Nous proposons des animations d'une journée de vulgarisation autour de l'informatique sur les thèmes suivants :",
},
{
tag: "ul",
contents: [
{
tag: "li",
contents: [
{
tag: "strong",
contents: "Qu'est-ce qui se passe dans mon ordinateur ?",
},
{
tag: "ul",
contents: [
{
tag: "li",
contents:
"Répondre à des questions simples sur l'informatique de tous les jours",
},
{
tag: "li",
contents: "L'organisation des fichiers",
},
{
tag: "li",
contents: "Le navigateur web",
},
{
tag: "li",
contents: "Les logiciels usuels",
},
],
},
],
},
{
tag: "li",
contents: [
{
tag: "strong",
contents: "GNU/Linux, le monde du libre",
},
{
tag: "ul",
contents: [
{
tag: "li",
contents:
"Installer Linux, démystifier et faire tomber les barrières.",
},
{
tag: "li",
contents:
"Qu'est-ce qu'un logiciel libre ? Quels sont les enjeux ?",
},
],
},
],
},
{
tag: "li",
contents:
"Comment fonctionne le réseau internet et ses services (Sites, applications, boites mail, clouds...",
contents: [
{
tag: "strong",
contents: "Comment fonctionne le réseau internet ?",
},
{
tag: "ul",
contents: [
{
tag: "li",
contents: "De quoi est fait le réseau internet ?",
},
{
tag: "li",
contents:
"Comment fonctionnent les différents services que nous utilisons ? (Sites, applications, boites mail, etc...)",
},
{
tag: "li",
contents: "Qu'est-ce qu'un cloud ?",
},
],
},
],
},
{
tag: "li",
contents: [
{
tag: "strong",
contents: "Le langages des machines",
},
{
tag: "ul",
contents: [
{
tag: "li",
contents: "Démystifier la programmation informatique",
},
{
tag: "li",
contents: "Qu'est-ce qu'un langage de programmation",
},
{
tag: "li",
contents: "À quoi ça sert ?",
},
{
tag: "li",
contents: "Les métiers du développement informatique",
},
],
},
],
},
],
},
{
tag: "div",
contents:
"Si vous êtes intéressé pour proposer une de ces animations dans votre structure, contactez-nous pour un devis gratuit.",
},
{ tag: "h3", contents: "Contact" },
{ tag: "div", contents: "Pour toute question, n'hésitez pas à nous contacter" },
{
tag: "ul",
contents: [
{ tag: "li", contents: "04 75 78 08 72" },
{
tag: "li",
contents: [
{
tag: "a",
href: "mailto:kuadrado-software@tutanota.com",
contents: "kuadrado-software@tutanota.com",
},
],
},
],
},
],
};
}
}
module.exports = EducationPage;
},{"./components/game-studio-club":4}],6:[function(require,module,exports){
"use strict";
"use strict";
const runPage = require("../../run-page");
const EducationPage = require("./education");
runPage(EducationPage);
},{"../../run-page":7,"./education":5}],7:[function(require,module,exports){
"use strict";
const objectHtmlRenderer = require("./lib/object-html-renderer");
const Template = require("./template/template");
module.exports = function runPage(PageComponent) {
const template = new Template({ page: new PageComponent() });
objectHtmlRenderer.setRenderCycleRoot(template);
objectHtmlRenderer.renderCycle();
};
},{"./lib/object-html-renderer":3,"./template/template":8}],8:[function(require,module,exports){
"use strict";
class Template {
constructor(props) {
this.props = props;
}
render() {
return {
tag: "main",
contents: [
{
tag: "header",
contents: [
{
tag: "nav",
contents: [
{
tag: "ul",
contents: [
["/public/", "Accueil"],
["/public/games/", "Jeux"],
["/public/software-development/", "Software"],
["/public/education/", "Pédagogie"],
].map(link => {
const [href, text] = link;
return {
tag: "li",
class:
window.location.pathname === href ? "active" : "",
contents: [{ tag: "a", href, contents: text }],
};
}),
},
],
},
],
},
{
tag: "div",
id: "page-container",
contents: [this.props.page.render()],
},
{
tag: "footer",
contents: [
{
tag: "a",
href: "mailto:kuadrado-software@tutanota.com",
contents: "kuadrado-software@tutanota.com",
},
],
},
],
};
}
}
module.exports = Template;
},{}]},{},[6]);