From 1fa52b84c1f25775a5a0609b7046791e58fca3f8 Mon Sep 17 00:00:00 2001 From: Bart van der Braak <bartvdbraak@gmail.com> Date: Tue, 23 Jan 2024 18:10:45 +0100 Subject: [PATCH] chore: added project content --- .../projects/azure-geocode-mapping-logo.png | Bin 0 -> 13033 bytes src/lib/assets/projects/omnidash-logo.png | Bin 0 -> 11146 bytes .../assets/projects/slayerweightcalc-logo.png | Bin 0 -> 8222 bytes .../site/projects/projects-item.svelte | 18 ++-- src/lib/content/projects.ts | 90 ++++++++++++++++-- 5 files changed, 88 insertions(+), 20 deletions(-) create mode 100644 src/lib/assets/projects/azure-geocode-mapping-logo.png create mode 100644 src/lib/assets/projects/omnidash-logo.png create mode 100644 src/lib/assets/projects/slayerweightcalc-logo.png diff --git a/src/lib/assets/projects/azure-geocode-mapping-logo.png b/src/lib/assets/projects/azure-geocode-mapping-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..848d6e341c7810dba27c99707092b8c3ab47df4d GIT binary patch literal 13033 zcmeHuS6q`z_wFP_jiOTAbd@eenxKFnkgXzBQ2{{#L21%^laiof0VMPyRRyFdRZ64; z-O`()Nbe=mn-C!F4Ey_^b9*k%-T8eNc~jmgYdx#Xyz7~~xPDFR$RXZC0DvPp+Lvzv zfP^2B0KFf+{qg^~3*Qd9Yv1+)2$jvf7a|GmYXX1d@zyl;HgvP|_Pgh43;g{2WE@<b zysYoJ+se3k+NUmG-~~Vc=v@BW$Ukjq1RG?&8BC&(NiB&k&ejK>`xcW&pII38G$r$k zI+j=+mwNnJ=qpv*`Oc?-%G4sl)riMK(?Y!LW@zV9z6bk6kLWVFYF`qvXG-Qjcu>%n zdg<|J)&pWgqYJ!&<WiR953y1j&h3dg8w70R6$Rn;^_E1t*$(n1Rk(~8sbwjlLZYbH zM|CCFFaz*JRFaGW05iu1l|Vg*7Xb|X4iG}{f@Vd)TR1fQh`bChtO5`X9Qbe3{~H2l zUk@J>4@<OlOTTgKL~Y0P%UQZ$TzBGGtsa|J(Yd@<vfd!6Xyg>l-O+MsYbb-!`PMc~ z5qD;_&dKEJx@BL;*Y|EQt+VZ$X0d%buLKFHe~Pjh2J2XP2ZQ6ysbl>7l-6f=gQrai zq@$5yUS!Yid&BRE4sMr@lNn-hAEM71d$x)i()-eOHsq|INo~1lacWQrSGnqMeY(xW z&D^aNw0zSrD0R9|@6{=S6ovl)IWWLlk~`3($8h%HgVuJIx;te$Ork~!2=|qj4Dz!X z-^^^yX6ePo12`#i-N5Wkr;Xel4Q}GzU}H|(&T;0J(E*q2Y?2%4(+Ih3dq0<m4zr|e zemjbmaee{V?(So3{IS0ELuL*yqU4YqM*E4xFsX(WnXV1aUgatk29h0QUiG2r9$uZK z4DWmVn!x6%MeL`JkBO|9io93gLEQv{a5h#=a85~HSj@EFKp2$qcLqO8xudRy2Daq7 zr`?K#0p0++iEeHRC<!IjM6zOx^TI(jDL1%JV#_U+8ae!1d4I$B*oStDg%$tVFZNB7 z3*dS!iC5h(p=0^XPEPDP{^z+2MD&z{pQYbsS8)kVIEI}ceCT7eucXX*=o|~b)8Bj+ zlwGR-r$bp7#5a(6U!~sv!7EX3)HdX+#}9b7sTQvFzB;>Xl~@toH%wWZPnEb{QJ=*c z#D<&qHw%O5vW{zS+NT#ZC>^55*?{#T;i+nI?2cO7$u*V{-*zrA5bC`+841{hOCj#f zV`)pJ#8Z8@g=Hplj^IK`Jx8mmXS`C?zp^3RUu8HvaFuU2A6A;IG^2wSbvKj09G32P zp|ie-Dgb@o?jw|X*}3@}E@`5NaJ9`oI&fI`Lm5uh8<I*R!ZR|<dfLFIxhL0uWHKGw zy@d~tZ-H1fDQSrAjOp=?G~M0>+}!0ST)TJ>S?KO;^)Z{$;@0%}Bz9gf@L48evLfP# zr8PxMQ^y=!@Ln3#S<x>TIK9J=$+vo29G?WP_?svFtLKX6WpH@S`yZ~Ng3|4iRUKb6 zhPRTwftC>c)UP}UqsXuO8q}2P15&dOoa?xfi32T>1V6$HRuE5IEnJ<fmt@8*ChI)` zk{2hDS({BtjDc(xkqe-VNp(`(b!RwN@BF#v<IbNJne}Yzuk<|n;*#@;Nnj<QX8KOe zw((tFOn`_axZ_4$;g8+5l<sGZI{^k5qa3$uLpBwdm4z_9fxZ(K`O1}nA{H@2^lZQ+ zpkSw469h5Am(t#5$8rFrMN8R@Sx06ZHDaIidSY)H8-`=><0`YBTGX%PpwAu=!K0av znQ@3yK8+`fEvWPRE3xsH-yp}A`B<FKHRjJB!F}%j$&uo91sG4XhDqnYQm$|AEN*ee zvLoca)VEx4Df2OLzXGPD&LF<^yb<4>qgRP$s+$9&tzyJc9#tJM-I=df`oWTRK@d0H zDn<R&EL|_85IaKOPfsJq0Pb0jL;}8nLzURIh4+X_-m@XYqo@$O;=y;{=Ky94uR1+i zw!71=eC~NTdHPFYPK>?Ga(m>o^dbuLd4rQ6J0Cvc?*Oc2;QSB&q3hY|9)K1m`01?e z_IAI65H$vP-qUL{{}9WW{@|V{IFwn{AAG}(-`astTyvkx9wn#9ehiR@KVtK1>bbnZ zbkisEYv?Q?8%}zj@w%p%8SWtN3+aRfI80ZQR=Nn@NuNi!|C5^OUj7n=BdN9dwFpBq z-M&Cr&B(b~dnJRW7V-j!>j0Z%zZ9n>t-G}SLmJm~?n6LRN6lSb(@_m28;jw#&<r}T z&uIKKlNL3$_POR+N(>P9AN_F%H=Ne9T)!M{F=j()&SM3=tl;q&^Gf*4f{6xppDHqv zF#M%hGbQG8rYh2^Wg}4;I@1$yB@E={f)=&<)3L?Gm#hukEmBm+&0`kBT44G}!a1;? zzBt$7ViC^TpaX~G0c9N<zB)oEcU?u9TBUP;-zdynoK!~&xaCn1(Id^(@llu2<6qG@ z$)mVh(n>7MMK@qWSq=%;grFNYm{k$cN=D}q(R^#(B9=*mn=X~uzXSjhjeD<;{<`26 z7;;7xdE9>L3*~0a5%Xb_5(`^;8ciES%Dp>u7zT5WC>xUdGC*;F$JR`;M_7?iSi4cj z9WF8(*ymLg3tEn{BBL*Zv~7=qc^GQHW7&|e+oY&s)n5FF>vE*MpfVlgDArrrJvxNV zLgPx91SmT-!@GTBTh!h~G&1`3wt*)}9hqg-Wy}khHcCG739<?yVRSNJhC3s8J!elF z(TM%mHd$yp0^keu^3so~=ujLhKsCr^YAlEAFKApv8-=}mNq+Y;v&L)8Jwh5fJn@Ja zD9hA1k;;Zd2mmxL#`mbj6|~4Ly9tv*DL-T4Wne=x|2g&LFm4f}Qc3s8w=gKBnMlBy zxdTYi-)&2OVR!dk6gXJMOibnESe`xzkXFg1aVyq6F^vnHtVrW$aEBFs5Vv@(UhiZv z;}7%IMYQC%rY4Hv$)S;0Uc8wp^u{wttFs7!xb|s>O{bAZBTq0Dd!l?tVSL}~EkD78 z_4oT@C8OTfNV`pl!5eQ*Dh&ol>dj^(9z*ux;P}@>LD^#qPd21&S?StmqvMp3o5SMi zHhaO*jKlQXbAp28^h$i2p5z$S(5V%C$42SIWigfVGyQ%4Ir;=xuo3NyitaNk8l zQy3c3WFKZ<jeoW><xl|OK8T1u;kDDC$JAFU%zeP%ta@@RW#rU3PC8sO2t;-u%7Pol z!ttNN@tdT8=a`aDN)YYClZIsI2$KFUGXb|<Bxre=APmk{ck9+fuxf)n2=SnWPG}do zIR2L{XNc-rWAMKsMDv}t2Zz;**^nGjdjl%Km9<9y3i_|P7frJ7rZvrB4Ez-ZXD-!6 z<3d?Z8KhD^jg8PQ3}M3rAv`xx4GkoGjmQV$X4t|2+hO6VRjvRJ=x54TU^0+A4a%$? zyx`bR;Mls{&|{xqGQ@a^X`Z$+%Y2`n>p&T%&^Rh1u>>w+k*s;F5P|Da(1rJ%K&FIQ zKK5H~r#c^|<2@OS468^Weq0!MS|`9f-kq7)yb$6?X8zlikpQ)udzJxO_;`~*OOy{m zDw!2x5mvP*3ZC)^gF_^vV1%4pBB5MB@cKhkgSN&W6lV0B@_x+LTCR+VQH9{@Wos?T zTeFk($7EDc7*{w^nqlvLjBm>icERhq|GUTagGeik&8Y4AX6D0*DdSS%7HKLWf`W!_ zc$V@8gT$O_opESIhq4QRE4#17!1_~NxTrU$NPHJu^|#j2?HTzVUATJ?Cq%r0%yPdL z3Vp6a^rBT78xW>_I|c$S<*?vtOHah)OG^kwTWoj!6rW*0qYHsU8A(9gkv~qcaY1H) z_V%(fL+2uh{Bz0RKk2E=TD4=c(x9&7jgTKIC2VXzC%u+%4D9RH1Jkf4cdz;>7tf1U zhyTw!9Bd$ECEej!iitkjhASlH+)-6OWY&1VLEP{LJ9s<NtSy9UI*gF(VNu)5RevMo z1mu@i<)1c8y~O8=5X};UUouc$V*kq3q9%)w8w~DfFtt1Bkiv$17y7@AQBVt7ETn#` z4!^g7`cJ);NLp6pdkCGwy{!05IgMlI96Jc};++cC=YU8ENJsQplm#jX%KZoLcPBwz zY#%!i+oA5Wv}VKeB{!q-Lnm8*(brf^YV$l+H%0LlIsJWYK07+36pbt3uL~;@`!U7Y zgHKSH;#McEpkZ;c=0A(p*OcGEm7P*u)G}4URaZK5;Np!po(5UGghh=upTca$?PUUL zcHMN1g}-jsY>4RFd5oX0P%Jp8^=*E!<xam|_~s>v^6j@apE`d^&1obA3N^~_VB^!4 zh<|wRmvh}Ey5Hz?;*#bqUn0I@15*v=b(w)%u~C-{Pj#PD@<rv$e(JdI^6*cASS5C; z&5$Lu;|p;@>!g;M=(&tP{8myvsrdvgEqkmtWtXD=%W(N1$7#idI!}^`YDn<*65$Ev zwv-(CYO$sNK0$YORD<%JALon7vYB<+Q{Unxm;|jB(Yg!r3S)nM8#Ahd{}I19z9x!) zS06IdhyAPh`>iBSJPGBI=GvNy-;NpJAE~F;�c%hWoIe>uTvtf~#HTI@TX)L#_Oe z-tU{OcOdUG@uoS`FJ83bMqv(4KLfHy;vZYg&ZeGJ)j?lSsa|b1v*`L_d1oZ{72dyl z5ic4v!7s^&B&txm%#R&F=FG0|D;>xk;gS+TJ%s@;ehj&J;y`z@ipgY7sC;#Y^yr^{ z<FWqwiMHkgeki<5z=ev5wqk~Oc)BpXXF)MwgH7WC#d>JvLqQleZzfPBkng}HOjX+e zU9UA~U+D|h76tfNh5r7kE1)h`h5k^pZ_2~q<4spT?cK39wPKw4tX(R7qQDJ4kHo}F zlAj>|B$|^?^iD)M-u?5eJjlSlI6JDS{nmw$k8bn2ej|cBL)aJ9A2GA3A-;bXw9h!n zKC})jA)agC!O7nl8Thu5)NMXUALaQmTkY?V_0wGUd<0f!pn;8XL&JNy?8Jwq*V6PI zUSIDmslgpnifrJ~&KMqhlx|1PejVAx`tfzEZZs?45ZLHx$T_i+ekNE(5a(!fv#KK% zzx#QBe`xeh@4H>C)9`kmN=U%;H}jNZ$egMMh*3E+@23z&qF^4Y0Fcy{L3O1qm<!`1 zt;$?eUg4WoI_pDDGc&a11xsGPrL;^CT+M~AKdi)*WnIL9Jj?*AKRJ@et5aDRCsNkI zhNX5bE>u;Ptl}@;L$CH=S_z!mhlEgQ+@Z=`ue&Qt-HP513cBJJeRbRt0<Sgb)QXl5 z;Y(LDE1l8$1xx1*W}O*1vv;i4uLjP__V1Pl97&1~RGA6|+PL2IBWi`2P7nHwRQnpE z0LPqkimL`^X29|hGa~n&#$an{uhQ|UrHTrzu5*=)ST70N8`L&FF7w@lOnTQ!hZH%e zi5(Fwkix26K~&fb_Ocni{};z=v)ozhwLhU@*mKMbWrzOn0~;|W{BBrA%v-POM*mh# z&yhP`@3(rDWZo0AhU0inqcBL@yS&;y+dp4zm`^?jGpmWMt}6?fij<}gmbLgWqWA35 z+#;=|sMzo4udVeStGV>TYP)7W5@UIDCZokv0I*91UKwA?x9>hP^&E(Pm(C{?W9JD< z&UF#ObosUnHf2&v>G>41NYx>%&h}Y_p=#2jU3_BTsdo_|59y>r+AMmg*vn>+?w<jz zFDEnVxwAy08QPCkZ^}e%pVpp@Y|!x4f4?*piJ8-nA8JyX4c-=pGtUWtf|mKNry0iG z!P&GW2U5pG-F~?%pRPJCuV_pS<GsFGewVjL(MxHI!ognppLz%A%|m}FxD0!JeuOn# zevu}L%sTX8F0HR-eh2SOEp}KT(ONtTK3Ty2netG3Y$F@?QOD4afz-jx%gyJtC?s~| zROf=!GFIR2MNp<4GArEnVpi!}>|plBS3M^2E;D(e+H&Rv$}uVGi^L<LFXHZ3GCZbl z{^-^)#d;A)9+GGru(``?`jfukKunwJ`Ow6Mi0WG^nyq&0A@Gl_o21Pb3ms8a3A|Yx zQb>FMR{fd6qp5#7S4NF3HA;s!xTTQ-0!}JP<f4c5rBnSMB}gedOR-*;aaF_KHRP+W zXfHl=9$zyl?cfRRih8Bf#S>cUH##j$*P6-r`hX1}{tZb|x5WT`VUCzFRojQj`!wUY zRX^yJ<VJWbOvl-Dp}i}KD|xf4xz^U=QMVEU553g{C@HTi<84uvR~eh;%fhUYt^}pP zv9AM}{kvF?ulyy8JfY;xJF{1x_0tXT0W{ez;x^UO!1^p2Jh)0)AJqt?w?$e1c$XnY zx;te&4_(}348<ApSIbk(+4Cyh=}G&q8FY%ZsXhKK0OTI{*k9_-#A0<Q#ks`Jz#~RS zR($hs2cIL!jIE!)wmJ1=FIi;YWn80ljPfo^Jq#cAxlJI+@uEOf+<9SlpJv&2L<JLb z;ppq5(gEdBy&ZQ;XUdPSy?wB;<-Mi2xO=U+WAqiFDYW5tvbt3H*Y|}lQp9y-`H*!# z-fiSwYF$fgbyMODNz2toUl_O-Czd95msk8(2V?8=*p5b<+Kc;aKsmny?khhM86AG4 z<b_-3wNM;+X6tsUc6%ZwrOh`d?}glt)!n!yg@<BYG0MXJ^1-g8_`su$Lg4zxne_HR z#-A{l&NA0V%`ax%_pYfuuaY}(x{|t2i^{F^ubj1Xo90OC3a^0Tm}3eNU6SPE;hMne zXPKb8chlz$bLub5`Q$%|(^Xo{L0c=Ot8br_362|{O1JM>>e{jt2;a5;&us2(xBO&Q zcK(oyT{K7?m%OH-L-hPkEF5?^<>fY7_R5eZp8E7ex>`~_-J23=9Y^A}M|ob*?cigA zYPzH-Ao-V+?VBbDo_B?hi;Z|X70tc0XN)FxyMM)ppK&v=U&$%f81a}bZLOs|_`(Xf z6$V(917Z8&``#Vi?Y-tdhBPST%HgIj`0#{-q4uh|{HgLL=2FRM6lgM+K|P#RQGI0C z3%&nfU9c2YJKh|f_Br^n<Z%SfBko`*-X~3M3N3iO*457`<6EHfmNaZr0(0s@Y8!M6 zaU__M;X~SYDyt+#gk8%U%7MewmAehB+e=aNcnPe@ib;O_AEZz~*De6MVS;SX`>FRl zbzUzc!pc60I%W8O^xKlwu$$1@Y<tqM!6euaiV+n6*F95Mt6%RmWa45Dc&_@$Rj2b9 z{$zS^JDw3A#{aqHX~WO@Ii{6!tkYYTY-kXFRS`9+RPI)UJTK&)Ka@TDLJMEAD*Ug% z{UXvYHvg>Wshzu?!V1J|ST8orjGS`I@c#HLjK4*J8%a}`h5IMti7m@~G%$*EMt7tQ zX!I43?!R`8Gu;l2ORjoXUPZT;_12%uJa6Lq1apuT<SDnSCXwl_%t}5TX*}H((-~~P z69YH0g`e4ttxuWV-VPPwc#7#gjy4iO0*=#s$O9}*B%OyP!y6KbttZpGr@t*?yT7oc zmFc6YC2#%aUtf0F+X`n*ei$vSZO(R?$<QjjA5m4h%4GfaUUSq*f|wn}fc?KU>;EF~ zUj+XDMqujmWV;!!l7S5QEY7inP-<J&E-OpE5Y9ocs3)x92k1A}&^V8KndhwsQx4R7 zk1Y66H^Yl0W-^XMU*;oK{Z#kcNk7eUQmxFS$G%N1^FD#9KznxTr2kw`f}gj=7MC+4 z&lJ_LogWuqhBa8C%UV=Lu!8W99wB;53Q1!G&$bk;Ey4nu4x?z;OJ$$WvZLy-pSy-2 zPFE8|5>-;rh;b2lW`@OSv2Nv024&eY)JwgDz@dqH@)ps1E_3+1&%mKdtkGd)miN5P zC?{FJpOLfR%Z_Zo4SyM{F<5uJz5T2puJFS<Hx)r#_}?Httv3bM6<5oc8QDC|TRJb) zdNp(tnL{651T&f-KEg==<+!DRK??|^gfSvci*^1UB7K&kHbeP`V(J|zN_~tog19mP z(AH@zmfsophQ?x^bP9F7Lb1y&KX`s!wkYlFTWqGuN<RI&M=ycr-?oxrh1cXS0%Q9r zYU1EK&JYjVr4D*9=Q10k#oWi$QME_OhcUaWA%eQjj>6>dToAUR@K?JY5X60j<wxn$ zPWDZdj>6dj`r1rE+-)<rF`g%&=>+0>{{AAiZ-Q({?RZ$54W3P#*Wgg+MjE0Kk$lLk z_1+Y-)T8I2(uo$^VjVx#2^vD@nHdgkPjG_|DW_H#IyA9^h)4;f!1?)(Ub|<Lw52{5 zVbt|A^32$Uwu1^TndW$IEvj{wg^!HW!czKWv{i@5De%Vh?(%t~=PG_q<&W1!xA3lJ zjj2apn=78J)DQ8zw@`3UVd*NNd^PDxx}Hm2UEG#yKI5@*?Hubht@}t!u3x)aSor-{ zGdC%b3a5^bM*>}mz^@u_Wd~2^TlBp5?3Tcki#Xv&Rei_BHn9ynh_u+RC|o0b!L$4I z#opFBX_cQ<MB1lJRwTF5p6`YD-Gid86b_Jjy^87Cg>gT9-}_C5Tm)|ul7V~ijxm9B zePVvvG2-aSp`p=_w!QoB@-}d{rp*)mj5{f(>Theh^%%PBzi9Pk)Mb;{4fpc8uw-6j zZ?}^4$Cp5g0p&Ko=v{xQu70aXV{6E7KfYFM7GO8_wN9o&uPdM4rqph`bZ+J3`I4pB zF;XPB5}ypB+eHI6zcP4s^b5QK%)Cqd7?=87p?`er_%c>0|8VRpZZum=;(h;tUxfS* zD-SxMuwt=kAbNUzX(r=RPjYQnPUWk|b%FejyJuvNj6c}}mR`)<S6o)^I5vHkX8g9R zb7&WTC9tY@3~ouqqw~P?j(Usb^CC&zvH7$*iIDNvPL`0h+V7G!cC*Ig-cZ}zT6Ueh zlTy)q@s;vv$IR8`38o<#0^I0D$CrTWg_?3kYOCdG@&)#yYd43UJXWI|3@x$c3Q-MQ zS65IIB0bjtKJpct{Jl`r7l(k3rzRe5G>zX}E2=!Wa$=Nn{RiIP0fvhqjS-NLes1Qf zg7pN8VR}kcqgL=rl%D!$J*H4yb3je~WT|G?GwRv>HoQYVpEf>S&%|O$xzvR=D(zrn zU~iw7R<|zZQ(6tp4jto7-tPJgrMwOIt_>nG;FkLOYwOsJFTKA3V0YX*3xI_WMtK)~ zmVYU()m_>{3t^8cXnER{*qY8v{HSZ6zLu-pi=XICsg+ir4D>ViJZ6tV##Dpo>~4*7 zWHT8x!{q>@{M)CTG|ukyhdwI~4pl%NtlY~=O`7E5G+u)dC-?v%uC7<MHRw00Rx%Zv zsw{kchMfm^?mT(1_D-bEcsbvwRE1E{TTdRP>!Y1*w4zxD!p6EYDh;|;)~4cr>inA3 z+TDWH@6#y=fw``(u|?mA5X+ke1k%kJdBN4?lt6yhU3J+bMkPmHO2?^ksg<;KXV7!Y zSFN3Y>Nx(0v93LPJ&c_X#Qq6e=^79!=My<0O*Ti$wGR)n7^rxTuOx=x6_6Y@dr8Gj zb~iP_{;U0Rf>#0m)cwTPA+b8zR_F<?u?C({$(Y|z@0twiOMcTuB|Q~WSh#!BW$O|* znhx=mANtlWzhf3LXwqok?QhtXPPxwRW9MjSurm5bRO$WTaDU5Irqv4;ptDQO9Sgd1 zvR7~SooBbGKzT=9o&C-3P@>uHaag_)_xj2hZ<APytefph{gZXvuC*?BeaQZ#wq<Q3 z#MYPtA)w=@M&n})+aKeV+VIWsAdrqltF#WDBC5Kqn7qm$MK&l8eyhH>Ud35aJg;Ft zn>u-ymUkFB-|g<0x;ec>k1GQA3QhqLht4>!QF`IKE}DjQIZI8X(oso?%$cIC44r56 znbUo&NNb7mRgI61WkiZBd-2*^q0ZRC;I^S3^e|TKsDeYd_p%oPmWygKc01#REFYA0 z&SV%Uo5$MejD}=yS<U8zw);Db8|{S;rBjooC~ffoS-0y8UL@IedC71z!&e}9%?Fxh zqCg&$sWV1coNG4nH+a=x!JB>Git%0hWf#L-gHeW`UZx=GiXfDvwrnM>oNRly$Mf2z z@V(kDeV6YO88p>{q2b28i0A}ngxQ0lJt3@MB388Bou=Vgk-~%3Lf8pE&JZI+aa`?( z+11xHRoVJP);zhtQJ7yOA|=$t&vo}hQ_I^hA(ZZiYs)V7`k5aYF*ydukO7KC{ic-8 zMwa5m1$Fz(7kt}UlD#^Ph3A8!S@Q(`-iP^hB2~R)sp~3n<ach4yiY=)dT4%Jq09WA z!MYQD7wQ}@O+B@e<^0zcN?aPX^Zi6$Vykpu`~8|~)9Rn|A{AGasiUJNGLCmDc9g13 zOVS=4#=R##oUgL1-pFUU3+d5#ua_7J!rAtmtx>pbI7v`>uYgPurW4K1>!=0J{F0fP ztdI5dA!xQI<}yxIoTVvABuU5rnesF^Eh5ty3m4KzoddpiYvUD=w(Q=(W~9_%v~u<; zzw=oxNJRLYa!XZl`9jw!3MnhNBv7+T_GNg&<w{wLnlm%+IZ&1}N34IJzYzM_@0i6a zda6rb_7GQ%(8a7j^ZJgd?%N{}O7n+WeYQ!)OIwyN(6|c(R=FZJ@j8{b!Q5-9C5%F2 zPDr8<t!>@N#ajfvce{F>y`m1ce?-ITDy$Jy_jAa`r?HBEP*HG8b$_r+x8S;a6&;U8 z$VKX-)5h{T*gnsCc8kgR#8zERy;aUAG{K5}7cB8;Y#MZvS~eXRqAdh>)$Qtaf6!aE zy*hW`iuv}lJFi0ghkECT7RM!KBQY;hj7Yha2cPA#Aw{j0_g36mN+L~2bhAqLj>t}f zTMY?2W<L8*<Poy6&U&22wOIWOr8FhQ;i)n#|F-q#<ZE)XVk!3YWUig+sd_HqAo`=? zwI_IrNh`lxpP4-E5}oW?O*)-yIJ&{v<&}I!cHN^f2yel-J8LK!e4~e`z`v{9U1R+v zy7XSXpIBNP97d>~tGToF8IS7s;kuUQBNyCmj9Kd_+Nic(aD7s`m}X&7=1+UTNsFni z9`C+cy5JheYfznj^e9Jp`q9XM7(Czh1N9Em&tn@+;r-2j(VZiyJI_M!%=}90>a*EH zbK~FEtYsK|ElUU`Z2L4rZrjb^6R|V(hsV&E#7aaI!#sqV+<L2nvQx;H0I5>(VZV`O zC#kY?vAkFA{@LH;{pbwjh2B4Z*)?4k>v)U}+$^51cx=5#)kj%_#c0Z)(+|tt*G-@C z>eRWyNo}W@Pt+$~kREETeZJ)F{@`nXT_t0&Ux!>30Dryq94PN2OAn=oXG0#q_6i#J zsPrCZDI3Y?>y@M-#7o~Psrw!sfum;*?UAC8{b^PKLIFwU3#p&z?a9a2GCLxe=~ANP z8jDf?;WRXCBzs@=#Br70;0|{@p92M+!9nAGL^C5SFN5iqN6MeSRDLI<r~)ZjI9mHi zpQXtg=x1D9!>?lZ*jFz@NjudO+#5ptN~<xDs#Be#`(`geQc?&sH3YZ&z7rzfYUP@_ zatX4(QIzff$f*SmD{#63Z^F>-!l%KuvQ-viRwU#MletQvRoFnz6%hHFlDMR+dGcjY zX_iqVr1=y(gcK*!!ux-tarc@YF@u$x`=qIt>Z-?o#qau5>Ayr_me)|28943ViYWd1 z=YTu)WfbI0rP9Ff*uX}(Gp{qnI<<AIB-&c?3V^5TQ6TRyWL`dD2a4ir_IIJR_c%)B z=6g+O+;DQ>8&3M`yYGqTY-6gl>rI6qC)#!i#A9SoK{wzD4BzHpYX5U+4Nq$nPGqG_ z{0?^HS0FoKl?4`+svGxT6nG4o(Kb8~e@#hR(rv9X4q1=bmm{*jp@I8f5*4yq=#9m) zmIAv8{`tmTgPb?o(y`K~;551z5dWFh?wj*hv+!LhaW;U$a3jXcie9x8`cCjW%Aw37 zAVHo5Ehpdhw85Q=S$9wFO+@roOP>XQ3#5P|HZyg5FOLfKL9%)8-W?QXUp021Jzrd= zwmd8TE8tFM`5z&QTYFA!9;jJmsUXk|CGfSHA&(;V9Z+Wn0oJI7<p0nV@_lF#S+F0% z0{uyV^6aDjLebdZmoFMHoqUy^y(GhVd|Mm33OxGs2oe=3tlZV*0{_Dl#~uSx)VC!B zI*TD^eq-?X{l9gfL~<t~PvOfbOESD+IV{<3{vR#hAO)noIO&G*%!q%1Si=C32HI8G zcR~?nw)J^sOjcIv&__(I5bz{}H7ET{>_LRv4Rile0R#r5$sh&(UUnPIC^&N@jV)U8 ze*`YYARG2uPBDZa>(Fn`cqU=E-1P`b;Qk4XLp>~U2$WQ;Xj_-zjECo$QjQ_67XWQ7 zDXJ)}^i^xFH=-I|oP;#_W1wB4kM=LTz4dS3>uuoqj~LVKc3Ur+biVd4q5Scx{b-!v ze_}Ha$)f0Du+wl3xu@u2fB$}rO6-T4kOk81?bDchkUDDad;ydNVVV9y|Htz)w-i=$ zFYPs*MMV2Lj5NbmH&3B{-tV~&$$jzti0fe|od?t8%R^O}*+EM4NewZi)syoa`!Rzv zQq+T`b@W7|#SC%}RH-K*9AFY!pJ0|b|JhUVO>?>c=(#^(@ZKC9=?+oaBk!{YZ7yNj zYE0c%nGn&8TIjrncRVzhu?hWmi9(`Poczo8|Axsb5@0IeqZkQNPc6`}@`iUxKTx)R zshVyVUf<K<A9!>i&zD89E?K_NA;Et1X)-)!<Mtdep6mTrM3@F^3hTE$1Tdeu5xDCY z`v2T-v-zMn4TlzhM;N52U0?X&O64C>yZW!FI9w26uF*)ULYH86_!tnT4m~-5)1MQM z>I)7UI?>(6Tpxh`wzbP4(fIFu6hJ~Bf$1r7)h&(}%sSv*M#5b(Z6}&N$^@;#nV~r$ zcMm>qd;W-!Fd1!p1o^1n;Q8(C8y}Z8m2#xIMs8n+0S!>^1R!BHZ0ZReZ^P#_B-5<_ z$O}djOrv4!vgXMu)g^nb$nF6$zFpdL0CR^EZhrNhi-{5(jZA)=BH)k)7gP_*PLbFc zPTzMB7tV}>(Q(W9cIOxT8L}tsYQFLo=gzl?eK2Cd=a#SrIWB0$X8cPmpc>6CxQ?!K zjoq7Q_7B{dOugwbEj{b;xtL`yo^e)GmmlQf7sGwYwSr2z;JA`v2x7HNUs}nno)(DI zeZLTkw{ST5A>l&831MJvS06N*(O3T#B>>z9A-hyYJcrrq(}b|<F%bPw6VPt2JgGHM z7qnJpbUeTD!pi;6IHm^S8ap~)F&%Rd1FSlr76b8widQ5{DR?Hy7}#)z*iUF_KHQnK zmCzheWq!&B%C`R@tpw0GM4^0V$O)p|7H?bnv>oB;5&<xLSJAM&GnJ8MNXzptHeWA2 zZB4F-y(zdKGp$Z~O!QyEvEx8P^_=Otv!tS1f^CQsJlx>}7JUcms+@PcqPAm{Wi4x^ zL}$is%RL9%mL$exMR`JWSOV<S{uK9b=r!mdt*Z23A^ni7<#4>brZlgAacE@05gdOy zW5dEkLJ(HIJ4_NU1i#e0BkZuc7nF}mlZ5@QZN8PP^StpR!Sy?DE7vU-;7<+Pz^)Cd z>7tQ9w6Ao!HQwx}<PRZagKgQ!GVS=9Fd9C7I+oUwd83Uu5UhQ_A9GO`d$Bh!!h(5f zu~fkBEAjPn>q4@e@dc8={Ne4QM2&vxJJ?UT*!-t=PDh{i9r1i#<oG)hgW5aBv+VT2 z2nE`TtXtzG%7>+&GNExJv!BR`(%3dOjYm}rley6KTc#Ryj)GQ=^9)i=y~iWjav>OD z+yku9*W639;{Sktmt`qxgPgBLtq4cp&--FErX}o54b)D{dhG52PTF>Juy9BW$5Vi5 z+?kJMJbbBH*)+loC5+_(r7It`rK@Va7dFJUV-bh_XWkSR#|OP^eM&SfK{7SWoR-mU zp)oe#e5NP#6mvV?+;V`4TEYQQGIW(3vYwN0e2wXC{CVMV=@@5^umcSW8(4Z<*(9;7 z?QdA3x9vh7hWrT*xI4W2t12i~IAr`|o$vQ^5f(J3ggVobSR{t7A*{K%v9(CWYVFt> zqmbam_fi{c$=EyRzBE3XIReI{p#y|^lq^h&N)X_3TYV9kB^JxsIkeH%Wk?B!%P3|t z$VZ2C?o@jq-(=Z=hHE;~nL%>~%99702AsGo2&P39v9cX66EA?ME9)E^TeW3#XY1q3 zgh8|^US=TKGv7EIZb9^TL5=Mva-3{%xNu0;S6_?a<g)%dXWcKoX5Zf+SpGYA$1VHV zS|U+c5JdZ1TJ!{5&Gvt3a|9l>P0!7niIb(VX;CpLP~WdkSMQiU0^6kisWIYjQgN-i zujSu6kOtu$U@ci3V#No5{%c;4t>E}w5m99BoKa`$-oex$N(n5UyB$2SJo2pR-mWbK zZ~j8%bZTGq8`&1x`k8~kaPWRb*(y`Q3hZU-ylffm9CLO*!s_AoX}>P))Qm~9-)xQ+ z$Z}MBxLGyN(OjkT>2tP%77ti?MRkza9b&A$WkmNE28CX)Q^!td7QApR?@ubUqR2{u z(YQY@jr0m;Y|OPJ=N?hG4$S-f^wUrC{`C{@?`-n5XWuN1C~cVDYIoRqaixW3DasHt z{MalsCO;Ew7*ba272pQXq>ukuEGW)2_400;iIt662vVR(w=zCtrw|%P8P8JaHN$r+ z>HcObJk7pAzk5wsk^<(ZqTs&^1TZ%UV(?uT|L+$Ryds3)<-h+z_<unli^1=#X@7@c Si;jR;0v*k3my0f1J^Ei!9BqgI literal 0 HcmV?d00001 diff --git a/src/lib/assets/projects/omnidash-logo.png b/src/lib/assets/projects/omnidash-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..b5774623169ef0066d33d2ed07e378a8a5ed8472 GIT binary patch literal 11146 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 literal 0 HcmV?d00001 diff --git a/src/lib/assets/projects/slayerweightcalc-logo.png b/src/lib/assets/projects/slayerweightcalc-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..1015a85fc5ee9947cf20fe9db3b85d4142ab85fd GIT binary patch literal 8222 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 literal 0 HcmV?d00001 diff --git a/src/lib/components/site/projects/projects-item.svelte b/src/lib/components/site/projects/projects-item.svelte index 99eec1d..e8a5c31 100644 --- a/src/lib/components/site/projects/projects-item.svelte +++ b/src/lib/components/site/projects/projects-item.svelte @@ -1,27 +1,23 @@ <script lang="ts"> import { Circle } from 'radix-icons-svelte'; - import { Scale } from 'lucide-svelte'; + import { Calendar, Scale } from 'lucide-svelte'; import * as Card from '$lib/components/ui/card'; import type { Project } from '$lib/content/projects'; - import * as Avatar from '$lib/components/ui/avatar'; export let projectsItem: Project; - let { avatarImg, title, description, languages, license, year } = projectsItem; + let { logo, title, description, languages, license, year } = projectsItem; </script> <Card.Root class="hover:bg-muted/50"> - <Card.Header class="grid grid-cols-[1fr_110px] items-start gap-4 space-y-0"> + <Card.Header class="grid grid-cols-[1fr_72px] items-start gap-4 space-y-0"> <div class="space-y-1"> - <Card.Title tag="h2">{title}</Card.Title> + <Card.Title tag="h2" class="mb-2">{title}</Card.Title> <Card.Description> {description} </Card.Description> </div> <div class="justify-self-end"> - <Avatar.Root> - <Avatar.Image src={avatarImg} alt={title} /> - <Avatar.Fallback>NA</Avatar.Fallback> - </Avatar.Root> + <enhanced:img src={logo} class="rounded-sm" alt={`${title} logo`} /> </div> </Card.Header> <Card.Content> @@ -36,8 +32,8 @@ <Scale class="mr-1 h-3 w-3" /> {license} </div> - <div> - Started in + <div class="flex items-center"> + <Calendar class="mr-1 h-3 w-3" /> {year} </div> </div> diff --git a/src/lib/content/projects.ts b/src/lib/content/projects.ts index 34fde05..71e0111 100644 --- a/src/lib/content/projects.ts +++ b/src/lib/content/projects.ts @@ -1,7 +1,11 @@ -import keyweaveLogo from '$lib/assets/projects/keyweave-logo.png'; -import videoWallLogo from '$lib/assets/projects/videowall-logo.png'; -import ticketDashboardLogo from '$lib/assets/projects/triple-logo.png'; -import zaantjeLogo from '$lib/assets/projects/zaantje-logo.png'; +import keyweaveLogo from '$lib/assets/projects/keyweave-logo.png?enhanced'; +import videoWallLogo from '$lib/assets/projects/videowall-logo.png?enhanced'; +import ticketDashboardLogo from '$lib/assets/projects/triple-logo.png?enhanced'; +import zaantjeLogo from '$lib/assets/projects/zaantje-logo.png?enhanced'; +import helloBartLogo from '$lib/assets/logo-icon.png?enhanced'; +import omnidashLogo from '$lib/assets/projects/omnidash-logo.png?enhanced'; +import azureGeocodeMappingLogo from '$lib/assets/projects/azure-geocode-mapping-logo.png?enhanced'; +import slayerWeightCalcLogo from '$lib/assets/projects/slayerweightcalc-logo.png?enhanced'; export type ProgrammingLanguage = { name: string; @@ -10,7 +14,7 @@ export type ProgrammingLanguage = { export type Project = { url?: string; - avatarImg: string; + logo: string; title: string; description: string; languages: ProgrammingLanguage[]; @@ -19,9 +23,54 @@ export type Project = { }; const projects: Project[] = [ + { + url: 'https://hellob.art', + logo: helloBartLogo, + title: 'hellob.art', + description: + 'The website you are currently visiting. A personal portfolio website that regularly gets rebuilt. Currently it has been built in Svelte and SvelteKit and uses shadcn-svelte and Tailwind CSS for component styling.', + year: '2020', + license: 'GPLv3', + languages: [ + { + name: 'Svelte', + color: 'text-orange-400' + } + ] + }, + { + url: 'https://omnidash.io', + logo: omnidashLogo, + title: 'Omnidash', + description: + 'Omnidash is an open-source dashboard for retrieving ticketing information from various sources and displaying them in a single view.', + year: '2023', + license: 'GPLv3', + languages: [ + { + name: 'Svelte', + color: 'text-orange-400' + } + ] + }, + { + url: 'https://github.com/bartvdbraak/azure-geocode-mapping', + logo: azureGeocodeMappingLogo, + title: 'azure-geocode-mapping', + description: + 'azure-geocode-mapping is a Python package that generates a mapping of Azure regions to their display names and geocodes.', + year: '2023', + license: 'MIT', + languages: [ + { + name: 'Python', + color: 'text-blue-400' + } + ] + }, { url: 'https://www.github.com/bartvdbraak/keyweave', - avatarImg: keyweaveLogo, + logo: keyweaveLogo, title: 'Keyweave', description: 'Keyweave is an open-source tool crafted in Rust to seamlessly fetch secrets from Azure Key Vault and weave them into a convenient .env file.', @@ -31,11 +80,15 @@ const projects: Project[] = [ { name: 'Rust', color: 'text-red-400' + }, + { + name: 'Bicep', + color: 'text-blue-400' } ] }, { - avatarImg: videoWallLogo, + logo: videoWallLogo, title: 'Videowall', description: 'An internal application to control an impressive 6x5 monitor setup with a user-friendly frontend built with React and Next.js utilizing a powerful backend developed in Golang.', @@ -53,7 +106,7 @@ const projects: Project[] = [ ] }, { - avatarImg: ticketDashboardLogo, + logo: ticketDashboardLogo, title: 'Ticket Dashboard', description: 'Web app that consolidates tickets from various sources into one view for easy navigation, filters, and search for efficient ticket management. Developed with Next.js for frontend and Golang for backend.', @@ -72,7 +125,7 @@ const projects: Project[] = [ }, { url: 'https://zaantje.com/', - avatarImg: zaantjeLogo, + logo: zaantjeLogo, title: 'Zaantje', description: 'A SPA crafted with Nuxt.js and Vue.js, backed by Sanity CMS, taking you on a virtual tour of Zaandam, showcasing locations of famous music videos.', @@ -84,6 +137,25 @@ const projects: Project[] = [ color: 'text-emerald-400' } ] + }, + { + url: 'https://bartvdbraak.github.io/SlayerWeightCalculator/', + logo: slayerWeightCalcLogo, + title: 'SlayerWeightCalculator', + description: + 'I created this Slayer calculator for OldSchool RuneScape in 2019, but I am no longer maintaining it. As of 23th April 2023, I have decided to publicly archive the repository for it.', + year: '2019', + license: 'BSD-2', + languages: [ + { + name: 'Vue.js', + color: 'text-emerald-400' + }, + { + name: 'Python', + color: 'text-blue-400' + } + ] } ];