From ff4241330bf771777f8c00ae0d86802851513bd8 Mon Sep 17 00:00:00 2001 From: loomkoom <29258685+loomkoom@users.noreply.github.com> Date: Mon, 30 May 2022 08:40:08 +0200 Subject: [PATCH] formatting + email --- .idea/dataSources.xml | 12 + flask_app.py | 32 ++- static/git.png | Bin 0 -> 5136 bytes static/logo_mail.png | Bin 0 -> 16880 bytes static/mail_banner.jpeg | Bin 0 -> 15547 bytes templates/about.html | 80 ++++--- templates/mail.html | 498 +++++++++++++++++++++++++++++++++++++++ templates/send_wish.html | 10 +- 8 files changed, 578 insertions(+), 54 deletions(-) create mode 100644 .idea/dataSources.xml create mode 100644 static/git.png create mode 100644 static/logo_mail.png create mode 100644 static/mail_banner.jpeg create mode 100644 templates/mail.html diff --git a/.idea/dataSources.xml b/.idea/dataSources.xml new file mode 100644 index 0000000..06af97b --- /dev/null +++ b/.idea/dataSources.xml @@ -0,0 +1,12 @@ + + + + + sqlite.xerial + true + org.sqlite.JDBC + jdbc:sqlite:$PROJECT_DIR$/database.db + $ProjectFileDir$ + + + \ No newline at end of file diff --git a/flask_app.py b/flask_app.py index 3a9bbe5..9f53fc2 100644 --- a/flask_app.py +++ b/flask_app.py @@ -1,9 +1,9 @@ import secrets import sqlite3 import string +from pathlib import Path import requests -import os from flask import Flask, jsonify, request, render_template app = Flask(__name__) @@ -11,7 +11,7 @@ def generate_uid(db_id): alphabet = string.ascii_lowercase + string.digits - return f"{db_id}-" + ''.join(secrets.choice(alphabet) for _ in range(4)) + return f"{db_id}-" + ''.join(secrets.choice(alphabet) for _ in range(8)) def dict_factory(cursor, row): @@ -27,7 +27,6 @@ def db_connect(): cursor = connection.cursor() return cursor, connection - @app.route('/') def home(): cur, conn = db_connect() @@ -52,19 +51,25 @@ def list_cards(): @app.route('/wish/') def wish_form(card_id): cur, conn = db_connect() - card = cur.execute(f'SELECT * FROM card WHERE cardid={card_id};').fetchone() + card = cur.execute("SELECT * FROM card WHERE cardid=?", (card_id,)).fetchone() conn.close() return render_template("send_wish.html", card=card) -def send_mail(email, sender, cardid, uid): +def send_mail(email, sender,receiver, cardid, uid): + card_img = f"http://zappsters.pythonanywhere.com/static/{cardid}.jpg" + banner_img = f"http://zappsters.pythonanywhere.com/static/mail_banner.jpeg" + logo_img = f"http://zappsters.pythonanywhere.com/static/logo_mail.png" + git_img = f"http://zappsters.pythonanywhere.com/static/git.png" + x = requests.post("https://api.mailgun.net/v3/sandboxa39931aba4ea43a885c240d815b0a2c2.mailgun.org/messages", auth=("api", "9374b99615d0f43ff1e12995ef3c3317-8d821f0c-6df1ae28"), - files=[('inline[0]', ('card.jpg', open(f'{os.getcwd()}/static/{cardid}.jpg', mode='rb').read()))], + files=[('inline[0]', ('card.jpg', open(Path.cwd() / f'static/{cardid}.jpg', mode='rb').read()))], data={"from": "laurens@zappsters.pythonanywhere.com", "to": [f"{email}"], "subject": "Greeting card", - "text": f"You have been sent an AR greeting card from {sender}! The unique code for your personnel message i: " + uid}) + "html": render_template("mail.html", sender=sender, code=uid, receiver=receiver, + card=card_img, banner=banner_img, logo=logo_img, git=git_img)}) return x.text @@ -89,11 +94,12 @@ def wish_insert(): uid = generate_uid(db_id) if send_method == "email": - send_mail(send_destination,sender,card_id, uid) + send_mail(send_destination, sender,receiver, card_id, uid) - card = cur.execute('SELECT * FROM card WHERE cardid' + '=' + str(card_id) + ';').fetchone() + card = cur.execute("SELECT * FROM card WHERE cardid=?", (card_id,)).fetchone() + print(card) conn.execute( - f"INSERT INTO wish (uid, sender, message, cardid) VALUES (\'{uid}\', \'{sender}\', \'{message}\', {card_id})") + "INSERT INTO wish (uid, sender, message, cardid) VALUES (?,?,?,?)", (uid, sender, message, card_id)) conn.commit() conn.close() return render_template("confirm_wish.html", card=card) @@ -108,7 +114,7 @@ def get_wish(): def result_wish(): uid = request.form.get("uuid") cur, conn = db_connect() - personal_card = cur.execute(f"SELECT * FROM wish WHERE uid=\'{uid}\';").fetchone() + personal_card = cur.execute("SELECT * FROM wish WHERE uid=?", (uid,)).fetchone() conn.close() return render_template("show_wish.html", card=personal_card) @@ -124,11 +130,11 @@ def get_personal_wish(): # connect and open the database file database.db cur, conn = db_connect() # read the associated personal wish, you will need an extra integer field code in your wish table! - wish = cur.execute(f"SELECT * FROM wish WHERE code={code}").fetchall() + wish = cur.execute("SELECT * FROM wish WHERE code=?", (code,)).fetchall() conn.close() # there's only one wish because the code is unique response = jsonify(wish[0]) # allow cross-domain Ajax requests, more info in later years response.headers.add("Access-Control-Allow-Origin", "*") - return response + return response \ No newline at end of file diff --git a/static/git.png b/static/git.png new file mode 100644 index 0000000000000000000000000000000000000000..1c53810ceafc6b5f9e5f8179d9392a3e37bd0ac3 GIT binary patch literal 5136 zcmV+r6z}VaP)Px|%1J~)RCodHoe7i`#TAAbR6tQc4dRB3Mg>&FE%6BG5EsA|7mOZJh$k8qHSP;) zFzSiuIcgF&(6}I?xPanujYLH-xI{%GL=g?cs4Su)AaOw?-#>H@v%G$Ft&|;sAk2o;mWZ-1*vH%N%r-7jP*Ie8PwE=*4tN7h2Qwj*$W}H|76gJcn^Gep z%mB~}>2tOvEhS4JNYj?cSAnCzfuItUlBjih0Zar_A=C0w za^Cl~77m^phdI#?_>jK#)g-IUk5XYJr-g zh&bwS-vo&!r!fGjBM`*tNuaI(>Kw0=#-KUyNw=~|;7<@~h6DS7CR0Noh@;WpbHOlB zu6>-qiU@f@PimupS|p8vJC{@t2=b`4xdxQWQ&rLxt0%P)kVr!SPQ@vKAkJ2lUc?y! zvfEX0RM2hhesBdu`mDID=2AN&5adzk_|Kr5x#BcSO`6!f01`dzqV(3EZXixuFp|PP z0W$K$ul25|c$}DC4>S*GRjjr^6mVNgcN;j^YAKtKvAp@(jkL#xXMTtc`tAdpn@`F=BpFQU>blO_V?sq5@os z!Fxf6`i8UpL?fVB-%acJmO0=I$f9Qd@R$>zf@@RxvgM`^QPu$wDoBwOf z9SMnEj$<|!fgn#M#wUaA<2aG!bryk-u-p$4&5i0o zr&T1Yg)^N(l81oSNvm(A?M|Q%=nXo8a+IYMYC4z#{tXrby(_i==tWA+DJCKMkq+cm zrsW_-Nznv?JX>O63ec=?5~5aTcM9`qF6G$o!g;Ns9tw8Lm8JyGsV_1XJW9FsmTD8B z+*@<vVYyeIMs*F;Rxj1@02t^z}9$p?ciHYh~t$Sz* z%{CNohSn)SA2&!!^d@E>n$cH_HGqFVBahxG(^QJ~qlgCBz6I*MYG06OfK+G&*7x?= z6fNoy-wAFFx<%*HNEv%`eHsW|Z~62ETvLa=3jfsqDkz~H!FjFixul@RcnKDfy(i9V z8%gkUXEI(6jt4>IQ$K4Sm;<)@D2D5=+zmCCW+gC4S_oKYB|&=sRY{r zJq~XJ^dk$BN4TIjOVv4!B$RCnGQJCv>IeCLU5B5;{e#$B9N!fz1xd@B7*J)!7W5nr zr0;)VHh2J>1$u+6!Md@HcnZ+94%iY%_wRvh$);?}ha*hbLeIKj21r^|*F8-5tUg9d zFfnP5J^ho6IK8%F+o5-7VEt8TY_|7oZ)CVkPodX_Ou$INal(QLDEzO0kzY`VKzw#fk#g zv&;5kq&mOQ<3M2C^Ad<${lI~Nxy@hjJFVt5mybq0soE0N{XzMR1ro?(-Z^A8(y7ho zM7?XR>+NT|xg(&V1Y4q3=$w45P#}TG*bDRpHbsxfndFZ^`}~)UU+s&=eS);+BhYDN zvdMP&sBw-=0wO?5P{AeJG16T@T*xUo3528FNPSq&9Lb*SjBO3pWs*ArT7#tlOxto8 z_0lz$(VPS#;c>wF*aRH2;zSc^LLjdN&@_Mx(R9HcE)185 z&E4@+F>)bV`JfiCfixiySF3<-VXkC=E5jvV*JW%piN0Us808|+(Tx*XK5oKt%l6Z3 zPMv6%a!h064IHA0(lUs*LFdK^Egdh!&ViZ&uw<{K%uqjC);kq!>d5gL?CwGR)J-`x zZh>_Baz&n%*w)Mc8F>QOL2UGS-)jOc+c>QUoCdeC#sunb!;1hLV+hcMfNR<5wGp_3 z-51v$THkBHkvam=JZjlNZ|m-?F*uLSRgP?zlv#dcTIhB;(4sdN(g&{8jn&l=2v2qa z+q>`xn>P>`tq9B{L>66YaH9OCauPng!P_ z%(l$O;G?#UmXW=CD9d68<>>)uYF7pLEzq_&;o|ZA34TeRI|x8om?U zTB`-p6PWE~lKRy|e#O^vpi04<#?tgeYg5FT4kD1==eE62TkpPCgG|gsK(phs&8P~k zMV#sA6Ug=xn5He3gmyJcm^T9SgY-men?T}BClP4#yxt{q@ly(I`_VI*lB7rLT+6Oh zU~h8~$i)b>i_ufd@wIMlfpv>~D@p{~(ShOY_GLck`mT{}=_UeI+O~?l6%K5cyUFhz z6tGeR>g2$%I(?a#kHBj4D)VaGOayZAKDu7o&%|s5^i-sdtxefj1hV}IuL5fMY$j$S zV0$c2-nS8fT-;7JF&n!~8xhdRux(i-0=ZZX=%TQ;gKOJfrEP=Q`$hzE@kFGrq-qj3 z69W+-mg@Vs7>-#k0=ZZbs85u*7y&m>U8z)|?^e4Y&|(qjBL^W-A4so1N-G>vJVAX&q1MT3G|@@!!lXLy;}s%Bt`_h7#)#`_a%8_`&3Z9A$BUtha@4?`?^S^k7mxC5EVpRU zmz{zBLADJY0mZB;bZYYnYoFeI0=ay}Mm~(-7v<`^f96A*utqOdBQWFFU&0o1s((*s zeFyaIJ-w^tO0+I}xGUo&Xjidvv6kHrm7c)FnK}Yhv+t@SEk7jsca(>(+0Fh2MSvI` zp;!f7w{%`ysg|wU7KqM}9_451ghSEe{H+9NM~6P7+BC80ii5WR#mc43gfn`Xv91Nu z{_FbVShm6bSOTTDWizQ40WT)^aY`|AEp=S+`#^H&HQ-`(V&hY=v7gH9E>p&lIc-22ypFr<$vc|vQczXc$#}hcM8*0|##b7)^P)yPw;>f$cBXtDw z`ax;>;M0LPIf(%F@SSaLTd(YsD0f=Oqbhja@BiqajzBs9~=I@?(@*II2lp2pL zIYOC_QQ3iFkS6&@ePGK~(vGj3dF`K#QzWDe}$p@jABhxs*gd{3g<*1yTx1iqEiV`wOO+t&OAlF>29! zg8e<{qwZB%BKNYMdeF@htNH0!O|L(gTrnI~xg34oXwR zc{RHq01-(`Rz3#rVE-$&#s%N?zMF2zKL;YsuAm#xNOCEQ#s{m2n-(926M}IzFfBDG zEEr7EtOJIFmB6ITM_FQ>ROtq?QEqZ(5Nq+d_F^`YNDS=mKDB zeojxAm!WrdA^TCUd%CY6zigF@%%dPp`mTQA0trMg7LsU;pU}`&OEJ#yx2GTRbhP%6%_oS`^76+TlvD$Y6W?6T0>*#u?IA04?!|BeTf7 zX)$)=q{Y@I;N3V5rzGz}{OFP|7J)60GQqrRHu^=G5_Q^p}`gU{F}kNP8&w z0Te5;6N;>1eF>8en=OG>6O^hf!1031Y4Wx}3KR_dgw5??f)+B3#y~oNeZeC*sb#Di z6v~Sq8tNZYC|!>0`hWB*bDU4~6gGdtfciq(mZIEF89p`QI2EjW`fQMth)4yW&PcNv zm{Eiii%FaJ9&RK+0ZOpl9(-7YziCPOK8|QitDqEYfusQ@>YjdWL2c0!981>gaaw(( zK*5jCxi|#O2~5=Rf?ho_^DAnoH`EdSYJTotp%SMn(MYe(3wjlbK%SO|*iJ5}F?xd2 z$$EUD>=f)h(i{e!DU_D$?~z`eXqO^?OGz|c@o-p&^Zw!+E1`w>CFisvO#^~SNHt1( zQRxc`DaRLej5V9B)=Sd|YH~#ujajJWnF5{*qlK0a%6ipy$$Ix^(n(RzUHbt?fFZM~wK&H1r1g@n{Uu|$ErBi>Ky`OEb*ay_ zM3Tq^k~Iuhv(flX(f3aBgq7AL906W{M0%yCUD%9Sy1Wrkot;h{&dr;uz{OYul5QN( zxX|zdc1&E}1100YG)QzM=mqrX-efFG=YXaWM7~UNM_{;Dce$^IJliDrA@em!MrHkl zljk(KklYDPkbVZ#49^FCE2tJqw?55*4IxOcv2`ZIWnYX>0kMCq1`F|5;&QGDee0S~ z;_0}U?H1tI26g6Br2)fA4?*c#1zl*y=O3Z$mzXNQv0nv@*5au%K$7!i#gw}g#$Spl zkBPLZn=`1Z$erfKP8cJQ6yum??T3QtI?g0j5%?$G=$5WJGA2d|B(HFA0h__#Egff) ziU??ObTDYlVfLb{Jq>eMO8iA*9 z&K^sw)bh;DnZokPR1nB7GeLQb{VFg5=&2%;H4#uO^aQI`XJQtV5D{P@R(GI(Z?FtR zkyT{UVlJm5AAo#`BHxf{H0bWM5T$IK;OznQiqCRTjFd8gR#4FU!JegDcd7E7VD18L z2Kw+(7%4>p>2remUed0q3Vt~`LvTBT3&7hT->sok2qZsMmWx1_a;mFTmxW-r1^RG- z`Uusav80_q^Kkes&>yr-b+F6bIVwQ^V{0I|1L#X?`apvuEuCojBA?`&NOKI(7x^WeLZ9!Fbec??Vo(`e34J>T>E3%{{I0Rg1S;(kkxPi0000 zKKpE+*WPnQD9TGBz~aIJ000DODKTXL0AvpMVSyr`p)rW*tVPeuaxBg1}(HL4qxUV3V7WF)s&vs|7b(@>t>=f!uW#9KdB- z+G!fM;U;uRe}hI5N-m& z2#geA4=N4S4kbV!A!U}_&j$hANgC#vkc=m2g~L{AT6BSwg^uRtzlU0pBsLFr<$9}c z=R}Gxyp<+?DN<)|CLQWpZP)mI-k7fq(OA5wuEt^&9Sg@?9qA|}2|}Qv_R!#6O*yR; z+V0O~oJaP4KpOySNT(Qb{syQL+Az0(I3H){;d2ieHKz*x8snc`e2^H+rT56g171F{ zCpITI6c7XQP|Bi8CiL?b<=j=SlrwSo*8D+JW3W>*`}+*9;Xz&+l#6)ZIqrsNJx48j20Gs=` zm8o|Q*8Py#k2OaW94zUYr(`=)v>AB}UZZ$Bj-=+y(5+Q%Cb%A)l8c3Yp}Y9ds!32@ z1Vc{uaS(?o0uTq}UXqVPKf!JP-235Z!S(D6IeWl5Ny10E`$-|XqO5cc&fRyk-Xszy z<7?_+n_2yGnf}|r7v&5hiOa>rh7R98?;tgBbzYWUVs;X4?(Y={n2D<7ue{f5DUe| zuQoFxgzYkbKJ>O{ty`)rSCXrG0%*FW@2FJqf} zrkD9?i811}1nT~^Z>CfdH`3$Fo`7@@-)eKziJo4`apnVXm1y}$tGF1V{?I=L^m>p>_QVRt=PT#cq-AmQGh@Jyn`+y+@!??t|Bs*Kw z!zrO#9IML*Ky|=2-l^*B6t*8d&%+>Q3- z4yiBv;EzhYKu?MQq{zA+@Z3x%~vfOPPq=qO>I%L^RIhUlGVDYzZM9sWJ<5fxBi3^p2l zlF{470JVGkBbY$XAn;?mL&iNUp=St*o5TgDP7#61X{`ETsVSu_>UcVK4rqa~ap}UP zX;z8~qg0U()Lyt{okDv>e*O6~@xQLpUPyzDVy*R)6@s$b$+JTpl?#Fm1z1kjphtqH zeDng~gU(NX+me(1|6;$-c6)UUr^y$wnoadLo>{==2r-a&36m2zk?Nt%RoX5hAMUn zlx5TTDeY)Nkw6HKHHsb1)1GJR2Bwz#7L*P2KrBcGv>lHcUg0VF5JmQcwX6Ayw1WYe zma2tSYh)#zUJ}05jikom2Im<6gF4`aCZaoRo#p};X&F%(%@OBSPYY_hL#pOUK}EtE zPp-Cpi7xi&8omylV5vV=h^Hv~HDtl0)ssP9EUyN$f{zCzA#iX(+;%xvlK_o_L@e>qE1| z$(6MKMHGn))KH1Ahz0)|Hv_0kn?t|u9PpqprM^5VBvl9*8FaV;9U}-q2VVjbayG`P zLMOHv>cMAswDMw`GDKh%3nvKveS-`U7jW2h+Zi7dWUNhE{(TiR3cdCxw{Yco*fI41 z4(ktSd5H0^Gwc_;9P*s7pMsKS;MZ82#?tv&GP^4thMM}Q??Oj=chC>+52F%w=u3hJ z0u;Cy*_f$@if3Rs{xD1!JV#&_EWQt9v0XdjeyPp?v=$anN=B*Lxg`-hSBe-`G&uT+ zHV;(98D1=A_HBq}AzK_Y_`toOcNYQVbleI??kQacBeg#n6Z)}#?M@EeW2uqMZfnR# zh5>mlta7Li&#CHNtbc%`fhoS1QgzD#8AN#fEj`10S|~OUxF4s7`Rt(&R){WToNYI# z`-tD_g|q^c@H8s}if!1DO5U>ay}(fbr0PN9HQ+7srF(a8Mu-`P;VMQ2bs@?Td?x)2 zEHIulFD)fJ1yG2sz*c|;|3w>&6rpK9H{XjQ0IzAqNAXu4%}^c_T@pAXFIx$1F)7&} znD|FaSl=>DPkHHKKZqd#!f8hUo9{FstC*tfn3!F6>cAkK$vSESteEk@y|vd~?}dre z7y|QQ3stXfiP>rewk&L<_M^U0JYO*J7F&~c) zGz*}X4x>$n-AYdj)x2aY0UyS}PfLA=s;C33hpW4~vv<6waYWq+NRwSKktbixG8d7d z;zAMrdvv3dg48E+DuCQ0dQnLZjD@;%EK$sV$Ip8yq9;ajohQx=S`0;z2t-$+okR%X zTrs!>XIn-{BJ4w3s`>#|!i;cYEC(F{$bf}OAGjyDDqWUhY}n#Vsh(vCr!Q2?yDBO= z911Zjb6gh=c6K24R<7@Iocb)XK2}I$D}A|T-jA0i+~=O7nDWOTLjFa=a_5*BrKhyR zWr=noEDR`Cm;){)1Gqt9N7v!5`BP9kP;Tda%d)fuFt7t8?BOWbaPuOiDk}mp;`Qo* z5h%pX)70`k)-eGx&?{{mwk->y00Fq*`f$s5aFV-=FiO_EPfxV7w84W5B!WoBW`1!Q z%lBn|($XLn1`~GmbFdT1%EJxJ09au6s;}<4>tQ5kitlgatjy#zHF&o+Z2hRrF77i8 zK?enkmkAljAkd*MrX%YGsk@R~N5m$Z`Sr(bB!o;w0NOI3z%9$X#h5r>s8Y|Xln`Vu z5Veg)0{PGk++{3&C-0j!sgugES>)00QW(EHjHk}%=9Ee}T(;l>uAO1G&iH&9OLsKp zn5;G42P^jy#hidfCCzm3OCh4hPM^9RsaEyP5&jE+uQ)Y&E}xB zA?^diL);|DB`DVHoTSX2-H&&ofGLoX$R!pI=l-%j5Hg4mF`eF9!j@<-8lq+RsYETaTzWIu=aEAI0HL48tk2PWbbTLT? zUiJHK&7g7}y0?VvtVbQZ4Dmjt&~#pC?x<>UhXE~5CaArc>GxH0qlIpw-uFRs@af`? zs36EQ+vKEZ$QoG#6;yFo9S4)eD~iESqw-4~E|jV7mb?xZDmZ-J9?8dRw3TC7{GI43 z!7{T8@yuR&zl2@?n26g&sE+lsq%(@^jb}-Bkg{$cE5H4xDPC;oUnuFB&lECcDUe`; zK+LngiSm>%aNjVS)?jIqvh|J{7A~jb&huxXO#@_R^ldT95xWx#^-JqxbOZN+@2!?K zpoN-{s_u2D_W)0y4^rZ2pCS~<83vs3Zzmi$i|1SxE~_RljCpstL|$gl^L93b)lri( zH|N*;8zmN#@LdyMA$NxioFgoy1iVCBMjT3TTxX&Fs$|Hhs1D<1VrYLtRNIp{v_o2u zAJ)Z%n$*Qbq>gIxlr)plG6h9WiZM^DzYLp;tabg?2r`lPz}&JdCO8;_`b?g!VrH@> zzwPmpIvM`qfyul19=MO6$Y002ts&%D*ms4NgcEcGcMeCyWsKxi8ost)E*gqU$5TudDp>%2Nv0 z{p1PVoXX1Oj5=XWU0kS0T}<&yp(HbLG{h-G+e+Oy8}AJkccBB5p8WxNs5a9)1@~&P zd%EQ_9d6}7JzjW(5gr*=fq+{R@ocD_BX3*Kf+hQ-ngMm50&B?e05t+; z)tq=U;5bqC6o2HR5*yq~(pL-jq87#UoH&m0}DXF+g9M zQm6~K0|yOpOX9vwAi}%+c3nL=2JQ69WT4@ zc7l#hR%Wp8_HcZ{VpkC^hr1>j6UxlYI|^w!YOp&*9MAN9W5xVYWMB)TJzUn$TBdV5 zycg7i7s625mhgmMz=RnYTE)^R8`#FpY0&J-lh!gvfh~Slh-S3bE`{{va_o>PYH|a_ z2PN`Er(0ews4$N)h|7CbS~41DWJ6HjGazYR%D@Ei}j9?n2;e7?-j5K=&`Vk8Dr87jJ5sVZi)~EgG(%FrXT(M zexvt;)fn-`WkNL_CK?@5QZ2$kUl2n!V}wo|2LZi>fRYnsUf)E-+Z@?U8V+7HGkh0k zplqPH4iO!Pl%)>jbf%NZD{@5SS);V7yd%4 zGVQy#%{0*L8)FA2`}V%*QGUD52!853=MrR!LSSwlUjU>ABTS6>Rpt2y3|+j;Esjt( z)WpEx*&lnMjq^m^KQ@je(u-e|s=n03DKm4bU8-R`74J9TerpR^OI+zcrW{{|1Dwia zzpzVVO@|jjOB(^}5b+5jiddn97f|aOSI+fcY*y1D;(Lo|IvvI8N>3bsrX53nmuSE$r#iE zf;TDbH0m(Rm?*hQ?c+(b;mMACsIib{FRcTg&WZc=B0;usRP~gp*BC0)Me7h4&VY#p zqZu|?TZ@gjY^1Vj21_mTyLP*fG0{<{ML?wS{D4l?& z%uJ^-Z(9>n;PHy~qTY#8w>3 z;&pNvS2YiE$LdO01uq!vdpZJ7Lp!;$COpG$g_=(k)XgQKebRX6_YuZ2u))UKw1p`) zs!W*)J0~8i-fpkKixm%j9#qv|J6eta<0;=0(S3Mm6|)ewuexmRNf`x})~ic(1M@aA z>5#K^j6GoYNK13Xqi(6gohE*uLk>3Ts`>zw+Z@WkP`0r78;=AXOj*O~%F1xnj0m+P zYoFdtb!200X`LMXZxhzg%2AA+ImkO%I#4uU*T$Wkco-u!KqhG^=;Hq#P!uA6Myr6x zdks@7cg4VnJ9}EetKAOdZ!kFEqpLsRzF4VZxpkK|7>nnEk4)XKmygk|gphIdNBfAa z>a}r(jT7kBgI7;$2subR;PU3Rei{2$8?x_{S4RI}W~%w^2U5*q;(P<=*v=``z!}rZ z3Z|Ls#WZS!M@ZFx#)LA^WuPOE%E(bUN${MQooe6G>Mo8P+x|oSD=JI$uWb#Gjn$1I zMAVE;qlMwL%+$}*i>0ANldr_dG)0@`HNQK;c`M+4CmZ#X<>QUxs0rMGp>J?!_gPZSl%wEYBdUt4H@PWR47m5r71CU4DPSONB5|GS&_eA!tIX4by87<8}A|Jd|qRwljfRv z-Ce#xn!O0r+%d3>n3P{@YZq0B1W+=lC}RWbCX#Api8gvnlhfq7jlk$QOu-D zzWFvk1y;w$>-S}u9s2$4liI$6fN5hA^IAt5(EJI8P5!QMRdXiDo!mmTcI}XVW<-jP z&9FdESAOL?>^nceQ^Agy&*ul9UHWqCojz3V93Ti5IrkzKiSFo;94&ZB#QMIy)1aPr z1A>}r-<@qmsaEhcuf7c{hCrzBN5YwD|7U#pS!$t0J0w*gu{6x~{4qUm@u!k3%Ao*K zg}{CV@n?Zx8EQ`<6YX)U5OtI_h;DL9!{|3YT#j%eTU4b96T8i8Z5$pC8LOH5>LW0T zC(^aiu+Q?2mZBX^!*O#OiFDdh~`+ zU=JOL@YL3P_mPy2E%3~5xA_^>h(-U4ei*9aWA!=3f~?wIzq7d248EAOw76i_qExQg zx2MrMP=QY=oTS}(b(* zvlm*|DzDCGn2LTLeWt#(NsJ@w1uw=5sp(5*GPU)VJZM%?d1lvrAJCUsgmw!^ORRjty~;EtY)e!Ob1m3ZM_`&RKQ>;@&-a* z^&d8m&=eXPc;GcuF;5$|LDi95{e>mOdFGdM^{o5GXk{a|Hfbr%B^xM@k#K-lG480j z0o3-`*vEumqhCaIoeBh(DP{oNYP%@IyFR==Ah|_&9>M}aWsoHDAJzEzDvmubT9yGn zfzr6G)q=>$`Z=w<2{>9>h2S(SD}yvWTrCcw;GL8rgTx0RzKVH*)xmq%?!24ii>QdL zIGLL-&_N`%%AvsY9b&A_D8uY|h%YvKOp8-6osJwXp;ILvI-`ASQzou({Jp9O){)e! zzute&OuMsFSvr(Gwn5Owr(=C{5zu1I=F^~BP{n+YQ?})?jgfpqL<6rc``1{Sbcv*& zc5f{}_d7G!TnEQ&u?XIu9j~8JhqkJObY}1P(QW)CT^G1YZPF?aR`>AaTD#Gm;@J&S zF^#4|+T1G?S_$Hw2v;^S~|*=nrb=DKGE7dcA7?oY0D>^qvoop|YlUhC!SHV~KkOfXnq zWxgWexXTy{Y@PYH@=OT}7E32xa8=Kl}2bAg3=(?B*gK&;04UFJ%eW z74eSI5ix>rLag+3dsfXgMNs}i*vn?*s4|OBWIcb@Tvp6z%H~P_)>b5%q_xYb>4{yy z2lcuc{eSZ328&OG*7#DYE{Lv^nYjfaYyvAx+RT$$n1M`s0C4gV)Kbe(eOlat*vlbL zHmq4=+YFg8duf;?@|CK>4}#=-`AOZ|p8xH?^u?GmkB^7gh`4RQvenu!c!Euxp~Cpg zk$NZrA?$jNgDPR}?(9B#oS+WcRP1oU!g_$sHdYq>7$!0pmoY(Z_7Zhr>#1< z)37|3b3Cuz{RRk!epV2J%(kslBv5(JD0Plw4KsgG@^ZdPR{Hf=R{76Z-#%-13RR~&a`6VJa%8bTO2G7$fx!$qkB!&y_Z-20oEpM*AD8F6&oyoc3q2-Izu$qgMZ7KEKH=-Y=p zvTm{LxIxFa$6zoabjp*TFpNT88W`bsvM9b7^YZugM-cz>2$Xwh^0Y%oqaOv#pfR^l zxGVmOqdL;CXj9~Z4CyqYZxDbu>ZW+gtBz*`gxxJL)8Zl~UCctFFFyn*M|N&{&C=mN z0E;-n?e>I@q3jyWP~Rwb**jaQ_yWilUYnno zZsUzX`3_TR=P-M~+Nn%KUmNoy0dy>$$PuuC@n31b0?&6j(|N=g^P+lHw5NOBG#o^E znIt$)K`jLX+J^1uAi~qq4^3XbD6c92!f}!0F~q2v#-cA}UnhhRl@8MI&c?0v>v99x zS4<-+!5!&eVo1jhvt`)UyT$>-0O4F)9PmUGmvT>Vy8B;f_wuR z$d6Ty7w^Dd_a&}$b!%zakH%7AHiX-@gk>5z>TLYrHfDEeG|dyt#+qi1h1HAtuqd*ReE%g~8sdYL>wZya>aa82PqYQ3(gcNk<9K{& znsz{~TpmyIeNu6<3v#-cB1MWbc`TDch)e5CJ~mRJJ+RJ*^0>ShN?P%^Zr`UmJNaoR zX*rp>HtaRcZbzHD`1Cuoh*TkHnGN>EOt)v?p2)TH-Y&aRp28B49iM?5p4mH2lIMtQ zVTKb6&dLD`9;5QD`WZy^+nj^xJvU{4if+;^a-?NjIOMwx2MwEBft63t(A9fNPed;` z*)+Yr+Otcwi?He)Ge&EzUmU0bM%pk)GymGa^QL#VhAfV2foP@9(ln1wrDjdG4qEK_JAt~N$mG}IA8A<+GR%GzwaZ5$uFej^uU|{(qo!4 z)kpMCq%c_7Y?pLK5t{s~szGozMQ#-A7HP}gHFWt{^micAkY5LBsDf7S*HN9SC%+lg z|MI5l6NEILotj}U$8;NjQ!DH(<%-lrLmC&AkYF!cthZaTqP@QFJ8Cg1eo{Lbc>WGW zY**E285lvU=qzY2za-hPuZ?GA$P~6Cm`YD5X_=l#3amL`aKbp|*ste%JF$iDIIMzt zIPWBk<*cfXQE%>r!CYC|mn0`wwFz(^OaEBeE#vSM+mZa=EI@CxDk0p6horjYa=_5@ z0XOp-iBN7>hKz?Em@CUgB(}<{ovg`D@s&C!6 zP8g~m4ao^K%q~OBj@Ncx=4|OCjJaAfY9V*kMnOgi zw+py)D*_`QYNTa4GJDvK%{TaI^WQ#iql);dee|kG-YiMY@M7;Q8ZB(zqxB%-PjSLJ z;P!q@X4e*p&82URwC}ZVT`6D3sZa&sdIwggR+_ek-1e1vVt&u}ke}=9c0D#jW;rm_ z9x-lhQV_j5)jbc9%apH62mBAZ5Shk5Zc|}7C$sTdhkwgjC|dcGdbP`Y=>hiMhA204EjnFkn^BI1Z;zUmX&B3n#JRi?Fr$pQbyfv zhUiS&i=3$g9a)i@gbmHAauMRV`8@9nkN4)?5YuMH$z}yOaYAms5X?wmHg2JR$ZDSnPZETGgOsN!NI?hsLK^rTVAJkq1VdDR9J!?ltdSgtOY z6ZepYf3e#)2l|2)B=Dr|7j&$s6UV)hDtdd&G<7_7$AMn1DSq*F;A?TPNdK3#uu@o0 zSH`>}$J)^~{7aS27BO|^2Brz-suDWwUXB8f+45QIYcaj)6T1o)_--%B{Gl=*wpQx( zD@gW~G(eNn|1L_2I*P#R&Tqj)b;SH%Z342tXaSa>wi}cdq-kiMC_^^s?wq(<%U`X@ z5>!{#V3;)iTG77@#Sy&;msWw+$L{FW>Q6KvWaxYSp&Ot4YoX|c3A9t4rqFX<(g#f$ z`m?Bxe9Es;TtU+j7kMoV4uSPgn+V2%u%wE5u6 zUc2rV6GFNO%5qS7{!I+(wx0AY;F5?oz70Apjxl5>hBghqn2-tbZ1~#8ROs`{0mIxf zAVNC0U4ON3yd{ae)v0OEp~W0}EbASkHp~Xm-i}+0I*hv@P;!&x51mv*>q3N5nA>n8 zIeNgKUtWxh}|%-pfDYXq)*OK-KB*dn3& z;D_Sj!5pAueM}UtYA8x1<3&+P7q+iPNJ;NH))XcAef+O10I#c@Zm>+s!4pC)vk`b1oL zpL|u)q;0f^Ba06NR%En|h|q(L7Kyk;6Bqdf4~$khLMJH9)@vqlpfRTnEI~i#k>m!h z*aA9{dcVlFB2VuH)v1x?;Shgl8E-6NXVI#EP@(f3ZR#Pgu6@{&2Ls`DUG_AHG7mAi zjm6`w2DBLHIt>=G_~~EcD~;8Mq&kJX_o@qj`|T4(ira+M-etx7=_hyKyXcm*@;GIx zHYFyz@NlJk?V`Xvn8b2M#IMwheA75cLWO|fWO0Ia3ET^(6bg3N#5|q5R2GI&f=hKQ z-n2~Gg=I-ViF9Fy`n#%kNx`!lU`wlXdtXeoOT7FlsKOmY`ncy6rZQ*h!kGc+Gmf9( zl+wC*9Z``Ql}e( zJ_o==d#rl}fXcB6*uEQWr+G-KCIkVFynMoH(27fg1uMcUFF&!f2C2D(UHtX;l)*SG zG~`TFbKA)O_+Bd{E_G=@_(RPMhFhmn)}s89x0kP))h!m<4ZC;@Jcx{WM~`1P)1tt! zgLn8JQYj`K=zz-dwHWsy{Ps2P-#ce6tCJoG~~2+Z8ZQA6}2P@kDz& z!i@~k)*{28JYW)+TnF_5%RKCu?Lr_0gem@m<|^0rn9{ha#ke(O;fNh8HbDpVqAn;R zzAm>lC)T+^g0H0<<|NybHu{67dCyTf8Lz_Y6%*zTY!W$QK;!9rTiYN4T(*K7 zmI{Od8&yD{_nS!4ljm=So8&G!Sdx`BtsWGM&CC{|1xfIxA^}{8%eh)x8Cs_S_3=y+ zvMu?oUnQkZ);}kpnO#TB3<%8Z(3pMk_d+sZz_v@jcV2+9fNw!1532E_^-qRn`Nb6_{z8&Q&F^s_OKc(H2X`J5+@wlxbii7{pnG82o*9Tw(v0e~L)cJxY8oA&x@!CdqU9 zP6r-b%o^kdCXGZ5NyDO77FGQtcg1(8TJ|I`J+TISU^C#jofd7#Wa2_ACA4UT9i`85 z5%As>q`rs{oQ3n4fsu)S_5?@wd_rERV1*zk8@D0?y^|XK(zV(yoxffxacD7x#!~fI z8u$9?qhHAO#Brv)c&%fmB?Oy~z##QN#nj26&&DeDh)4fVVY7$IvT&LUjnF%#USRUe z{yq5qJ^ozgJe&a@0vn#_^ezo_NW>mLA+O`b+K3I&gyPnbvU9a6wK7^m z-G!`%bE8+^?4fQWEJr!YEukJeJLwVSBR{d)&ZSGKW`snS$n{c4q~=Ae1=E$rZ(pO0 ze`&s!u!F)w+48@0L}x6vm&i*YZ9r8`6`A={%O$>Bo3Ttu&XSY(oXT{;uqLvQS+xwv@6yX_{=1NNpHQe$3?= z#r$LSw8C^Je@oh}@mV>mkPMy0429T?EAg}865)ah$PVL#~nqNmk0^g#?GZ?nNg(S_sm6npC5X}T^k>a)|&-r(oL65-c_{x zf);PDS@B_ebX!#`9dj(}<9bzlr3F2asZ@3v^!H7{h?*XhpPk%X^cg(TvP_Ed)Ka^c zz!<$4#}BO_Dxo!@7qX#uKiF?#j;vi26pysLvoDms$)`4Lo>b4rxK2ct<4Yg*jk=|T zf&u+?zjt0xts*cw<$w063*qe8BGIo5LemYr?$wffR+9VCOu6vcy0R(F5^htWT zl2!}TCvi30^3px<+3HkdNQ?k6uCq3oKAGWd#G^sv=(9m}@uqFT@&8?yIgS>wHM8lw z4P1g~t6PkT>|9r12Qa{qWYs|^h4Wh~R&~(YDn~@Fl;%%*$5BQ^yo3W|j^i12hg2(4 zNr!64PpWkn*P!V?n@)=r!TuY=_D1 zLO#)Bjp+paY-o664AZ|A)Rc)u>XUBr(}KQ$a-;KqWF|Lo$_&-1i%%p(buX53oLhxR z!O(CtU>)WvtSNO9Yvp_|{5Q5O| zt$PP{U#2NsR^ryY*)49Vx{g&wVoU+Z@?ZOKXe}z>?ZIgzibe}g{t>iFIHlom&X6Pq z!wRDuWT32EUbLhnpejjVBG11mws*ia)%Wtr;_w0#yTrQ1dc3c4TaVZ@`_pC^ixv3j zLEa*)DOXks;*^pN%l=R!#~4+Hx{`FE0w!>oi9l{%KpJqWw4$?6Rz2|P-=U%fBEu|F z9kz^Yj?-XU&17IhtM|s=e`3^gqT|MO2Q{wE$c;voAFlYv#WdZg1P0W#L(B%z##NY8;ADfHB zx;=2Ix)waU6@$TnJdD#F;GPRQvu`i-)8H@bSA}rmKX0XwQivk3pA&QiC`p7S`-~Wt z%ng(6p5OzWYG#+vbMPdng#6FyZ`G;@2*+dxFna`mAzoW>ExL%8u860O3z1zy^3RDz zpdnB$o-Q*@Lyc_`ok%2>vtW^M`X@r4SSi97?c9u4cf3P7y3P^j+{Y_QYIYC^V~qZ9 zQgC|y*1`fTl8;zK{00^<OQ}Zc z{(h2d{Yo!nE#Y$-Y{^C@QpirNsR3X?QH94*dSZuW*RG8GVNmLa*efT+CL05|XDL?EhW?|_$@PET??5ULr} zd^KAhL$$jkJ?2b|=gQV1LV zHwg$F$Glx! zjUzrLOvgk^W3MgT^8U;qKg3KsY!8mWivDm*Pj zwd5&ln|D>iqf-j7peJ@>4M3XQdPfBhG!3+Nu_?tm=R+Lbo)Tbl+&c7@sX9yBhpe&_ z470_^1|8^PSim+)><~$B=T`aC8vB=scmZYr!7!*e*?>RvZN~t*dpAja2i{=2zUQOi-|B#+I zsf4eN*SVGUc)|&IZdk86 z8|JP@?p4MG`s^OiYJJdgO2cZQC_5@~g&Z(NylBmW>!TU-#4|o`Kq?_`9GAqdOJ*hV z7j89Pp?~{CxzARS(vUb9X7Gm%J5v9M2J&w%v2Ssup7p;3h^CzZUn08@kVzy5iwGmwRQLn-X}3YcM`rZjXFk+j~$4a?jc z8COSHf$YQ7+<-q+=a@08>l35xmY$x&4!Bxp*;{(eu&3Pb#Gc%b#Zk+~RBEC4t4N#Z zB?bPyav@mp#7_Wp1fF;fG+RCI9BpzSEqCD#G%lv#k zE7SsykXb%2*)&f0q&8KGahB$!4E{vP1%+!br&v*bL30&99YILEjkdB`B}oXf2yf64 zI1EWhJYs$tst7a*0np1ne+9M^ph-epfd7#}7J)uOj-&yuoh3n60WK*Nr7i|8k@~JE z`~N@q|BY~@9^yB=1xY#{2!Y>IMlEO}(4)wOr1@aeWT{6@2R#iMM2sB|-4MNh-C=gaL%xlNFh3)WLTW<{xE z=Up0LhX$kX&xa8{Irgx1(wsYIM#2lWi@MUa z1YXK6&6H<-yLvNqCf?z6Hl{1U?;31! zwbN62#(16Q9$NXlLp0=U<=unlbm98FCv!{1W(?}PzR%X1OH5U=pLNIS=E?ri*Vlx) zskj8!4Hv{6?xPNi&2J$t3UN$np{~kHi1ra?XFS6%S1^DjuJ;aJiY3X>ha;%<-a3$j z+lY1WKhL}j zRHu9TdqQE2EAE_2bY)VVG*l5FR_3S-@HFWu@OL%C(BS&-9({35KWwvpi)`{6&x=j! zMwt^ppMA|Zqe_MOGP>&Kl<6Jp@tSR_@3Z)&_BrM*M`i7Qhh++F^)@^9oZ=el5%7-8wAC<*FkFqpy#$g`&reo>A2QM@Q>Smmj7-^a4pYVL+ik#GY z9X07pi4PotBK&6TagFTlIk>SJJKBE`R2a= zRxcPEZx_GeP`$`XuP+OBqRpLB(rM}l7JiopMH&6c11-`rVdT6kb#IXz$t@$Jih2?G zzpZ&W;oQsK)<-z%SDkT(oT>Io8$BP?ozIX?xsS@zyhtWOD8G&_GPT)iVEkhhqyG?9 z?~G?Ah~k?$#}zpkpL{!IF&(s}0X=IC$Dsv9C$#y&fFXIJxl!UaD}aQK6?kGg!}IMHI)KCI@0`ja^%rdp70SvIX{&!*eHG=({?5Cl~rSi3f3z!RjD80fx; zJIy;=tqu4k^z@Mz%Hp$en#B)~hDDZP%~m)o=q)OUXbb%(7E8~1e$#&PVr!lfejctx z40Ki2)5dQC+GnjqBaZb(#u;d{HXE0-0`&QFO27viH}rsdN*I?RDjtBS5TNqc+nYmf zkJv%G)sH8k^tY{%k%e;23cM<}LAuPXEcF9?O zl8vn6At#gW)FHv$TyIyUbfXT}U9$uo8IO6s(YIw|+c1~GA48mTc(V?3YKu5F>DQo( zP{{3GP;jjJ4(k?{7PE4CMd)7Djgj!!xrj)1)Lkq?QipsI@jJC66gx&V#BKNH4`9X`_@Q*uk!s zNz@y-opf;}Q=p`DQz~ZM2je$=2{HW5(-F$^YbT?=P#IX2S1h(a5ND@5=iA;Tg*q4A zef65k`E$Uyn0*%QBP%n!+2cn<6{`7Z7(MDzQw7#=2)x=6^-yF_Q7m|>OYr^L8_Zcr z&iOnw2}C6&d(|_h>0y|(MOLx-~|XSjXTUa zDuhH^@f)5!p*n6O+6lmfGUfSk?>c93gh>~ZB+oE6<}BhRN7UgqQw6k9>aWa+d`t!v z_hABCCY@GcS6Q*Y_?-I))`{d|BiPEbIA}W_HgniCpUWEeC2CExD)|7G={uWD!27v` zeNe2rF?Dc)&&NL25gX#Yqu7HI&XBV3(-sL64$}F3mhEQA73Ux}#4Xz1g6|#RznHUy1$p^Ho0q zW$KMhvP`9vtArU=`9=ETV9LS@c;5EHF_8=woAiY9%ls4XFbg4sT^@p{P*+3upIY~} ztb1v#SB{o2HAyLs^^`1kQDed6g%t?At4rTfPewPj&n3(Xef2cS+;Zz`qLzLE#kRF= zhwHPC<-x_Jf`o{?u}rpx>2pl~$46F*#)62d0#k+PJPRf%(@>uifHqMc6zf%|FfAFT zzf(1*VE1ETcgnVuvft`^BfJt^Qq*1nR1f)ixwP za1c-BpuW=ZH_M<41PMV%m#f}{OQZVl9Gr+-Cfl{<-}Umci^Ay;O}<(9YO+vjQr^i& z7F9nu*ietW>$`TTm8LPYsOX@ra7g=fhDIZej~R-D(P#C|d9~?^en*Qz2DzqAkp8vi zg@*vXBp~XA+)GnkI=-Zj`RMaNwV|>QgzRk6u>d{~VMsp9)Jeg0|Gg-j?+BFwb)I6k zP+S&DON!r@0O*qXx4_8fC9`(l!b(v_48eLD)IQ72(uM`!7>_6ebTyBwDM}_tvV`h- z+1fvf2kI1fW3{lyGeZ%5#?$ipQc$!B4}gEcT}s38D_Onw#ljdk9&0G^QFvCK@ic@h z$1eFT<}{U)NJgR3NyGF$U+fK^*KU|GEQvfn3Jc4C+WRec1fk1^q3keP=RWn2;*JC1BF#Wmv<#rmAA6KG{hQ z(cv>N9Mdfuru}YAFlD|kNF25rK@C5p$ro?eg{jkbT0t)USl_kRR3|G1=7;DOF(@a1 zXN4CrFy{T*f;U~{2u>K0NT8r}=dv$ptrJ~hT%mrgH^Llam15jlh(QB<5HYq)IIZ#8 Sc>~|%0FV}!7poRA4ElfdxPF`f literal 0 HcmV?d00001 diff --git a/static/mail_banner.jpeg b/static/mail_banner.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..fac27cd7c0a4787b20a60369b90ee7e3764fdcb5 GIT binary patch literal 15547 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 literal 0 HcmV?d00001 diff --git a/templates/about.html b/templates/about.html index 2fb4dcc..37d5535 100644 --- a/templates/about.html +++ b/templates/about.html @@ -4,42 +4,50 @@ {% block content %}

