From 60cec63da2afae5dabb314853c3432cd62cbdc98 Mon Sep 17 00:00:00 2001 From: peter_rabbit <pierrejarriges@gmail.com> Date: Thu, 7 Jan 2021 16:03:37 +0100 Subject: [PATCH] wip: design education page --- assets/images/glitch_meta_level3.png | Bin 0 -> 7679 bytes assets/images/glitch_meta_screen1.png | Bin 0 -> 3953 bytes assets/images/glitch_meta_screen2.png | Bin 0 -> 3667 bytes assets/images/glitch_meta_screen3.png | Bin 0 -> 3486 bytes assets/images/glitch_meta_screen4.png | Bin 0 -> 3374 bytes assets/images/glitch_meta_screen5.png | Bin 0 -> 3626 bytes assets/images/glitch_meta_screen6.png | Bin 0 -> 3204 bytes assets/images/wallpaper_binary.png | Bin 0 -> 2728 bytes assets/images/wallpaper_binary_light.png | Bin 0 -> 10142 bytes config.js | 13 + constants.js | 5 + public/education/education.js | 413 ++++++++++++------ public/games/games.js | 53 +-- public/main.js | 53 +-- .../software-development.js | 53 +-- .../education/components/game-studio-club.js | 290 ++++++++++++ src/pages/education/education.js | 196 +-------- src/style.scss | 186 +++++++- src/template/template.js | 53 +-- style/style.css | 179 ++++++++ style/style.css.map | 2 +- 21 files changed, 1015 insertions(+), 481 deletions(-) create mode 100644 assets/images/glitch_meta_level3.png create mode 100644 assets/images/glitch_meta_screen1.png create mode 100644 assets/images/glitch_meta_screen2.png create mode 100644 assets/images/glitch_meta_screen3.png create mode 100644 assets/images/glitch_meta_screen4.png create mode 100644 assets/images/glitch_meta_screen5.png create mode 100644 assets/images/glitch_meta_screen6.png create mode 100644 assets/images/wallpaper_binary.png create mode 100644 assets/images/wallpaper_binary_light.png create mode 100644 config.js create mode 100644 constants.js create mode 100644 src/pages/education/components/game-studio-club.js diff --git a/assets/images/glitch_meta_level3.png b/assets/images/glitch_meta_level3.png new file mode 100644 index 0000000000000000000000000000000000000000..dfeba0486ec4b768b77f8643bf21d3ace77ece86 GIT binary patch literal 7679 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�&Qt4gGtRb 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 V|Jl#af&U$-8h}l8>a}1o{|AJWb*TUV literal 0 HcmV?d00001 diff --git a/assets/images/glitch_meta_screen1.png b/assets/images/glitch_meta_screen1.png new file mode 100644 index 0000000000000000000000000000000000000000..380f1679d5d697f998e6ce27b19e1c39e653ab06 GIT binary patch literal 3953 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 b>T{!g7fz9y)=;5WE8y+9i+E$(fir&s?ed)i literal 0 HcmV?d00001 diff --git a/assets/images/glitch_meta_screen2.png b/assets/images/glitch_meta_screen2.png new file mode 100644 index 0000000000000000000000000000000000000000..186a13eefdc9b7f6d2e535e1700d2123d1e9673e GIT binary patch literal 3667 zcma)93s6&68oqfz5E20^j}%%GCssie5g0*0f)fNP&yetzP>2nnEHz;lc?gLWDh2Tt z1QjWaR2N7wtRaB34U{rX!WLx0Hd-OVcF8WU0<$TBW&yJiR7A)lb8_yz=RfzH@BjY) z|IXavun>Qg@w>(V0H6W`2t)vYVE_QiG=ix|B7Xc$-2<esAd;W@T7xulKJ1+Ag?)s> z5`#~~#@J)ilZhV@v6mPsGBLT@8p{Q8%NX~IPMqb|sH$u3x7Unvl54(cyWD%9-*vfk z%;WLk<E07U-ZF7%W=W;G*AQ22rd}74bjqIqTrqerK>e`elYkfo0GPb<;tv6;Ypm6S zh|IuXKg9SBDC!7;DfV1agDngs_>wLR&p!L9TuLxA2y<cfFj)_J68})CsJ@qX`%-Z+ z9O6{?#34mm+x3Q{U7YOS(;1`ZI>$SAO$afRjMVPYx;Q~i_%oY(Gd;i_=8Fb3!ffAh zUBSiixeJ^XO4n0)ZxyA3^jRJfoK_fq1P}lS+zhX^dn%Vy83mYDqJ>S>n)iTSS+hm+ zdg@U^NMF-$BLZZm;`wk3LKCVNaMx^CMCVD1B%ymt9?vR>{lq50%^X62o0;Q*ZJPO} zUyPUCF**0&y@5~X|CwBU1EU<BuAHw}iR(((AC<GXJsX>7$}-Ww*``@cTLjLb>^s+n z32E&DQh0OFy+Cwk#Rk4cotnb+_BN4V8>>0et<w~oOh`EM;hzm&^Q@Wl-9e<_^<cbq zeM@{mGK+*TD^WzR2V*_<+lSxFO0<li2|S^1LwgNn!yr3{`Rc5t9+WZjJixkrI2A7? zBi|51fy&BEoW3*M0(0vYx1!vN1rZWih$H(`#p;hRZHck&8{Gn9nSNm>$WPpbs$%cZ z9jYtrJ~x)Ff0|uGirA3+j`qY}vyv+$%tmc_y@4{|;@@6HM~Alr$p)_)?{EnEV=F^~ zL}sZ6P^vFxzQNFpTydNHGC{OJ01a6Ef6&!#O(sD$=kYf6n+2DD9PkKAS2R{jyV7({ zXF9@g|D&yXF{ST`B6QCN=&s;&K^=nX1$M+~m6?~Zim?a?**iSq!c?Ler}mf^b)@R^ zR=8VgOSKdcQ0W)4QDz#MR~sG!@~rArcRdmW4`ja&dV8|w+X*B3K!MyfmOUhZABPna z{ZJdpqvej#RQl-KgWVa$FDqIHtD*>XO+@vF`s#&7W{;PDqh<3q3cfkcEtU2~#1urn z`}iBf+vLoe^#G)pQ$Ei(1-(6rDD8UHP(Pe&+QRNThsn(!;kN$Lp*uU(I|VGCUow;n ztMY7g*S`_Qg(V}Mgr!odus(k>1Veqxa@`8j(I}aHo*s1l2U6VVl_4$)9Z+7#NubhS zDZ2)Jw_s&{nTN$Ftvgy9hdfPsXOcW-Zo_nh&j@n>noa5Fvt*yvT}#U6w>seTAe$Ng zAZ=H8_7Tw8#G^F(Uo9FoQ4g;-`Yp8*s#bhmxymHu?1*4@(A(~BbHLm(!O_G!@AA`# zs}aa-`L`Jbl4Zr5d*jhqee_IbiLd`}v%IM)n(cSpp~UtRQ*bb@_6Nk)gJ6qvf$xGB z&Di4!2XFFPMIP-=HsarhAX{c_T1X8aB17XBqpTrH+q=hxm7=mcLkuVJXr5Hdo3Bn@ zStovv<+2F}+H~miu+#AR*we-BZDXm=Crstyvc;2iafO-j^3dD4PI`nU3bG63&pS%{ zA}V;eWWSQkc4Xsoeu)&z@b#VpQ&-WWlb!uQIR(85{<hA^;xXb=*Ni_1m*DKaUn$M= zV#Lq>bcEz{P)NRCNn**yxHMiaN3W%*dokkn!GS6Jo3bY(F{Mo$()?Zu?@sLDzPhlk zj@V;;RwW{Ao641EdR%u^i7HtH$NGiD#&Y%{gmcc+XAUKe<>l9+6}4YWDyLJTPVJj* z%oTWdf1To_$70TSHmt&FEbO90NDf|HaFm4cZ!8wt)?3A|cBa^kul$1z(r<c?aX)uc zA$96A)ej>!>8pUDU2HunYlj8a7@<W_&Romt!^MWk(`;;Leq}8&+#*<^Tk5Iln5-a$ zWC1Cj{MEZGW-#$;XZPaLc`3iN(^#il+&y5e`Am~%fApn07lX=RME(uW<5$tbf&D)d zgt}$!05sL-%v{M#&oP)t+B2;TOzWO-E(FK_+BETZ3C&oiemA42nFC1+=-K3<{JF_= z+P&2sSF<CN1q?w0`5H{yLAWLhk?<h~eb9=tb7b<t*%rTrpFL0d+^Ox5z@{GlI;$)d z8|>2=2sl{4Dz$f5KrY0<Pd-Ty96oDT@7((rX=v24x1B$4bwJZG@<xT(x?E@YH&3+H zc4r-$Kk#g7(nS!jPuaYWcKLwzz@1aYh%A&j)+gulv`D}!GM=~2+WCwXRh87Y9#Maz O0fBxY1kQ=XOaBLNrkol8 literal 0 HcmV?d00001 diff --git a/assets/images/glitch_meta_screen3.png b/assets/images/glitch_meta_screen3.png new file mode 100644 index 0000000000000000000000000000000000000000..b6ebb4564e294a1209751c940e3935cfce039840 GIT binary patch literal 3486 zcma)93pA8z82;uW#JHYAOBm^<tZOQpm>9+-HkWc)*^1Ceml<q!ilI`rVq6y4X>CFW z;WRZ$R&;3nqOt54>k_Ao9Ws+sG#1P3&sk^9Im7&CX1+P|eedOY-}iaH_n)*w-Xz?5 zz4ZV9oVy#*7XS<%05n|*1Mm2~6v8VAK6KFE1^#BLDp^@th1nZ(HXHkTIRyuq8pnkB z9``j)p-K+>h81iuW&v6{wKCNyn#Gh9Fe_`AgH>V7XY4CYmG#fBa9TLL4qoLDZ(0Bb zhnRzt6Vv0<5=lvc!lW3sjymB<B7*A*25#^V<#TR9Q~*@87e6Raz}x_DD#p5dxhM`R zqj6R{Z*Ru-0HFHHop`|iLZ9eOTgvb*4ML}JV`HOzQ~}BP4~gU_A^(;}iBE5?keZk9 zRQta7k#0`iL>(<4_+xGPG_~Zc=X}dtMb6~S(Ry~Ow<;cu)j*+@@N^(^fhv=y9M8NI zyqC;YP5F)G`Nl$2Ix!>f3TiE_|IF>U<X4XR;x46m_(6ee^Gkx)0Sc=@2zmU%MPH2R zDrLRNwfViXrzgptuyi1MAua*#O7yQO3L6NW8U5BW&CudfHxa$~S_}!c3d?LF08Kny zNrSN2J!|>>ETO@B@ZMCP&}Xb<Dyn9``Rty)3|dg>Xo6is&l|Gj=vsbZq%a`HOyJ{d z*0VlO+6<>N1rE8Uw1In(l!of!zD(3&FtRZ(A5^i)*63o1v)<T)&*>(X8&Rf$>@oud zd1?T~4<-~{WGOn%VH{LmCpOg$*+C2M;b`Uf13@^q*sJ0EB3!S(t3!L7dEdF_6prQ^ zWnbpQfHu@;beu!+a7+~%IYB}0@`D4l+ZYRlw)v;Ji<5rIczJlAg~{b138!)`1}wX4 zrcY__MMIiK(c%kY$v+1q(Fyf#t1xp}XOURZpsYUAF2GBSVGU(IYS_z5#jZS-ZGrWh zi#~51g-7w2s+|{{yi=_wFO7@AM_{dKqDfzjZhbpuwWg8s9j<FYsMsnSf^^FT+P0Fh z&}WXhT)Pw!zR=SoEM%X@98`E2#nNJo-@(a6&rc_;*@sfFZ)VJy{OM^U*C>_|m&^|t zc>A0{Hn9@qb6xjc<31c=BI%*q$?b#VIil&o8r01!a&^J4vAPP@tas8$k$G=ePr{`u z{S-nT(y5fxcD@yDOKQ#|?lwYzwpxM0OL3no!m-~*slV6s+~k925AL~PxP`W5OXTs9 zxUscccj+`D)b^Bm3#7=jIpL!-q4>R8F0Ow6hxra5zY|gXjd&5Q1Km~ni6^{>_ffSY zxSGFUP|qtOz+Q)GHEi5|qruZLXSYs&ObfbqBGQ<ZRD8@a0tvr_>cy@nF`snI^r2z; zY=ARIfRQS>%v7V@EEs~EM2l|A(-+0x*xISMsiiVic5w|A<?CA8FvNsvTzH+C^Q~9V zIPGAlT7hsRM|1%R+KtM5=aP&cYiRdKRrPK6(|!nrj3dXw`AC$bL7G;+Hgqk5&ebKk zu9L*;#>lVDx@4~R$yodTj@Rq745s7gr}M}Vsw**X9P|!$?q;$3i`W?fb9HjDL-olI z9+A-yJ9(<Gb^DD>1cX|k*+-(g9RKbmP`=-JNi}{yz9Sn!epz}9@ws+2zUSBzUs28I zM+BZguMx!5jd{AB;pmZ+yI|UV27`dK;Ys+659B5q(WEJJa!>l`-7<#*|MPWu)=D+* zcUa2E;p{j%H?%E#Yv57oxgqOzrhJXpIk@tEf`_(DIdyy|su`^!$3GoV4Df~K12cv2 z{Flw_l>{FDGGD$B9b~ESsg(XG(nO3ShEa`Ty}PRW^9}@aG|;y8LwRe^<<G->1kwNv zC01-@zhIH2Qo2eQ5R)J_Vc+r-72%F}A)!F6z6P>^1hkCI5K5ltMnWSjlz4Un>|8g{ zR+<p9V4qRq`%&m{=D6j`a!W{Y#@n4$gH6Xjlx0h5k5K`}Cd}}UBD?un2*QJK$=uK# z_zFy|$0`+ANu)?nHa}-C7w=MGv($^dO5!IVP*Zqb7==MpY)u4+SK>hc8HosyE)0m- rj^NoAen@>z_$%Zq`Spb*a~2ey2G4}YwvwK~e{_Jmi#M^#=~&9Y5|&u` literal 0 HcmV?d00001 diff --git a/assets/images/glitch_meta_screen4.png b/assets/images/glitch_meta_screen4.png new file mode 100644 index 0000000000000000000000000000000000000000..c261b72ca112c2611cd8725dd1b905f1d5c15b5b GIT binary patch literal 3374 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 N84^Liym7~ozW}(5Y^eYM literal 0 HcmV?d00001 diff --git a/assets/images/glitch_meta_screen5.png b/assets/images/glitch_meta_screen5.png new file mode 100644 index 0000000000000000000000000000000000000000..97e637f196061940eb00002e988e576283aa2258 GIT binary patch literal 3626 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 literal 0 HcmV?d00001 diff --git a/assets/images/glitch_meta_screen6.png b/assets/images/glitch_meta_screen6.png new file mode 100644 index 0000000000000000000000000000000000000000..2004779a0e8deaf62f47bf1382dbca2860bdf713 GIT binary patch literal 3204 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 literal 0 HcmV?d00001 diff --git a/assets/images/wallpaper_binary.png b/assets/images/wallpaper_binary.png new file mode 100644 index 0000000000000000000000000000000000000000..ac336b129d814776ba763b8cb6e2fd45f6ea101e GIT binary patch literal 2728 zcmZuzc{rO{7f)=lrlnO{Qrgm~-C#;YYl{)p39SiYZ#6}!S{t>-Rz+*Hq`tAVN;@GD zODF~vs!9`7D24}7#xhN7Z$lz{FTQV{?|HuY<Nn_FoZoxSJ@?#m&wbM!(Y7*@$0R`@ zkc=G)c^P<i1EW=32*4f75qS^@oDyJd?PzChtr`+`>v}*C4g@;$Fz(?wREOi?R0pRQ zmo=fc4~BL-7HOm8|0=_ru}XE+s{7=#I$-X96?NG|S#%^R**p^iQSkGGd5BsrL*DfE z+OcddwCHKn-CKD*6IY0T|M3+c^bG5pKV%5@Z@PJXP~&@VS6S;San%(4N2u-|gX`)V z!faj>DVW@B@_u!RU&|XR=_C+PW*yRlr@g*=GFd0n$A5Fl`5|UHd^$8o7q!(L**Rm} zhszUva`cDrQTX(k8rQ|EFEX*6AMTOv`I3KgYR%@l&bD-7DMMKPldaT;C9N%QBHd1* ze8HL7s#caT%m<%S=w@_As&)}6cB`Y(`(&O~rKTc$t_Cba<3M(j*|je(<VfggJQ9lb zR-X4gEdE7^dUqyP1%c*>h@TgBiSDAaL>@hTZfxrISzPfCG2Kc;J`Lir2(os#8^owQ z{9HZvLL2{RoD*2FMf5dga(rywBn}j2MCp+U2@$_f)QIVwpNN|X=Qohf(N&&pg*EwI zL>2<uA`ybZhJ!%5r*;Q8>V^4jKnaPk`^g3}3x-I64G9rhx`66vgpF&2^{tyXalsKF z>oDAv2;4PQd_aW1s;%8mjxLE%1rSL5ksZ?V=cutSMZIB4aOsqS{F+)m3O<+1O(=X| z6M6tmi&?(kV`nYn-=tSrf|Dzr+7yskt?_&)^D1Xrr`p5yu@uv^VVJA(ivBeaQeDBM zwQOyF{cJ**jG=Ew-4Re;e*0Ct{`}6zjl`%koa2gY*WB9o<XCh1qU6+YRl}sW7ai2t zDiE&2!41y8rE)n`uEUY9!}ASq{bsIE5r|gx;q#Q$A~&wk)L0dBb-*o<s>8Hj8sV~g zv)I9~HYStfXB<7V<~~!qQaxM*W6K3T#cZOf%~_!xieFaOu2MXYRSM6XC6tHOG5Iy2 z_gCIMnB;Ax&D4gLc<u#c8szv5OI&i^a_3aicebJhiLBvB(GX#M`0+Re{YRaLU<pJ4 z+l@<$Y=<L`Q-fBJUEa8z2EECI?M~N`5jLbvO8<113K5$hl{8aD+bK|3qI&j^@qbrp zYn<pmHntuW<@IhlJ&VrRUYd~CWsdQc^xrDJqU+?%j@XQkN7d2xr`Tyc$o974a@?0- zZ8U8rj}8enoM~{Uw+c3PK392fPts+!m)8($J#X!>T#Ld22aTir3I_hh#Pz23jBK{N zo31u97597fK2{iVpbKd}Q;Q&dMal6K(y@bcnQ6%nY}?KqA)IXvHVRRYY?W9e5+1}9 zdmDuq|F4DvZIhQA@2$-AnF_u=fnENIsE72KF_j9bAv9kSarNyr%mAg=HNVCZGDV9q z;9*BI?+MS3+9q#>`ZGX*b$7@Bdumv%ty8F<3<|8+m3tu1Yo`>YEVRHCvh(FaYGK=n zcniA!u7Ce2-NUhm=Cr^{GCb@Rk`*)T3U+TL`&fjzW@~<A<6A5gk2g0*B!tZ)e=Aj% zijBFDhFB&r<oePt?(w-${1lj|UU<lbI5<A4yy$9ylb?TsnKi<nO>4fSoRY#|=^az7 zSPXH2rR2hS4}5&8n>t__$=TMk3kovQ&iF<O)JhX3C`oJ|fa1#zSTU3Z7DDXh`%paM z>C+;5N_dH-xfU|s#UIG9!sFT3w0-QWNY08!&4nn)@NnV!J#6yEy;5&rO8<Vng5)dd z&YiZ(0vdeWCOLjoS=zo%(~E)tQY$69;jHdmrYxxcr6GK+Y*;iP-YlRM$mu62o@L>I zz_zyh_x&uS<76KpZ=V1J%{~I)vR+T_2UT~YgL%E})hUKkvbOXfC|+DlkloXMP~J^m zX}$I}I(0Y7y#u<BrWB|t?^%%jsPE?WaJipnr6d=+ga+%?!2OPFJ4d3P%(`!4K!Jo7 z$mjzepqXI7ZHxK=9UKKAL0&D2l=HAPAhq~ob~!}Bh<bsOR~>neqHFa44Wqb7m!o!u zf#<=U&yre}<8&9*${5^k;ejCZ9Ts_4z*iO@FyRq{HJWo2GE4xcKP>qDHH%LLTFCyU z?;)p$_lwF^IOCFqIfm&Yg5X(xFxXgO>kVGY66KY<iP<7{(Y}=}6_pjH-S04DU^2!6 z&~;T%IrXyQ1tA`(f0M(`8?b7)!1Nj7Hurhu;==or%Tj}hkK4(c^MYTKjL|~|itU^q zmmKOhM@qH)Li?3Ujx^!i#4_jfmWoL?p1HrkRo~b?1qKYAUiMQ53|tKo_`EL&=57!` zKz~npY`xa%&;MUSlQ7Q)h_g^6eJ!tB;lM3StVoCxyw|3xpcm^fTZjTHae?}`H7Dk% z25xI^UT~AYl@wp$T#MNGQSLj-t6u7>sb!dzrdP7`PsVtAkKraw3%vqERjt089%?3u zkApmcav__H#ArRgm2U6Gy~K8n_OrNL_>p?uZ@x;1hI!{AKab;<RQ<SX%OX!pqte3< ztXo%?svyxx6`PblwE{3f{qH3o{zKm=E>(GQcs(-^7o#0dOg^#whh4TrBL*U{av!x4 z8JFeei1E&8ZJZ9kNy&!TjynKt=9&%;LpVVp>LA--QbC20a)sQklNw43X(#*QSkSww zy`>$7r@Js5XNa(Sh#7ZD(gu+yx~^nX$bSu!wp+`EFiJ+KP%+xHUs61aA;!amE@s}= zf8G=RhP8yXG)LCcQpFo*7D<-o_S$r<y1kkPYGuD}{Eqw{Sw$x5WDw%#L*=dsd6S*% zF&1<uxP*Z_m+Us`3>Khg)lh*GlpDCrlf~@OLXiM!Of7t{W;#tg*J+lSkv809Twn;( zikCk_V&o;bm>dm=_A|Y_Wi7%eUnQRFB2QoJ%J3Ei1k8C=>YgCPkXV~NY*Z7eholBk z2=OL4ImQ3nAGB$uD$D@1==i8zHc{`8kuSWroPa<`99LqS$<r(h9}gBvHrD2-e(#-M z%C4AkKReZjPD<-q^6(Wr6MMIBsQ;JeiU0V}|5TY>7oPCRh$OW5S?yn6@7aXqJAv`H z<$Cyp+}V9?x0%Hun7|?|KUusnxk%&=;TaH`puB&-4g8(Bq4hN)T7F8`UCQ$h)-6&s z8H68oTNq<4^_5pkhU8IGD`A3fS*{pDbC6ENmj!%7b^K6d@ZR?b-UM9U8N5h?PnXZ7 zPx?)IUXk4+M$Ov!7h|$8qK(YCd!+pDqM!bH07U^DE3f>#hFmfv6|?VD$hE;9z3hKk s`qa{#!&+^&+P}6G9s`$G#YvumYS?!AaMo8p;1>pDXM;voTKOdX8w8{~&Hw-a literal 0 HcmV?d00001 diff --git a/assets/images/wallpaper_binary_light.png b/assets/images/wallpaper_binary_light.png new file mode 100644 index 0000000000000000000000000000000000000000..2fe2305059398233e404ea9a0055de78fff4170b GIT binary patch literal 10142 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 GkpBUW?m#a9 literal 0 HcmV?d00001 diff --git a/config.js b/config.js new file mode 100644 index 0000000..34250bf --- /dev/null +++ b/config.js @@ -0,0 +1,13 @@ +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 }; diff --git a/constants.js b/constants.js new file mode 100644 index 0000000..7f6ff30 --- /dev/null +++ b/constants.js @@ -0,0 +1,5 @@ +const { server_url } = require("./config"); + +module.exports = { + images_url: `${server_url}/assets/images`, +}; diff --git a/public/education/education.js b/public/education/education.js index fb6ec5e..bfbb7c5 100644 --- a/public/education/education.js +++ b/public/education/education.js @@ -1,4 +1,26 @@ (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 = { @@ -84,13 +106,15 @@ module.exports = { }, }; -},{}],2:[function(require,module,exports){ +},{}],4:[function(require,module,exports){ "use strict"; +const { images_url } = require("../../../../constants"); + const GAMEDEV_ASPECTS = [ { title: "Dessin et création 2D", - image: "...", + image: `${images_url}/glitch_meta_screen1.png`, comment: "", details: [ "Créer des décors et des personnages", @@ -100,7 +124,7 @@ const GAMEDEV_ASPECTS = [ }, { title: "Musique et effets sonores", - image: "...", + image: `${images_url}/glitch_meta_screen2.png`, comment: "", details: [ "Utiliser des logiciels de son et des synthétiseurs", @@ -111,7 +135,7 @@ const GAMEDEV_ASPECTS = [ }, { title: "Développer un univers", - image: "...", + image: `${images_url}/glitch_meta_screen3.png`, comment: "", details: [ "Écrire une histoire, construire une narration", @@ -120,7 +144,7 @@ const GAMEDEV_ASPECTS = [ }, { title: "Concevoir le jeu", - image: "...", + image: `${images_url}/glitch_meta_screen4.png`, comment: "", details: [ "Comprendres les différents éléments qui composent un jeu", @@ -129,7 +153,7 @@ const GAMEDEV_ASPECTS = [ }, { title: "Programmation informatique", - image: "...", + image: `${images_url}/glitch_meta_screen5.png`, comment: "", details: [ "Apprendre pas à pas à coder avec différents langages de programmation", @@ -138,7 +162,7 @@ const GAMEDEV_ASPECTS = [ }, { title: "Mathématiques et physique", - image: "...", + 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: [ @@ -147,135 +171,258 @@ const GAMEDEV_ASPECTS = [ }, { title: "Travail en équipe", - image: "...", + 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: "...", + 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 EducationPage { - constructor(args) { - Object.assign(this, args); - } - +class GameStudioClub { render() { return { - tag: "div", + tag: "section", contents: [ - { tag: "h1", contents: "Pédagogie" }, - { tag: "h2", contents: "Game studio club" }, - { tag: "h3", contents: "Apprendre à créer un jeu vidéo de A à Z" }, - { - tag: "strong", - contents: "Dans nos locaux, 32 rue Simon Vialet, 07240 Vernoux en Vivarais", - }, { - tag: "p", - contents: - "La création d'un jeu vidéo c'est l'occasion d'aborder plein de choses différentes !", - }, - { - tag: "ul", - contents: GAMEDEV_ASPECTS.map(li => { - return { - tag: "li", - contents: [ - { tag: "img", src: li.image }, - { tag: "strong", contents: li.title }, - { tag: "div", 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: "h3", - contents: "Groupes", + tag: "div", + class: "title-banner", + contents: [{ tag: "h2", contents: "Game Studio Club" }], }, { - tag: "table", + tag: "div", + class: "section-contents", contents: [ { - tag: "tr", + tag: "div", + class: "teaser", contents: [ - { tag: "td", contents: "Mardi" }, - { tag: "td", contents: "16h - 19h" }, + { 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: "tr", + tag: "div", + class: "practical-infos", contents: [ - { tag: "td", contents: "Mercredi" }, - { tag: "td", contents: "14h - 17h" }, + { + 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: "tr", - contents: [ - { tag: "td", contents: "Jeudi" }, - { tag: "td", contents: "16h - 19h" }, - ], + 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: "h3", - contents: "Inscription, fonctionnement et tarifs", - }, - { - tag: "p", - contents: `Vous pouvez vous inscrire dans un des groupes pour un mois ou plus. - <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: "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: "tr", + tag: "div", + class: "infos-inscriptions", contents: [ - { tag: "td", contents: "Abonnement 1 trimestre" }, - { tag: "td", contents: "(12 séances)" }, - { tag: "td", contents: "190€" }, + { + 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 pouvons animer ponctuellement des ateliers d'une journée de vulgarisation autour de l'informatique sur les thèmes suivants :", + "Nous proposons des animations d'une journée de vulgarisation autour de l'informatique sur les thèmes suivants :", }, { tag: "ul", @@ -284,7 +431,7 @@ class EducationPage { tag: "li", contents: [ { - tag: "span", + tag: "strong", contents: "Qu'est-ce qui se passe dans mon ordinateur ?", }, { @@ -315,7 +462,7 @@ class EducationPage { tag: "li", contents: [ { - tag: "span", + tag: "strong", contents: "GNU/Linux, le monde du libre", }, { @@ -341,7 +488,7 @@ class EducationPage { "Comment fonctionne le réseau internet et ses services (Sites, applications, boites mail, clouds...", contents: [ { - tag: "span", + tag: "strong", contents: "Comment fonctionne le réseau internet ?", }, { @@ -368,16 +515,15 @@ class EducationPage { tag: "li", contents: [ { - tag: "span", - contents: "Qu'est-ce qu'on fait quand on programme ?", + tag: "strong", + contents: "Le langages des machines", }, { tag: "ul", contents: [ { tag: "li", - contents: - "Démystifier l'idée de programmation informatique", + contents: "Démystifier la programmation informatique", }, { tag: "li", @@ -400,7 +546,7 @@ class EducationPage { { tag: "div", contents: - "Si vous êtes intéressé par un atelier pour votre structure, contactez-nous pour un devis gratuit.", + "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" }, @@ -427,7 +573,7 @@ class EducationPage { module.exports = EducationPage; -},{}],3:[function(require,module,exports){ +},{"./components/game-studio-club":4}],6:[function(require,module,exports){ "use strict"; "use strict"; @@ -435,7 +581,7 @@ const runPage = require("../../run-page"); const EducationPage = require("./education"); runPage(EducationPage); -},{"../../run-page":4,"./education":2}],4:[function(require,module,exports){ +},{"../../run-page":7,"./education":5}],7:[function(require,module,exports){ "use strict"; const objectHtmlRenderer = require("./lib/object-html-renderer"); @@ -447,7 +593,7 @@ module.exports = function runPage(PageComponent) { objectHtmlRenderer.renderCycle(); }; -},{"./lib/object-html-renderer":1,"./template/template":5}],5:[function(require,module,exports){ +},{"./lib/object-html-renderer":3,"./template/template":8}],8:[function(require,module,exports){ "use strict"; class Template { @@ -463,47 +609,24 @@ class Template { tag: "header", contents: [ { - tag: "ul", + tag: "nav", contents: [ { - tag: "li", - contents: [ - { - tag: "a", - href: "/public/", - contents: "Home", - }, - ], - }, - { - tag: "li", - contents: [ - { - tag: "a", - href: "/public/games/", - contents: "Jeux", - }, - ], - }, - { - tag: "li", - contents: [ - { - tag: "a", - href: "/public/software-development/", - contents: "Software development", - }, - ], - }, - { - tag: "li", + tag: "ul", contents: [ - { - tag: "a", - href: "/public/education/", - contents: "Pédagogie", - }, - ], + ["/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 }], + }; + }), }, ], }, @@ -531,4 +654,4 @@ class Template { module.exports = Template; -},{}]},{},[3]); +},{}]},{},[6]); diff --git a/public/games/games.js b/public/games/games.js index 7501c48..f1761f0 100644 --- a/public/games/games.js +++ b/public/games/games.js @@ -143,47 +143,24 @@ class Template { tag: "header", contents: [ { - tag: "ul", + tag: "nav", contents: [ { - tag: "li", + tag: "ul", contents: [ - { - tag: "a", - href: "/public/", - contents: "Home", - }, - ], - }, - { - tag: "li", - contents: [ - { - tag: "a", - href: "/public/games/", - contents: "Jeux", - }, - ], - }, - { - tag: "li", - contents: [ - { - tag: "a", - href: "/public/software-development/", - contents: "Software development", - }, - ], - }, - { - tag: "li", - contents: [ - { - tag: "a", - href: "/public/education/", - contents: "Pédagogie", - }, - ], + ["/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 }], + }; + }), }, ], }, diff --git a/public/main.js b/public/main.js index af03547..a9911c8 100644 --- a/public/main.js +++ b/public/main.js @@ -143,47 +143,24 @@ class Template { tag: "header", contents: [ { - tag: "ul", + tag: "nav", contents: [ { - tag: "li", + tag: "ul", contents: [ - { - tag: "a", - href: "/public/", - contents: "Home", - }, - ], - }, - { - tag: "li", - contents: [ - { - tag: "a", - href: "/public/games/", - contents: "Jeux", - }, - ], - }, - { - tag: "li", - contents: [ - { - tag: "a", - href: "/public/software-development/", - contents: "Software development", - }, - ], - }, - { - tag: "li", - contents: [ - { - tag: "a", - href: "/public/education/", - contents: "Pédagogie", - }, - ], + ["/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 }], + }; + }), }, ], }, diff --git a/public/software-development/software-development.js b/public/software-development/software-development.js index 0fb1acb..c5ed1f0 100644 --- a/public/software-development/software-development.js +++ b/public/software-development/software-development.js @@ -143,47 +143,24 @@ class Template { tag: "header", contents: [ { - tag: "ul", + tag: "nav", contents: [ { - tag: "li", + tag: "ul", contents: [ - { - tag: "a", - href: "/public/", - contents: "Home", - }, - ], - }, - { - tag: "li", - contents: [ - { - tag: "a", - href: "/public/games/", - contents: "Jeux", - }, - ], - }, - { - tag: "li", - contents: [ - { - tag: "a", - href: "/public/software-development/", - contents: "Software development", - }, - ], - }, - { - tag: "li", - contents: [ - { - tag: "a", - href: "/public/education/", - contents: "Pédagogie", - }, - ], + ["/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 }], + }; + }), }, ], }, diff --git a/src/pages/education/components/game-studio-club.js b/src/pages/education/components/game-studio-club.js new file mode 100644 index 0000000..1416389 --- /dev/null +++ b/src/pages/education/components/game-studio-club.js @@ -0,0 +1,290 @@ +"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; diff --git a/src/pages/education/education.js b/src/pages/education/education.js index acfe6ae..5665a70 100644 --- a/src/pages/education/education.js +++ b/src/pages/education/education.js @@ -1,78 +1,6 @@ "use strict"; -const GAMEDEV_ASPECTS = [ - { - title: "Dessin et création 2D", - image: "...", - 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: "...", - 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: "...", - comment: "", - details: [ - "Écrire une histoire, construire une narration", - "Imaginer des mondes et des personnages", - ], - }, - { - title: "Concevoir le jeu", - image: "...", - comment: "", - details: [ - "Comprendres les différents éléments qui composent un jeu", - "Développer les mécanismes de gameplay", - ], - }, - { - title: "Programmation informatique", - image: "...", - 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: "...", - 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: "...", - 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: "...", - 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: [], - }, -]; +const GameStudioClub = require("./components/game-studio-club"); class EducationPage { constructor(args) { @@ -82,113 +10,18 @@ class EducationPage { render() { return { tag: "div", + id: "education-page", contents: [ { tag: "h1", contents: "Pédagogie" }, - { tag: "h2", contents: "Game studio club" }, - { tag: "h3", contents: "Apprendre à créer un jeu vidéo de A à Z" }, - { - tag: "strong", - contents: "Dans nos locaux, 32 rue Simon Vialet, 07240 Vernoux en Vivarais", - }, - { - tag: "p", - contents: - "La création d'un jeu vidéo c'est l'occasion d'aborder plein de choses différentes !", - }, - { - tag: "ul", - contents: GAMEDEV_ASPECTS.map(li => { - return { - tag: "li", - contents: [ - { tag: "img", src: li.image }, - { tag: "strong", contents: li.title }, - { tag: "div", 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: "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: "h3", - contents: "Inscription, fonctionnement et tarifs", - }, - { - tag: "p", - contents: `Vous pouvez vous inscrire dans un des groupes pour un mois ou plus. - <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€" }, - ], - }, - ], - }, + {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 pouvons animer ponctuellement des ateliers d'une journée de vulgarisation autour de l'informatique sur les thèmes suivants :", + "Nous proposons des animations d'une journée de vulgarisation autour de l'informatique sur les thèmes suivants :", }, { tag: "ul", @@ -197,7 +30,7 @@ class EducationPage { tag: "li", contents: [ { - tag: "span", + tag: "strong", contents: "Qu'est-ce qui se passe dans mon ordinateur ?", }, { @@ -228,7 +61,7 @@ class EducationPage { tag: "li", contents: [ { - tag: "span", + tag: "strong", contents: "GNU/Linux, le monde du libre", }, { @@ -254,7 +87,7 @@ class EducationPage { "Comment fonctionne le réseau internet et ses services (Sites, applications, boites mail, clouds...", contents: [ { - tag: "span", + tag: "strong", contents: "Comment fonctionne le réseau internet ?", }, { @@ -281,16 +114,15 @@ class EducationPage { tag: "li", contents: [ { - tag: "span", - contents: "Qu'est-ce qu'on fait quand on programme ?", + tag: "strong", + contents: "Le langages des machines", }, { tag: "ul", contents: [ { tag: "li", - contents: - "Démystifier l'idée de programmation informatique", + contents: "Démystifier la programmation informatique", }, { tag: "li", @@ -313,7 +145,7 @@ class EducationPage { { tag: "div", contents: - "Si vous êtes intéressé par un atelier pour votre structure, contactez-nous pour un devis gratuit.", + "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" }, diff --git a/src/style.scss b/src/style.scss index 5ac33df..46e5799 100644 --- a/src/style.scss +++ b/src/style.scss @@ -4,8 +4,192 @@ body { } font-family: Arial, Helvetica, sans-serif; margin: 0; + ul { + margin: 0; + padding: 0; + list-style-type: none; + } } main { - // + background: url("../assets/images/wallpaper_binary.png"); + display: flex; + flex-direction: column; + align-items: center; + min-height: 100vh; + header { + width: 100%; + nav { + background-color: #fff1; + ul { + display: flex; + padding: 0; + margin: 0; + list-style-type: none; + li { + a { + display: flex; + padding: 10px 20px; + color: #b8b9c5; + font-weight: 500; + text-decoration: none; + } + &:hover, + &.active { + background-color: #fff2; + a { + color: white; + } + } + } + } + } + } + #page-container { + background-color: white; + width: 1200px; + max-width: 100%; + flex: 1; + #education-page { + h1 { + margin: 15px 40px 0; + font-size: 25px; + } + .edu-philo { + margin: 15px 40px 15px 100px; + max-width: 800px; + font-style: italic; + } + .title-banner { + display: flex; + justify-content: flex-end; + flex-direction: column; + height: 300px; + background-image: url("../assets/images/glitch_meta_level3.png"); + background-size: cover; + background-repeat: no-repeat; + background-position: 0% 90%; + h2 { + color: white; + font-size: 2.5em; + margin: 40px; + text-shadow: 0 0 8px #000; + } + } + .section-contents { + margin: 20px 40px 60px; + display: grid; + grid-template-columns: auto 1fr; + gap: 20px; + .teaser { + grid-column: 1 / span 2; + } + .practical-infos { + grid-column: 2; + grid-row: 2; + display: flex; + flex-direction: column; + gap: 40px; + background-image: linear-gradient( + rgba(255, 255, 255, 0.2), + rgba(255, 255, 255, 0.2) + ), + url("../assets/images/wallpaper_binary_light.png"); + padding: 20px; + .info-item { + display: flex; + flex-direction: column; + background-color: white; + padding: 20px; + strong { + margin-bottom: 10px; + } + span, + a { + font-size: 14px; + text-decoration: none; + } + } + } + ul.learning-themes { + grid-column: 1; + grid-row: 2; + display: flex; + gap: 20px; + flex-wrap: wrap; + li.learning-theme { + display: grid; + grid-template-columns: auto 280px; + border-bottom: 1px solid #dde; + border-right: 1px solid #dde; + .img-wrapper { + grid-column: 1; + width: 130px; + overflow: hidden; + display: flex; + justify-content: center; + align-items: center; + position: relative; + img { + position: absolute; + height: 100%; + } + } + .right { + grid-column: 2; + padding: 10px; + strong { + display: block; + margin-bottom: 10px; + } + .comment { + font-size: 14px; + } + ul { + font-size: 12px; + list-style-type: disc; + margin: 10px 0 0 20px; + display: flex; + flex-direction: column; + gap: 8px; + } + } + } + } + .infos-inscriptions { + grid-column: 1 / span 2; + display: flex; + gap: 40px; + .groups, + .pricing { + background-image: linear-gradient( + rgba(255, 255, 255, 0.2), + rgba(255, 255, 255, 0.2) + ), + url("../assets/images/wallpaper_binary_light.png"); + padding: 20px; + display: flex; + flex-direction: column; + & > * { + background-color: white; + margin: 0; + width: 100%; + } + h3, table { + padding: 20px; + } + p { + padding: 0 20px; + } + } + .pricing { + flex: 1; + } + } + } + } + } + footer { + width: 100%; + } } diff --git a/src/template/template.js b/src/template/template.js index a637c04..dec780a 100644 --- a/src/template/template.js +++ b/src/template/template.js @@ -13,47 +13,24 @@ class Template { tag: "header", contents: [ { - tag: "ul", + tag: "nav", contents: [ { - tag: "li", + tag: "ul", contents: [ - { - tag: "a", - href: "/public/", - contents: "Home", - }, - ], - }, - { - tag: "li", - contents: [ - { - tag: "a", - href: "/public/games/", - contents: "Jeux", - }, - ], - }, - { - tag: "li", - contents: [ - { - tag: "a", - href: "/public/software-development/", - contents: "Software development", - }, - ], - }, - { - tag: "li", - contents: [ - { - tag: "a", - href: "/public/education/", - contents: "Pédagogie", - }, - ], + ["/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 }], + }; + }), }, ], }, diff --git a/style/style.css b/style/style.css index 0a8822d..f59446d 100644 --- a/style/style.css +++ b/style/style.css @@ -5,5 +5,184 @@ body { body * { box-sizing: border-box; } +body ul { + margin: 0; + padding: 0; + list-style-type: none; +} + +main { + background: url("../assets/images/wallpaper_binary.png"); + display: flex; + flex-direction: column; + align-items: center; + min-height: 100vh; +} +main header { + width: 100%; +} +main header nav { + background-color: #fff1; +} +main header nav ul { + display: flex; + padding: 0; + margin: 0; + list-style-type: none; +} +main header nav ul li a { + display: flex; + padding: 10px 20px; + color: #b8b9c5; + font-weight: 500; + text-decoration: none; +} +main header nav ul li:hover, main header nav ul li.active { + background-color: #fff2; +} +main header nav ul li:hover a, main header nav ul li.active a { + color: white; +} +main #page-container { + background-color: white; + width: 1200px; + max-width: 100%; + flex: 1; +} +main #page-container #education-page h1 { + margin: 15px 40px 0; + font-size: 25px; +} +main #page-container #education-page .edu-philo { + margin: 15px 40px 15px 100px; + max-width: 800px; + font-style: italic; +} +main #page-container #education-page .title-banner { + display: flex; + justify-content: flex-end; + flex-direction: column; + height: 300px; + background-image: url("../assets/images/glitch_meta_level3.png"); + background-size: cover; + background-repeat: no-repeat; + background-position: 0% 90%; +} +main #page-container #education-page .title-banner h2 { + color: white; + font-size: 2.5em; + margin: 40px; + text-shadow: 0 0 8px #000; +} +main #page-container #education-page .section-contents { + margin: 20px 40px 60px; + display: grid; + grid-template-columns: auto 1fr; + gap: 20px; +} +main #page-container #education-page .section-contents .teaser { + grid-column: 1/span 2; +} +main #page-container #education-page .section-contents .practical-infos { + grid-column: 2; + grid-row: 2; + display: flex; + flex-direction: column; + gap: 40px; + background-image: linear-gradient(rgba(255, 255, 255, 0.2), rgba(255, 255, 255, 0.2)), url("../assets/images/wallpaper_binary_light.png"); + padding: 20px; +} +main #page-container #education-page .section-contents .practical-infos .info-item { + display: flex; + flex-direction: column; + background-color: white; + padding: 20px; +} +main #page-container #education-page .section-contents .practical-infos .info-item strong { + margin-bottom: 10px; +} +main #page-container #education-page .section-contents .practical-infos .info-item span, +main #page-container #education-page .section-contents .practical-infos .info-item a { + font-size: 14px; + text-decoration: none; +} +main #page-container #education-page .section-contents ul.learning-themes { + grid-column: 1; + grid-row: 2; + display: flex; + gap: 20px; + flex-wrap: wrap; +} +main #page-container #education-page .section-contents ul.learning-themes li.learning-theme { + display: grid; + grid-template-columns: auto 280px; + border-bottom: 1px solid #dde; + border-right: 1px solid #dde; +} +main #page-container #education-page .section-contents ul.learning-themes li.learning-theme .img-wrapper { + grid-column: 1; + width: 130px; + overflow: hidden; + display: flex; + justify-content: center; + align-items: center; + position: relative; +} +main #page-container #education-page .section-contents ul.learning-themes li.learning-theme .img-wrapper img { + position: absolute; + height: 100%; +} +main #page-container #education-page .section-contents ul.learning-themes li.learning-theme .right { + grid-column: 2; + padding: 10px; +} +main #page-container #education-page .section-contents ul.learning-themes li.learning-theme .right strong { + display: block; + margin-bottom: 10px; +} +main #page-container #education-page .section-contents ul.learning-themes li.learning-theme .right .comment { + font-size: 14px; +} +main #page-container #education-page .section-contents ul.learning-themes li.learning-theme .right ul { + font-size: 12px; + list-style-type: disc; + margin: 10px 0 0 20px; + display: flex; + flex-direction: column; + gap: 8px; +} +main #page-container #education-page .section-contents .infos-inscriptions { + grid-column: 1/span 2; + display: flex; + gap: 40px; +} +main #page-container #education-page .section-contents .infos-inscriptions .groups, +main #page-container #education-page .section-contents .infos-inscriptions .pricing { + background-image: linear-gradient(rgba(255, 255, 255, 0.2), rgba(255, 255, 255, 0.2)), url("../assets/images/wallpaper_binary_light.png"); + padding: 20px; + display: flex; + flex-direction: column; +} +main #page-container #education-page .section-contents .infos-inscriptions .groups > *, +main #page-container #education-page .section-contents .infos-inscriptions .pricing > * { + background-color: white; + margin: 0; + width: 100%; +} +main #page-container #education-page .section-contents .infos-inscriptions .groups h3, main #page-container #education-page .section-contents .infos-inscriptions .groups table, +main #page-container #education-page .section-contents .infos-inscriptions .pricing h3, +main #page-container #education-page .section-contents .infos-inscriptions .pricing table { + padding: 20px; +} +main #page-container #education-page .section-contents .infos-inscriptions .groups p, +main #page-container #education-page .section-contents .infos-inscriptions .pricing p { + padding: 0 20px; +} +main #page-container #education-page .section-contents .infos-inscriptions .pricing { + flex: 1; +} +main footer { + width: 100%; +} /*# sourceMappingURL=style.css.map */ diff --git a/style/style.css.map b/style/style.css.map index 6f0f49c..615b10a 100644 --- a/style/style.css.map +++ b/style/style.css.map @@ -1 +1 @@ -{"version":3,"sourceRoot":"","sources":["../src/style.scss"],"names":[],"mappings":"AAAA;EAII;EACA;;AAJA;EACI","file":"style.css"} \ No newline at end of file +{"version":3,"sourceRoot":"","sources":["../src/style.scss"],"names":[],"mappings":"AAAA;EAII;EACA;;AAJA;EACI;;AAIJ;EACI;EACA;EACA;;;AAIR;EACI;EACA;EACA;EACA;EACA;;AACA;EACI;;AACA;EACI;;AACA;EACI;EACA;EACA;EACA;;AAEI;EACI;EACA;EACA;EACA;EACA;;AAEJ;EAEI;;AACA;EACI;;AAOxB;EACI;EACA;EACA;EACA;;AAEI;EACI;EACA;;AAEJ;EACI;EACA;EACA;;AAEJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AACA;EACI;EACA;EACA;EACA;;AAGR;EACI;EACA;EACA;EACA;;AACA;EACI;;AAEJ;EACI;EACA;EACA;EACA;EACA;EACA;EAKA;;AACA;EACI;EACA;EACA;EACA;;AACA;EACI;;AAEJ;AAAA;EAEI;EACA;;AAIZ;EACI;EACA;EACA;EACA;EACA;;AACA;EACI;EACA;EACA;EACA;;AACA;EACI;EACA;EACA;EACA;EACA;EACA;EACA;;AACA;EACI;EACA;;AAGR;EACI;EACA;;AACA;EACI;EACA;;AAEJ;EACI;;AAEJ;EACI;EACA;EACA;EACA;EACA;EACA;;AAKhB;EACI;EACA;EACA;;AACA;AAAA;EAEI;EAKA;EACA;EACA;;AACA;AAAA;EACI;EACA;EACA;;AAEJ;AAAA;AAAA;EACI;;AAEJ;AAAA;EACI;;AAGR;EACI;;AAMpB;EACI","file":"style.css"} \ No newline at end of file -- GitLab