From b9b9c13d57b2e80675a8b4a84ec9c0089209c725 Mon Sep 17 00:00:00 2001 From: Beau Findlay Date: Thu, 14 Mar 2024 12:25:36 +0000 Subject: [PATCH] Add about page --- .../src/BeauFindlay.Client/Pages/About.razor | 21 ++++++++++++++---- .../src/BeauFindlay.Client/Pages/Home.razor | 16 ++++++------- .../wwwroot/css/app.min.css | 9 ++++++++ .../wwwroot/images/favicon-16x16.png | Bin 423 -> 0 bytes .../wwwroot/images/favicon-32x32.png | Bin 862 -> 0 bytes .../wwwroot/images/logo.png | Bin 0 -> 12665 bytes .../src/BeauFindlay.Client/wwwroot/index.html | 3 +-- 7 files changed, 35 insertions(+), 14 deletions(-) delete mode 100644 BeauFindlay/src/BeauFindlay.Client/wwwroot/images/favicon-16x16.png delete mode 100644 BeauFindlay/src/BeauFindlay.Client/wwwroot/images/favicon-32x32.png create mode 100644 BeauFindlay/src/BeauFindlay.Client/wwwroot/images/logo.png diff --git a/BeauFindlay/src/BeauFindlay.Client/Pages/About.razor b/BeauFindlay/src/BeauFindlay.Client/Pages/About.razor index 9714ae6..279c2d1 100644 --- a/BeauFindlay/src/BeauFindlay.Client/Pages/About.razor +++ b/BeauFindlay/src/BeauFindlay.Client/Pages/About.razor @@ -4,7 +4,7 @@ About - Beau Findlay -
+
@if (!hasPreviouslyRendered) {

@@ -17,6 +17,12 @@ }

+ +

Below is an overview of how this simple app is made and what technologies are used. If you'd like to dive straight in, the full project is available on my GitHub.

I'm planning to integrate a simple blog as part of this app that will dive into more specific implementation details so check back soon for more!

@@ -50,12 +56,19 @@ -
+

Hosting: azure static web app logo Microsoft Azure Static Web App

-

+

The goal of this project was to learn some new technologies and host the app as cheaply as possible. With this in mind I decided to go with a Static Web App hosted on Microsoft Azure. Static Web Apps offer global distribution of static assets (the Blazor Webassembly app in this case) and offer integrated hosting for Azure Function App APIs.

+ +

Another cool feature of Static Web Apps is Azure's integration with GitHub actions to deploy both the client and server simultaneously and provide automatically deployed staging environments for pull-requests opened to the main branch. This made testing deployed changes much easier and cheaper than deploying an isolated testing/GA environment before releasing to the live version of the app.

+ +

Using Static Web Apps on Azure has meant that I have been able to build, deploy and serve this site and API completely free (with the exception of the domain name). The next thing on the roadmap is building a simple blog using an Azure SQL database where I'll document the full process of writing and deploying this app so check back again soon.