Over ons

-
-
- matthias -
- Matthias Theys
Ik ben Matthias, 19 jaar en vindt het leuk om mij bezig te houden met auto's en en Netwerken. -
-
-
-
-
- Mohammed -
- Mohammed Hamioui
Ik ben Mohammed, 19 jaar en heb passie voor technologie en cyber security. Verantwoordelijk voor de business kaart layout en het front-end gedeelte van de website
-
-
-
+
+
+ matthias +
+ Matthias Theys
Ik ben Matthias, 19 jaar en vindt het leuk om mij + bezig te houden met auto's en en Netwerken. +
+
+
+
+
+ Mohammed +
+ Mohammed Hamioui
Ik ben Mohammed, 19 jaar en heb passie voor + technologie en cyber security. Verantwoordelijk voor de business kaart layout en het front-end + gedeelte van de website
+
+
+
-
+
-
-
- Laurens -
- Laurens Karakolev
- Ik ben Laurens, 19 jaar oud en ga volgend jaar waarschijnlijk App & AI verderstuderen. -
-
-
-
-
- kaïs -
- kaïs Boutaleb
- Ik ben kaïs, 21 jaar en fan van alles waar technologie in zit. Ik ben zeer geïnteresseerd in cybersecurity en AI. maar ook andere zaken buiten IT zoals talen en muziek. Hier ben ik verantwoordelijk voor de backend van de website -
-
-
-
+
+
+ Laurens +
+ Laurens Karakolev
+ Ik ben Laurens, 19 jaar oud en ga volgend jaar waarschijnlijk App & AI verderstuderen. +
+
+
+
+
+ kaïs +
+ kaïs Boutaleb
+ Ik ben kaïs, 21 jaar en fan van alles waar technologie in zit. Ik ben zeer geïnteresseerd in + cybersecurity en AI. maar ook andere zaken buiten IT zoals talen en muziek. Hier ben ik + verantwoordelijk voor de backend van de website +
+
+
+ {% endblock %} diff --git a/templates/mail.html b/templates/mail.html new file mode 100644 index 0000000..9c2f432 --- /dev/null +++ b/templates/mail.html @@ -0,0 +1,498 @@ + + + + + + + + + + + + + + + + + + + +
+ + +
+
+
+
+
+ + + + + + + +
+ + + + + + + +
+   +
+ +
+ + + + + + + + +
+
+
+
+
+ + +
+
+
+
+
+ + + + + + + + +
+
+
+
+
+ + +
+
+
+
+
+ + + + + + +
+ + + + + +
+ + Banner + +
+ +
+ + + + + + + + + + + + + + + +
+ + + + + +
+ + Banner + +
+ +
+
+
+
+
+
+ + +
+
+
+
+
+ + + + + + + +
+ + +
+
+
+
+
+ + + + + + +
+ + + +
+
+
+
+
+
+ + +
+
+
+
+
+ + + + + + +
+ +

+ Vragen?
mail@zappsters.com +

+ +
+ +
+
+
+
+
+
+
+
+
+
+ + + + + + + +
+ +
+
+ + + + + + +
+ + Github + +
+ +
+
+ +
+ + + + + + + +
+ +
+

©2022 Zappsters | Thomas more Geel +

+
+ +
+
+
+
+
+
+
+ + + diff --git a/templates/send_wish.html b/templates/send_wish.html index db1fcd0..752dabf 100644 --- a/templates/send_wish.html +++ b/templates/send_wish.html @@ -17,15 +17,15 @@

Stuur uw boodschap

style="border-radius: 2vh;">
- +
- +
-
@@ -67,11 +67,11 @@

Stuur uw boodschap