+ @@ -64,9 +77,9 @@ private const string FrontEndSection = "front-end"; private const string BackEndSection = "back-end"; private const string HostingSection = "hosting"; + private const string TopSection = "top"; private bool hasPreviouslyRendered; - private bool comingSoon = true; protected override async Task OnAfterRenderAsync(bool firstRender) { diff --git a/BeauFindlay/src/BeauFindlay.Client/Pages/Home.razor b/BeauFindlay/src/BeauFindlay.Client/Pages/Home.razor index 95ba19f..83111a0 100644 --- a/BeauFindlay/src/BeauFindlay.Client/Pages/Home.razor +++ b/BeauFindlay/src/BeauFindlay.Client/Pages/Home.razor @@ -10,19 +10,19 @@ -

+

-

+

-

+

-

+

} @@ -30,13 +30,13 @@ else {

Hi, I'm Beau.

-

I'm a UK-based software engineer and I love building cool stuff.

+

I'm a UK-based software engineer and I love building cool stuff.

-

A bit about me

+

A bit about me

-

I mostly specialise in back-end C#/.NET development and I've built systems that scale for hundreds-of-thousands of global users.

+

I mostly specialise in back-end C#/.NET development and I've built systems that scale for hundreds-of-thousands of global users.

-

I've worked with businesses at all sizes and stages and I'm currently heading up the tech as CTO at a cool startup called un:hurd.

+

I've worked with businesses at all sizes and stages and I'm currently heading up the tech as CTO at a cool startup called un:hurd.

} diff --git a/BeauFindlay/src/BeauFindlay.Client/wwwroot/css/app.min.css b/BeauFindlay/src/BeauFindlay.Client/wwwroot/css/app.min.css index a654c4a..3e3e2ee 100644 --- a/BeauFindlay/src/BeauFindlay.Client/wwwroot/css/app.min.css +++ b/BeauFindlay/src/BeauFindlay.Client/wwwroot/css/app.min.css @@ -801,6 +801,11 @@ video { padding-bottom: 2rem; } +.py-6 { + padding-top: 1.5rem; + padding-bottom: 1.5rem; +} + .pb-2 { padding-bottom: 0.5rem; } @@ -825,6 +830,10 @@ video { padding-top: 2rem; } +.pt-16 { + padding-top: 4rem; +} + .text-center { text-align: center; } diff --git a/BeauFindlay/src/BeauFindlay.Client/wwwroot/images/favicon-16x16.png b/BeauFindlay/src/BeauFindlay.Client/wwwroot/images/favicon-16x16.png deleted file mode 100644 index f78dd854e18e917c15645ca385c3c328f02b068b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 423 zcmV;Y0a*TtP)Px$VM#MHpU;b#0NidjtyYV2xlEx@z~k}Y z_xo9`R=8X)91e$wH=7OH?UqibL$zAvcDteJy8evE<7Bg0>h-z+l*sG#GMmi^hr=>g z05#6%GmS=r;c&=eu|SJPqtA3YEw253UjVwUi%7XC_dp;Zho{pi$K#P=vB>p$Wi%Rn zm*8|dX}8;yN+kj8_j_zMo7BGB?N~0CjK|}j=61VXDwPWN`~3y5EQ?yLCXSg*hRfx` zU@#ySi%HrFq#}_>&}=rz<#I28+VJ^&s7wxr!`o{N27@A0P!*r{l>hRpzX08gotJku Rv%dfU002ovPDHLkV1hp>$XNgY diff --git a/BeauFindlay/src/BeauFindlay.Client/wwwroot/images/favicon-32x32.png b/BeauFindlay/src/BeauFindlay.Client/wwwroot/images/favicon-32x32.png deleted file mode 100644 index 64fcf31329ca958f733996185cca0bbadec45ba7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 862 zcmV-k1EKthP)Px&7)eAyR9HvtmP;snQ5?s=gYwF27#3!d$!jPfS&_2PWHH6YLfP1vMv2rE8d(Qox-}#=;?|aU@DgZwG zVN)pr6aoqXg+MR@VPRp2j*iCD)6=h9QL(YHcz%9{*Xs?)7jO}o&1UrU^gyLjAt@>8 zR|MSN-ooeep{uJ4!^6WuPC-CiTpVt0ZctxekC~Yne13j%aBFKTa&mI``Q_yWtE;P+ zo}QKywY9Y&H#b*EOmQtOEj$(;9uAYqgvrTCBqt~1;o(7!6$EHB8eCppLZ{Q={QO)F zT3%jegqxe2P^;BwYHC7%e?PjryE$fQX$g0CcUWIvm*>2_ygq5yHpVoF6bYD}oyEYw zfUux{$6zq9!1(xhfvzARA|ir4P*zsPyY(-DzX?l9O0c`Til)qwyfI>ha@aF`+0DGN<5VBKe?qWM@C9dibA2t6y&d| zqEIBu$e&|J;7;SWfk60+#8FiagUW3_Hvt!i95D*&$KXHDVVuYbEOq* zOco|+HZ5T#J|#ODtht4}y8~9uU0L1O-O5dHDo*1q8TZ z1h=Cb4sYbjjdNs%8AzG-=eUM-G0J;upeli(}yu%O}pyZz3QpC@%P~iGDxwpVP?RgIRU|2!h_ zJqc?goEe(UmD>bsYUE^%XOqInGI2BU|1W#_>v2imf1COLV<&e1=Ff=7?S~cOYw!bX zL-4O{z?H;RC%n0>gA@j99yk9D{j+5MZ( z!!U_`U$u2mx3#sFk}<+L8%gs1&)fg&Qhu)vLK%XZ_wUe$i@%cx76%!_0aAk{X67mi z#e`D0c2(UqcBaqmB~{n`-G#OO{_dDZxDpFz^MI7Ar%pd0J56Om_UfwKfiKri)83A# ze0|^V>66ggeD=?;9w<2Z_(51fQ854G2fp3SlL|{+!&!ix)Y# zxYVy+y-#}Lgww*W>sT|hso{o*FU`&0HkQUXEoxu4$}q9A%AUXM+({S#@r5%yfS`(V*gJ2Qd0qMfdq66n4pfMK+U6{u4U+@(cRsRQ{lBQ&- zk)_;psjshZC3tNK8C4y+F1r|c5S7k#`}XY^G5e&|>F#8BUkUnrOLA*P%}ajc<-q{P z%-hMbIF-XF&n%0M)XnkaFg)0$6iua)+?vNkd(!e-woVMc@uQ@qq~3UP)VhJ9Vz7bx z#6|Sp_R_!xil+j0a{-1m$BNU7JG|*pBSCpqS5ru5(-?X_Q>{2ax+8G^%9VF!E#DrW zX6}tAMg8QE4WUoj+sxZ@@Su;ENi-bIuVd(F@!54OOd~<9lN;9txAFRH+$>BRWT)I5 z=yUF|asTy%tvCJ%>L)#V>8s%6j}KWr9rGti@2K9pmqg8Lkp1}avBI}r5`t;|jy5xOK)N-Bl?rjAH1)R!3)I2)n&71KCwgf!9_vaR7t~28dv5AB!ID}sK zhG@TQa!-fdoh#u(t1P|maeWe46BG3>A6MrF@>ZsZRxR=9FJHf^J3D_=j+00!E0cr> z$awQ+__E-aFJFem2)p$t^#@m&?3AJ|Bqt?No;{nDsgcDYF0SJ=^-ZJk1$Sh8d@j$O zl60MSrjdMl7T{+kE8p}uv3drh>rVLD-tOZcW_k)QS8R6W#U3G}FCtW&Jo4~%cd}9S zqvj&}q1d>~E|0cdJvx*`iwPAx6hyY4KeS8m7WLk5!IOrU$J?q`yiE9LPv!-Kn@Z?? zv_9T#@6r%{F?TMxv3lirk-#J|Z|-?yB;DS9h)R5I==rHb53dr}o_)H@S0?h{)9WQT zd5P=Suh)iEq@<)M_mw!^8IU9HT92qbJVGY0E42himcKEdy1s2Ia~x})_}GK%c)_g~JbJ)4L^<|xANbX29b<}c$Q(OcYs4Pg3L6&Q*pm#B+Gp65;lzm9 z+1ZMR4fB*B2yEytSU_M_t0=i`NGhqbZY1z6nzlP9x;EgZ8OINW4w;zLMRSXk|PL2FN; ztu0s9n>Q@kn(0N(85tQjl$12`49W?+9$Tw39bY0jKRArs@S6X0l;hGRJNrkz=NUYv z`TN|);sS$()D#dmsMqm6N zr!@P0_Pioryr6Hmp{y(teg@~MH4fVcH-GUg`|DT5J0;o(V;NG5)MdPpx~ z{j#Tnq^j2c1P!0i^56Q)Jwk>nr64=ERr#Mlj05gh zj6ToA^-?1B$iu4_Sy|~DNZAOS_z0qyN}L3i>xA=Ue|f3%Tz^gggM0l<1}ffc@g@D4 zGsaw;`s=x^=O5-V>?}6&hG0J#x+f}@r{Lr9%Meof(AqK zyA^}g0aHU^(weZ>zIf7~3g;3yA7S!P5h|}9O24-vDl>X5pC)$Q=j7YC{;{Ayz*uLn z%EdoED$0y2NH1buM##MN3Y^F7rO_tjady_Q4A!uf{V}gzSxu`eHpK|T4t=1MesEv0 z6t?>I6<4OaQr#)qK%1l59A)Zi$G8VhqqMn^Nj*QuI~{K?N8 zIZ69kA%b<{30u6K2S?=O*J!~qtsRbUIeKHOl=`1Y%kO#WjAyr&r$J=p=oON0IRE+Q zpOiE-X<)01EG+5XJDZt?6@>PVjxK_iM^~Pq^sr-5ctZr66~q9+ee*74Lk6F1d&t`q zM*ar;l*M2tLcp?%95~` zlIN>A`n&;^xG&VufKPLB8cc{R{xAyri83ANRi>D_{c0XtB=Q!M2XMv@bGxN z$86g}3aRw)@bITLW>tR2V>j;4y_9@WfLS{o!6?Fs--||jd~{zPKV86f8!Tif^XTMp z1(BZ`*{z(-QU18aYE%DN6~sL%ymy`_Brt|=C+tj{U1&I57D(k@vr*8hlUVHsK4Jd- zt)^IiCU*P@%pm>egtBO?=94l-F&s8B@l~VP^+lP$JC8TZ493g4>jh> zvmdG@J>s>M!0zd%HcK_u!+e+%?^gvuu(C0haJDfhFi;gBQt$}86*jhHllW@0)v7c7 zQ+d_;Q5_u}*(Jb{mO>QsF?adWExR)58t(be%A`sy!zK9U*@g$_$r+`rg~BiaGrxw0 zLb!vq6Sq#O1j(ewO1ib1Gx(GDESz%@^wb+?^$8l1kl-=fjLd|Tf^20_eAaaRBb*+y z`r_hZ@F*2EHGR{;vPWY@uLgTCV^o>Ps5%OxsVFIFk-JnSbOdg^LF?v`|LPjZ~FE-nsiv)DgKq?0dRVcwvgg=XY`I44d{Fo2; zj_i_%ZND{GGHG$qL1n~`(~zblLv7a6;#8yV44CxyM+|W|J>m{v9aU3lT4gBE`=bd2; zz1LFz;z(l%mc+n$vXk9dC)J>uJ`~R3)7{qZGp1W>bD}Vk>f{k&?`>COH;@i>KUzoU zOI9{2GROdw2*&!K9iVmxj2{x`(DLPr0E}L#JV-HKGLXudrFZIm~;RnOS_W zKFXir4dWt8MQ92hmg@#z#jYtl90h7n~>HHZD zsW&011P_-jx8H>GlY;XT2BQJFYBHaFa)wRF`a558^pzr=BD=(Av4(q_M1p5!@Eobv zcx$3;Zo=5u*t?j;=vTG`9e_hbueClip~AOsZyh{JF0^S!#&oVJL3*G*`F%%w`||ow z*x8r2T^BSG3jyNzY&04Mn>59Wt3g^93_omZ)&AzmXiGvKFe3WBBQ^>O`?$-dyP(FL z=TvBOf^;5agR>1W0@y&PG{!8Pv0~n|0Hj@%6QpKdK8=VNVqsw^BB&V9Cd-A1ESl-+ z>P~JF^ra5m_wC5h6CDF5bPfy(3Yi`frJ|v^3@gNY8CJ~E^564&wle@sZ)&S*zF%HR z$!T$EDP%hs{6>7O*D-8rOI@dWlgj*u&cs!sZD~|zNB164<;+W3jVw(k0Re$n@F4NIvZYWpb#;^B z=S?HPCr4S>*h&d`2K1@Q#amZ(bfTAf9b3eKdguD!sOaG4(4G(k%SuaUP_kN@@&)nG z%b`Q(q&&Yz15jW3`H(^aYP>U)J^ca0Gu7jyB{Ls;6lJ}+PaV6&!EpmhJt93| zFb^z=xjBH3gl&GP1F<4&aISC|tUA0h(-Rfo{qtydk$rM)$k{YF4j`~hT-Losw-GuS zEAALmfpR~EjWei9>S7K$rh(JV|GQusCyu=vxi|LLH#Rna3U@*l zbXpu%@K*M{;V|BM0paOL{vbam_Hz|4S+~ZyTvdh1F(}u~D_@N<@LJJ;5?O-2=&GNk znX|l5$LO;|OjC|)Z;reC!EsC(*%$nv3KcI%@X+)s2tigr*y#E0`ZBl;pYC&LJAZ zWp3~K-Nw#yYrnk$oXOtpk*^of*ALd+0^E8Z6&o5FCVL9=W{ZZ%`|PU8phl_jjaQs$ zC0trY6c=EZpdd({h8&!s#)c?KYN?8CK<0#vYfqMMjK0FDkiBh(DlY6YtKSrNS*v}o z{7gAy|4g;CP{e1`61;Uo&Wbv_ghy7=`1b>x9vL3?EXRO|(z3t(0m7ZLBG$Jc!S$&5 zr2rrQZ^a3~UyP7Nc-xjT$#yb_MrJyg30a=1YWN>#&Op){TYb;r&r6Cvbu1ldC{lNJ zClYoQplTcL`5@)WW3D_6@PSoLAXP8U@96~a)qamTG_q`ZVN1$6>7yqfKY4Py5Z6bL z8u5mM-dMz!elG0QNR}ldqZ7DhTek2BkwFZ17o!57JhAuCeXG5@X9h5OYd5_TU9*Y4Nx3O)-dmKvyPPJCh%=koF!nfU>En)j#*B~B?(HC1@x8}VDL+TPdi;+SA`vd(-dm0>w zIF(nCJ3ej>(vPbFWLv;5DaX&S+Oe*XdfJoi1eDAXwmRXsR%ZM3z|WmMB)$RQv8pdT zeeBR*EJq_l_4<=1PjVBI&O*+6!KIUQLFQ5V`}dt)#V7;H)29;=CQDPX?%$)fAVj)z z`Mr4?1_D`aZMH8mI(lLipAFtO`X$F7A;Nlvx%5KjuVGaNfIQR!$j{@e$wbvH+bGV7 z-GZ3g%KZs5{{dyeP(xet%3;H^F3TX#T`9%6cR0& zPBf#q!!;zUeY73OMY0&UmxSYJFl0z|b#=;c8_gqisizqk=a%ON26W!uz3&K_uZ2=E!Zwx__VT9{sXD&`Cc>aDM3?P z)$^mS%WZNYJF#9^Sbj6Ws5n-om?DDD1^QeSCX-~?Z8HLcs6BwkI5u(@77=U>=)5_W z^JGCGd1u;0&%EU&ENIq@_ma*NxrCQZmjmfq?bfZk(__=1)jDmi&P*LTKtf#O{tObF zpQn&zXZ<*dD>#obA1&UiqKt1_dptb$3e(T+K?)zff;lZ!1A|%oWM{+5PFefwR=Pw6 za5lkJ!Bxl-m*FUK=hUz#4SNH;A$zZkx5?~7K_d7x*;$dVpxi_ZiETnv&w{$42X0ln zbnw1!y!#~kP_Zv@2f}YBpw3b2v#rmT9(u8!*~m+2d&^;`Fz^dK%-swSHhBA6RAl5x zK!@mn_;v}V!V|GKJE-f6WAjR)1D@}uw$_?Hk;a|=l5f_+z$~qoSGE{9wWZo!O~bjI z2gGp#_%eS%5|W=l^E&yJbZ{2DqqBUi|7`d)c=IC`n)xI|{6nM5tHcrNE<=Gfxhp$Z zqvg+|aFqO9YcQQ)ut^95`iDGu)d0|kmFaga^er=>=|gPYm81a{TGxq0WpA;gY(dqN zInq1fsVWJ$;j1JNIjSJ#p8R@D#C3b2?t|NsX>#MfS%2j!DVM2t_$4_y9@%!lqwoBcr0uHl3I9ENYXi3_=P6B#V?P z@mC@??SR|JzFyh}we8{rXlg>?9q-Ikn8n{#gR~-S)_g8G8fuCv%m*yx>6X+2Pe6rW`_5wEq6~lR1M*@WUKvDp;_9?DVx>rn)LJ z??hi`6yJlZhI{-NfN? z7kFz)L8>mU0;Xu z(Y?UhZ;cnxM?@KGCsu2+h9y##P(*LH?rbw1^t>FAWhp%ndayK_3m*}sRvlt{qHj2$ zne@CCKtT;-9afcrg9cUX`RQ?Kr?$w!-*HXgg>aAICKMAa#*3c&ri-Eio{)i+#`5hr>#Ax~t<;c*{{)Ivl*vb0`K9wE6u!;Jky1EIAUGTI!M1qbMdzl^N; z#*G^o&?z|)fsde{_-cD51hW0xK1#pfF&9~pyD(Bd{54R`-&w?XZ%N;^^OiiJf6 zB2t-rD%CB-fqexH1|pz;4n$ua9vR61@Kb-0t0K3ReVO#(@P{7$F5{yZt(0S4jl|25sY_apKmj6h0!YVX8C37+N4b zKy|%$ml7NU&#zOnCbW*%-Ap2EQH@S_zpE_(|1*Ly5Gb(-9S#mY`Q_X?In*Sf@FB5K z!uqch%sPXgUG^CooFRR&3O^cs2QVyQTj|umERe$J|Z;abNQu#j#$1mTZ%{x2xuPI9u@u4&;Z=xiZ;I+m#|wf1sj12;a+r&C2Rd2 z8qmNub~{Fa&~|8dErV)+^f@Lw(!xMtt{tKIc@)8Yk0=;%T($t3Y7uCVn|RYydK$Va zN-z1Yg2*QF;`p4n{V%_dHa)2@vjw19L;;7R?u)0s>ks&Z{toT!aj60XIk@eu+U})Z zy!m3DVT$jUSSX-n^;@^*SLz!ZJ2KSL@Z0P5NL#-yjFAY*2;p$aE^?@KA0$`|w|~*d z3PM4?C&UYa)Va&f({_rR%N;6letw6DYeCR+t->NHy#cgIcdq^dEa1_RZ}TI@O zd`4Rth`8fBYXe${go!jwK^+0e%mJ-2x+Y;SYYNfaJh7;`#I8O(_A|laI7y z9UKY-fyzQj=3=Sqhkis6A?$aTnO4%(PTo765T1}QSGN8uXkU^fu0_HgdTF79R}3^V zE?Uq`0;i^r@|=pr9Iv`->}9IbL_h!|}vBE*3~X+q$%Mw`NQ;RWefN&1CZ_6%X`I$Hum{*IuuHTiGw3^8aeM( zAl=}N#gSa=9!^g;#?27}j~U^RbKIeO8AgXw{L$1QR15%;eBn`?h5fBN2r*SIPXD;Ct61-NU7ucvsP#9YvY(FY|D&S*< zL!>)%2A&Jox%G=$XDm>t+_sy%;>z?Vb3wj`*R@4R>1S0*~-pi_@isZqPMY+K*d)OFsaHxblXNI9rV(QLyCgL03x zZ;;h{;{(TTjceKMZo450iY`zmFQh`*L-cpaMRv!!!V$WD6O zkDz#fCALFM2{{bQE5GwO0qnPIzUqW!&&M3lfrcOhR=OY^Vfai&7LYEeVexW_h7X|; z48oieeA1Et((>#o9#!cMuGj_gcPGf#SS+>}9ryN1q7TIhYOY)GAQH-x0K@mcXjy{3 z&eZPKoE8u)2!Y{Md=;txE*gr46-Ydm{bj}QZNwXF;|qJGqbQEopeg57?3Qe<&E-KB zumtT36gNW6Mpvf8on=N9Y$?ff`AfS1pc?`CvsB;8b@ z)I+U#Sx``*4&+xsa4pZ5rEW$6h4Kv?ylMZ>Cy)PF;2#V8A1$y;Q<|0gK|QfO82SGn N6s{{@%f;M%@L%)07w!N6 literal 0 HcmV?d00001 diff --git a/BeauFindlay/src/BeauFindlay.Client/wwwroot/index.html b/BeauFindlay/src/BeauFindlay.Client/wwwroot/index.html index e17f8a7..d063902 100644 --- a/BeauFindlay/src/BeauFindlay.Client/wwwroot/index.html +++ b/BeauFindlay/src/BeauFindlay.Client/wwwroot/index.html @@ -17,8 +17,7 @@ Beau Findlay - - +