From d744abba865a8f2a439cc40197607afe1c0b04ad Mon Sep 17 00:00:00 2001 From: Rapturate Date: Mon, 23 Mar 2026 10:39:30 -0400 Subject: [PATCH] Added individual pages with descriptions for each project. --- files.zip | Bin 0 -> 13442 bytes index.html | 12 +- project.html | 112 ---------- project_pages/css/project1Style.css | 13 ++ project_pages/css/project2Style.css | 27 +++ project_pages/css/project3Style.css | 32 +++ project_pages/css/project4Style.css | 41 ++++ project_pages/css/project5Style.css | 12 ++ project_pages/css/projectDetailStyle.css | 260 +++++++++++++++++++++++ project_pages/project1.html | 104 +++++++++ project_pages/project2.html | 103 +++++++++ project_pages/project3.html | 106 +++++++++ project_pages/project4.html | 117 ++++++++++ project_pages/project5.html | 57 +++++ projects.html | 115 ++++++++++ 15 files changed, 993 insertions(+), 118 deletions(-) create mode 100644 files.zip delete mode 100755 project.html create mode 100644 project_pages/css/project1Style.css create mode 100644 project_pages/css/project2Style.css create mode 100644 project_pages/css/project3Style.css create mode 100644 project_pages/css/project4Style.css create mode 100644 project_pages/css/project5Style.css create mode 100644 project_pages/css/projectDetailStyle.css create mode 100644 project_pages/project1.html create mode 100644 project_pages/project2.html create mode 100644 project_pages/project3.html create mode 100644 project_pages/project4.html create mode 100644 project_pages/project5.html create mode 100644 projects.html diff --git a/files.zip b/files.zip new file mode 100644 index 0000000000000000000000000000000000000000..b3d3f0d036e3935849089ae8e979e0042faca536 GIT binary patch literal 13442 zcmZ|0b8w{H*0>$pwvCBx+qRR5ZL4G3wkOuaoYY1;;?&?4KuDb5- zTHSkHd+oipq6{b)8W0c=6p*K*yRNVulDa535D@?GOYpz1Iyl)|nVGmafBEWSYcrXy zW533Z7O?e7E6a##%BAIO)$*-Yow6^upGXO4V4lRb=5`P7BTr+ z;KC0X)5OE^xUjVScdp@qm8y^Tdjo7Cc{0`TEzQKHx~4vV+tW=PBW(MzHE5WVFOe+ z@L>aKMU#(>c5fpvKeqTA=GKw890p>$2Tz>o4RI*uQ3YnKy}uv7R$;vTtp9e(ujyLW zubN0tNu~{M>lLjh&B|4HUKUq+NH4XOo2`d^QE~K5G$Nd~=DXsYK>JiU&dW(nJxUp2 z{qtfkcmb=1aygk@R$lcv*)_zRY3ZC<9?^2BSJ47TsWGrFvk8UJ7{*TY@%Aq$fk;=o zNamrs1ReZ7R%EfINMTx9wNenqOobpS4DcT_gF%wa4W|(kB(MQeK?X03KX=ZBp~Oc- zq`_gNKgbN5)rtkod3cFMT6KIC=wAcdOtbI{?#xX(5Te%4!5{R|kD@7=VxBKy{2ZgQ zXLmEcTMAq(rwlf)BU|{;&XAS1pAaM4Pg~SI)PGpr$pJ=DD!~#uz%PVY-e0~END>(| zy)<cM;5xma3pRmCo}xZOABbcrBDXUrb!oZ##BK4FBLFvfo{fFi?t%U|7s}A&L(D z^8HArnZya7DcgT!W{Hk>@DUAuxzOqOQy=WvxrnJEs&*4_DFi~n zSOZvOX*peDB{^d`JT_4__q!5`hCp)TMpPHRKSS1@gpu=`fVp#*KRbh(M``c#vmhR9 zN@TksOT^5$G-eTGf>Z?#sIwT}adgTq?k)JZlC?)HH9q7xocRQj^Y}I8QMyqYsAR@a zAmPX{t%}$4?KO`F+8YA*o9?B8L_C6-MoQ^>WNb0tn>@o5^mvQsCm6TAJePzC9v*EE zfh1|h1S@SmaqJP+1&m(lI`x*y=#mw-+E@k}UN&20xwvNZHZvxKGTo7&30t5=e!es( zYGS@iNmGhD^YFkbKK{GAkdMj%Ikf~skxKp|2xePYzvmOxKEXxOddSVhHI2qxP8he{ zXTBU`nUqK+;_G3{CA=O=IGBgt^kF$+xZSS}qRB-m{O~q(^z`*^mkObmIj7yC zybAl=VmTxRgD%>B#Tl%Vj6;78khOid*KYe)<+kCZ%uimY9dKCYa zZe8<2V|XEefSOVMm2R2-n{Jym`<&L;k-A@L72PQK7D&h`GdN?5DH@Wb%-2_%H%z^5 z1j$56Ab>G|N{&)hrgBdc(}Q`p3d*U z$85d;czhq@plIfWdQBPEiJwj_qA3=O{3kO?$fnBKClG=R81&s9f)~xCoY|o$vgKe) zYz2+U>64K1ZU)VRL*zUrxIfI&9LDI&3Qde@R`N03vQEI#G(=gLpkOBR#lK;_Fi#E# z6E(IlLMpKW+)zuUOM+&DvKZB$F;5s%wF$hz$(F{kN<7C8D!;9rOEfTf3&dDX4cS~d zQ@4#Fw3QgUXPQ4)y1Un{!4K%SuKCXC@NZQeD8Nwo^Onu6uQ+W*oWJ7VjtoJtl#p;; z1?jI99sFbME!ZFOusP_N(NVJA6kCgu4uL|O>DqV8a?(u8MEg{|FfheF_+cCPY z*V7Q783K5SSp%O+NP2=g&EjFe3m5551#1yjCk5`xs2jE^6~;`E+1MscS5TSRzSeHJ0XEUw>l-hcjna zNql=`(DE2EJJ~$+PAFwE|%+^kgztwm<0LM}7 zm+S`{Sv4Qjl+(LMt{Rn1@iH1=gb%DIM5ix3T3;9)moG@5=hLxeqi!XxB)F@Z1)qiW z?cpp6rDxNP?2=o7^+Getw~^nRQ- zY1)vx@uETtpiOpHo=j3J*T@jJYEPuyy)poJnC3BgbUkymiJ_vg0F3_P&ihYc{poFdiPp94n zY)u1sF!zp+^DB9yN=aR>a%iL2aJV6Q=2|j7&qc<|$K`yDOs^nUQwH7)xxK=4L?d8H zmu2qIz283m6&Ax{A8+#6O6CFg&X{hsz-{T<|csI$fq7sKUSAfqYW;I?;1vDT7<7+ zORJj0C;N{l~>CI*_$sVipC@2$cZpw_9#U<|&B3C9f!UID!o51UfRV;@y%~f32 z?d!;Fgf3rH0=Tl{ee`(;h;E+JvyJ(NV+zWgI61rA4ro$$x&hMy9*xx|a^t%%HbLFn_kJzN zNlDmzJ5?yar^VU50oj#Vl4vj|iizAngtcAH8!9+VT6N)u&ta5lyA#1qOUPT`_ESBb zk%;qtMf8p%6t@<^D#)CV%_ntV=6m4QZ%sWj&h7DJs-|~ex84J^IjU}D54^0m7r|p? zDCAyjRD${^$A^9}Dky0PS5&1C%CNt-JB7Nwe9`EtPTmr8#Z^zObN;%}`gC%FKyxdg z{Eql<&1~hJmJs~bjQPJc!~Fl%jBObS_1NT~BNr)vDhs+tSc{^ zQ6GrIxlCAnvZZ)?709^J%58_Mdv=L4Ng!g5EJ%kGv7moL$m&c)^VCAc<@8MF4GA#` z0;|b5tmsVwe{yLi_!2O5v7)pjMuW@p>ig+ypz`~r1*?${Th}<3$~EM>}D0>1+1c)fvASGoc=J z<7G-&JwHdb_EAy|sGWkFGNGpidl{->DqnDG5lTsPV`AAiCy+*CykD72VNo0^7iOf6 z`*W0!ZFDqgwJ*|3h`a7(6FG~3WeQ(ZzmV)8kp~y-J<}B+Q{@q_CfkeiHizR0bCm+M z0;ByBD{|BG_z`?z6={qtjc#h-+!% zn`5Wr7FIGvpOvTZrcZgp@p07cBrwD6?Nc7x8bI*HdE1;v7nG0T0tre(*B{Ms7YKXKa5;-bIU)u$gp zj@OUUYiX89QOKFqoJU7yE~HjLGUh%`H%%<~da4!{qAC)Wf0F=|M?$OtcCXvWdIRCN z^bMv)J>z6S%m6y2YQq?r>D&mXC_uW}M02uwcWX}e5Jf}S=VEFo2YN)}9JCTikeBGQ zA2zZhs;CIs3A%x* zApoN=!O^DBCRcE1=sCdQZn;>srSz^}zCf&oIAZA{Sw&zafEQ^dG<@P=5?;7F!O{%u+C4={Th{07 zP@pieh0yk^In#ebWYEe3K7|Hj5~_jw1vyh|87A({VUkUFMqFKt>+0_#xyezgi5N?0 z{)}^@3;fmL$PCmTR;pZ5GMwLbZoLb(o@rT4XFf zDIHqy5GkCPZ4Jl(a9{wwMe1%I#e^uEE%!SMa`{hZ3^H5&GNz4`mQy5Rl9N3V52eAi z%0h|gOJ6UN^u)U#B{Ppqo)kQVf#G?GpTw$VLiNPaPD@U@J*6#5rTgL85SfX4vpPgp zkER0q!zM%TB3f$kJK&g`Sw|a0F;CF+vZ_%HG$iL&LDfKq#05H^Q}++WU&=U{{3drF z8+j`WJNKIVl_wXOJVAUTBarx?aQ4gRBrVwf=Uf{x&f8i1Z68JyA)B3oWM;LOmeeablm&khoYG}F~V34;S5CUmt7}e6{3cI&|f>hR|nVPG#oe`W1Cb% zSDg20o~#W|H0NZ<l*b@s_cG&l6xTy!z-O1OTVEDFPo57}pO$A~ z6VsCs<6a&JcT@*K5kok5NuHJ!0>p=kyyf~7Q7BX`89^@(uRUK^*7Pt~LjyT1>PL&2 z37|_Di5y;o#3-;u87+vLHe{k0`{0VYYDC73X6|{ib~#a53IhA0oaclw#fpA#6Kut0%)RHr)mxOI5h9UA4w(a#{&HnooklFk5G*^^iZyH9d9)X% z!16A}8qCUpUZeC5QU8Y=c>AA)y9f!7RU);>hV zf9%X^f71hLRzKhuw~-f?Zzk{vnp#7x>^jG{!=$gVAPIW>PLE~3Vqw|knfyc3OSH;i z`x#iq5{}ytiWh$c-C)`zPBHeNHwSd+p^&xf!VwY_49=PD>Z=`DB;wZ?;_|PbRXStO zsZ8l0dV6Eyu>jh-nRWOc{c*JF8@~YW3z~e{iZ5o-cepM$u|J~BXq8~Q>Ho)r#`#z(|sY(1ojDVxT)TP6lCO&TJ71B zfud+xOFa z$`l1mpT#6G!^mC&kCpEYE>#1?iKf38zW^oBR3OQW5Ft=+2cKNjWV)@b-Lc}-SQMs- z>`o^ht2w`W({}$Nq8XS7Fh#xE3gS9#DPuOV!RDq59)?rkVm0b`JNgeWkRNm`AwZ?{ z?(e7UOo!;K;lL@(fzV&-6&YcvLdTR1DUDSfJ9%x~R4_=bWjT?MlqhCtm@SgCyZyvU zvxgz0t*n9!hz?AkP@Q6YJ>7_oao0^8{CR$RCR8~ z-<*ss(Gajmp$CRgUm-G@l1s@L+O9zH3X1b)c@Y&gZ@Cs7U8u9U7&$>TDvl9A)&m1bxNp2ZW(#kMU-t z5#rJ4K1i~Oq3DKiC3fT-%R4sKQ_F=Oye8)?K}TV=`L#Y%l)XH|PyG;5o*p;>zbE`M z+OEVOcnm5-5ieXO3ReTcL0i4vD$s*F2XTA_oqi9XJoff}>C%=DU#wQI^r;#TROU|a z2!6^C&6D!j@P&CsWjo0yck@{e77bg16~0H?y%t$KCnFurfVg?nP2y!PF0oy?l@ z^#w20uPoI-QHrhir#q=aHZA|tREEV$Z(DL>j)CgQ`Fi__wkHRVI!6B`Ne49T=`sw? zfo)IQF6m*r!M6|4f4hb%RGCx~5(p?9^IvOYtp9b*kfxmTS{wHFLyi3Pj5{Qi$){EhDSp^=X=SWd_5M7|;YQA&J>Hn;bQFlLCFh!&3&NGL!+Sq| zk@LYh_fzjGc4WnDDsOT`mT7h>uJlIh-%+iGh!2nsk_)Sr`I5^IXnNGZ1AdA9XTWB4=+pkRKWV*>6+t$ zg)gA84?<*c!&xrEc!192ea3J@Wo|UCfo2UE~fvS((t<(<&`JQ+n(!56{$F_Vi6kGMo4za$Zm`fts7?Jd-X5_(S0dd*|37tXj;m)!O-4t|H zwA6D~4II*y2&q0pPA96m*sLIp>)@5`4t$0X0UV%k@MQQizudcmT-%DsjAOIbMQ$(4 z1aCNI_ovHm&v+`E(5JG__ohF8B2r%PeDhsgJ;>w_2atZ-Fkj(B@9_4vvA5rH6BB02 z?vki}dH{Qb>s+75A6O2puZ|%WZ%tX?x5JTWM*@9f>6jWwlu}MT);iS@Z_JPcuW(uA z=?z?&keF=}DqJrPbwDFY4%CHGomw(-0`sIot=Lmhy#}aI-e)W!Y>GMfz8&Yup2HTB zmZs|BzI^g1b}azMZR#R)R?HFgWcNifXdfedhA@ zmr~!4^sQ=df_&={Z)4frybx?(;sbIL`Q=>{(Y4g9*IviwTw>(BO{r^FqsTRbRkt#6 z_4cKKP`r*x^@_QC2zS%!4Qv5snMAYLCb;3c$~XOlT&NZW(=2L@dQWROaogc-wf~7n zeXb2{md-r+OCUM{u{C|B$DQ(GsspM8I(D^mt%E>oxT)^s;XWx~oErGrY*O#zA$~#c z=oJ?12U`hvCa8ivLddvypKvUOBY3sT6*pSu7`Tns_1S8{(zng7RYL;z!gC}0XXWM1 z^f<1@c^E{u?ppJA@N5SqqGG86xB9ZKYW*GMsTg4h{P8W&`_2j=e$Z$26j$)v1mICZ z9Sy&4rdlnkU83@=&}vI^x!TEngjRvtD`SK4wDFv|Q9A09s-9_|Dt015_h|414r^*3 zYx-3098IFNn*Kr-uy#D23kA_3IyN$BHQ8`pu(AhCAShGr`RW39mxW3yJDv@RBW@Z_ z%A*F;12@=#ZRi3oDU>ngActIOB*8}>Qmx;;w)^63lBq@Sxhmg9h>SviIXv^T%C+O- z;&GS+%h8#>uY9@v`t|1eu&04m#Chk`okwd0(c%J`pG)!yk;;lTs8`azN5Vy8T4`4T zG>gG!?>mP|C53{D9=*X%B%ja4p<2Jb=aHM#E$IWi@#+)j4YD<`7gc8*B1ep+>xo5) z9%>FxiH5_h!S=g(03v#Pp`uhkoMUeslfNfBCm(ip&N^i5B%i@e1>sgVJgeW97R1{V zt!!tDg&zIk3Ihi~|CQ|W%BafySOz)0db{3$$Cp6$Sc!q^md#k-%D0i_bA#bXFG0eY|%l2R8=BQ7`{-?aV zRAHoxXFrloKDXJkA!8dW6@x7v#mK_*g83Sms;N>eIJeYMmh1IpMu&m#q5B5RHw59{ zN#JHqb~w+Ay}ozPA)_9V_oz#8mKmh2ET-pfqm z$qZdYoQ-A`3YP|53kQicguRUpU_jO7)L4}fP7Sad&^^_4(uT%m*7G9)xGq310TG!u zHUA9PEjOwEMwA1wxz1; z>nW1Lx59jDerqoA*}i6IP1E>exL(Nno58Ci{mQuVBK`Es!Ee{j*@EcMu9uE<)a*z(&_cj7&b+P7bnS9$^4|PB9WLT@JhoHj~+UA3%8v^{pRVS25`Lr)2=8 z%OEo6(S=Rpw^Ya}!Oe3?vfwBwccsA2;I{Actp_36DSh?3%7+HhpiFpHFpuymt>OJJgIZi)QWJC=rlWkR-J z)vlFja#nUSK;9UGAVNo(Yf;W7GV|K{u~tI5y1p;8LdPnG{QAHwT2rQ3qd|pI(OWj+ zgKZvzE*BQ%g}iKsp@2)mV+!zr)3jOp;DFBc4V_h%q%tW%hfL)u($L?jcqV~LXB9FF zxG{e%H-P0fpLRpVZk}O3`0 z$(23q4)e~VGMRD7$H=cH*tyH=`FO)!011#+g1TWDE&%O6D~*zRL0GXux|Ch5Y#na&1@H0%`1$lsqYEF2NQ1@9^7IMJN){}uBBvH0p2&!oWE$ESeipgMLDSd(8UfAmYdrhI#;oO%4s?I?OVR)ez&4 zu}toJgtID+$uRZ?A748YmVOP0=n(32c*d&3PPO5p>0eOW6P?kbtOwWuL2y3MnCL>} z*`>d$Qw-P zlUzdkJnj;u%g21|715Dm>tLo+X9mxc#H(rDTau#7eBTZq&@9N58i*3-sS(ZiRt{@Y z|MkrvF`SxnA#0sri@wzY-$=@4_I*gpZUvm8fH1z$+k=j7g)Mv0C$GztoH$oiPQSzh zf#&B(G)1K!(u2$8*ETR$yj-V*UCHa4pUmr!PLNj|Y-ByK!^0-h@xrO`SG~3K`aD^< zT~Z!MgORF8l-nxV@!4iX_s4{|7`~~+;d%O`Pm~SCLFCg}DT(i5F|QcSCFVYdcr1@r z>u8E#GUtvl2^`lLiwNfgHgq9^K;;}}QevXTw?LY`LnyWpSVnkeAW4#_2o^8l*Th{A z!-fz~&qgZ>80?t9VMIj%Sz5epK1*7B@$FUy-l%(D?dO2DHDTKGBjeTWDkRfhf&)Ik zxRdb&yCo-d;XNmDWqZV!ui+yN^F}Lh^%gvFN@a^q_H*061Sr-qHzlWLrOYo$HKbd% zWg-#@aq=rJ*{c<{7;11E*b#NWcy66o26>dg=)y=w7Dn!H<7paIJ8QLa;frLmAj_a8x(-%`^P#cUW~-(Lbsq@ zixKdgV`B~r;SXEzI@`Q_?v=svxd-fH6Y5Q@IDa@JpT3+m15I4wHnfZlncGi)dQG5H zKLHAkshUAnQW@agNVLW1%4O1%sBODDfdJv*SRAkbmTm!o(L4VARt(gie3j+}29M?L z{K<*i82rD!SMWt$=T}-@ZIJgurov&a*QZ^^wSUS^;!`c(+L4U7n(Tv^_V$0%VZ+gz zI6i;bpcQXL-`i9yWDn}^QUwS{;P;wuSFObTun&el$4ul zQN$Ra@fyEA-IIOr6eKL=f%aO9=p+XC4Gp}^4J9yEtQD%KWB^){crq`u9xfSsR9jU9 zLV7ti$iVy@I*!li^8nooXP!n*8m%(+a-kt(E4t8=pTsu$*D;2QNPa~;f|Q5g%Sy6g zy;^V^@&MIai~&n0_8G)ih(RrKuN5pkJ!gmuz7vu6=%^Rk^PQGp7^wEp8(< zvq{^Gpi`Mu)d({!OmMNBUHMy!fyyNfoiFe|kkAm@;K1oa8R$YF0A)J(D4@c)G_#GUCY@MWenUq}!hMDQ|tSdun3oBuR zFL$&%{qh0j`}}K}$Kj2#4gwemDDw9U`Hw1?{;`DZOrLzeAQHs3cit`{ASAJ+2`chj z4EhEHk5eJ7p_*=E(uK(~Is$PA^@R+>HatS#EipsjR?dwXfciQyZh^anBdg6HA*OBy1mr-L3BksJs3>%z>*$Z#YUB4fnJF6TY;Q#h(7FD#c!0&*`fcz_H%>M+< zHSxbe16=w>LIc1gTbtG*n{`?HvN+^;?OR1E=yJ?E;*m^tMV>&uD# z87qCGp@AgiYAYFr{Nl_ODNJarF{g&5J7NMA#;>XFx<+-OTf~SLd$@UuSgmF@J!=}y z($?0YL)N`GUIWeL=5tv*6g%+=}s?pWmq6Gl2Zi zv__HK2F{6+v(K<5i~y**SyWA5XWLuVM1qQ#rQC@soGf~Hv&N&M$#KSdq;9kzo>JU? z$J59g-Dd176fXQ7Ep~*rhc!_=vHzEt%?e&{YP14q>EL#v0|@!x`4q&`35Q;v^g({v z(}Di1VZ(qK`Dhs1@+9m-PM)r9?lRadw}>CV{DXS_+HG_SkO}Gf9d|>} zfBnl@|HM5}$Zm}hN$in(h)6781<7nR(NJ=;IB*A#NbHf7Em?EEkg-?=ODKS#kn&7Q zT1qyH0-+-wBYWC2kHw!UEO&wf?Tf#IMNC9JhTr=W^yAdp#8LloU7ouNb0JX9+BsQG<@NLe)$yH-;jgug4(+mmEncw7S8ub-kO!D!h#w6ylZW8uPOw zlc1dhBfZs!wDUrpUVHgSTEv6Ju2kAfv^Dfk8ZMXSH;4_oLyD%kX}>g>LBWmY&A-MRECDEF|!NEf-Fw+cp5g>K;vC zsui|8Hm$$Zv;FKr8ispbC$B>YtG}y3F(k~oHm@HZ+4TEZT*;KO{VrlIGU(%8!F@nM z+X~4mvn!$SUX}Cn35-85?mHI|u9diSR4qu$ILFl)!zaYQhZs%0eA)i*>@V|g3$Xq3 zQ_IE5SPclm0Un)U64b2HIepEL?LnyTfJ!$IO;(joXR%_GafI{3j-b60V{`ZmLoozi z_}|Tdg9kD1ybMkYMnV;!|1-L9K^-Aoqv6PT9fK2DQz;lff52nT`+&94*7(Jy5nt2c6ppCzlK|PY*|Czh9|XJjxKl?>ox& z#Z2HRe;Aup`}ij1Q;JgxuA?Lwv*}fF%G)Lz7AZ<#cjzEo&R0&1rBBilXgdPWhn~Ml zlHz?nvq`F!arWrZWEY4+H`V z0Ji^Kmi^zUj{mh8|Be3LEcORog8c{mU+dW4=-=%De^A2T4Fmu8ssC#h_#6Fux91NU zh4l~mzrCNo(Z5%%{-7U(|DgX{!}=TjyH5RsN|617{#CX9eUHB @@ -54,7 +54,7 @@

Personal Projects

- +
discord bot picture
@@ -64,7 +64,7 @@
- +
ToDo List picture
@@ -74,7 +74,7 @@
- +
Under Construction
@@ -84,7 +84,7 @@
- +
api project picture
@@ -94,7 +94,7 @@
- +
project picture
diff --git a/project.html b/project.html deleted file mode 100755 index b400fb1..0000000 --- a/project.html +++ /dev/null @@ -1,112 +0,0 @@ - - - - - - - - - - - - - Lew's Portfolio - - -
- -
- -
-
- - - - - - - - - - - - - - - - -
- -
- -
-

© 2024 LewisPriceDev, All rights reserved.

- -
- - \ No newline at end of file diff --git a/project_pages/css/project1Style.css b/project_pages/css/project1Style.css new file mode 100644 index 0000000..dd8734b --- /dev/null +++ b/project_pages/css/project1Style.css @@ -0,0 +1,13 @@ +/* project1Style.css — Web Scraper / Discord Bot + Accent: Discord purple-ish teal, keeps primary blue family */ +@import "projectDetailStyle.css"; + +.project-hero .hero-overlay { + background: linear-gradient(to top, rgba(10, 15, 40, 0.93) 0%, transparent 100%); +} + +.project-tag { + color: #7EB8FF; + background: rgba(126, 184, 255, 0.12); + border-color: rgba(126, 184, 255, 0.4); +} diff --git a/project_pages/css/project2Style.css b/project_pages/css/project2Style.css new file mode 100644 index 0000000..a147e32 --- /dev/null +++ b/project_pages/css/project2Style.css @@ -0,0 +1,27 @@ +/* project2Style.css — To-Do List + Warm green accent to evoke task completion */ +@import "projectDetailStyle.css"; + +.project-hero .hero-overlay { + background: linear-gradient(to top, rgba(10, 30, 20, 0.93) 0%, transparent 100%); +} + +.project-tag { + color: #7ED4A0; + background: rgba(126, 212, 160, 0.12); + border-color: rgba(126, 212, 160, 0.4); +} + +.detail-section h2 { + color: #2a8a58; +} + +.tech-pills span { + background-color: rgba(42, 138, 88, 0.1); + border-color: rgba(42, 138, 88, 0.3); + color: #1e6b42; +} + +.feature-list li::before { + color: #2a8a58; +} diff --git a/project_pages/css/project3Style.css b/project_pages/css/project3Style.css new file mode 100644 index 0000000..d4e028f --- /dev/null +++ b/project_pages/css/project3Style.css @@ -0,0 +1,32 @@ +/* project3Style.css — API Accessing Practice (Go) + Golang's cyan/teal brand feel */ +@import "projectDetailStyle.css"; + +.project-hero .hero-overlay { + background: linear-gradient(to top, rgba(0, 25, 35, 0.93) 0%, transparent 100%); +} + +.project-tag { + color: #00D4CF; + background: rgba(0, 212, 207, 0.1); + border-color: rgba(0, 212, 207, 0.4); +} + +.detail-section h2 { + color: #007a7a; +} + +.tech-pills span { + background-color: rgba(0, 180, 175, 0.1); + border-color: rgba(0, 180, 175, 0.3); + color: #005f5e; +} + +.feature-list li::before { + color: #00a8a4; +} + +code { + background: rgba(0, 180, 175, 0.08); + color: #005f5e; +} diff --git a/project_pages/css/project4Style.css b/project_pages/css/project4Style.css new file mode 100644 index 0000000..77fb5af --- /dev/null +++ b/project_pages/css/project4Style.css @@ -0,0 +1,41 @@ +/* project4Style.css — Graph Theory: Flat Buffer + Deep indigo / data-structures feel */ +@import "projectDetailStyle.css"; + +.project-hero .hero-overlay { + background: linear-gradient(to top, rgba(15, 10, 40, 0.95) 0%, transparent 100%); +} + +.project-tag { + color: #B39DFF; + background: rgba(179, 157, 255, 0.1); + border-color: rgba(179, 157, 255, 0.4); +} + +.detail-section h2 { + color: #5c35cc; +} + +.tech-pills span { + background-color: rgba(92, 53, 204, 0.1); + border-color: rgba(92, 53, 204, 0.3); + color: #3e1f9e; +} + +.feature-list li::before { + color: #5c35cc; +} + +code { + background: rgba(92, 53, 204, 0.07); + color: #3e1f9e; +} + +/* Animate the dashed SVG lines in the placeholder hero */ +.placeholder-graphic svg line { + animation: dash-flow 3s linear infinite; +} + +@keyframes dash-flow { + to { stroke-dashoffset: -24; } +} diff --git a/project_pages/css/project5Style.css b/project_pages/css/project5Style.css new file mode 100644 index 0000000..6281f31 --- /dev/null +++ b/project_pages/css/project5Style.css @@ -0,0 +1,12 @@ +/* project5Style.css — Coming Soon / Under Construction */ +@import "projectDetailStyle.css"; + +/* Spin the dashed circle on the under-construction SVG */ +.coming-soon-icon svg circle { + animation: spin-ring 12s linear infinite; + transform-origin: 40px 40px; +} + +@keyframes spin-ring { + to { transform: rotate(360deg); } +} diff --git a/project_pages/css/projectDetailStyle.css b/project_pages/css/projectDetailStyle.css new file mode 100644 index 0000000..a54c37e --- /dev/null +++ b/project_pages/css/projectDetailStyle.css @@ -0,0 +1,260 @@ +/* ============================================================ + Shared Project Detail Styles + Include AFTER projectStyle.css + ============================================================ */ + +/* --- Hero -------------------------------------------------- */ +.project-detail { + flex: 1; + display: flex; + flex-direction: column; + gap: 3rem; + max-width: 1000px; + margin: 0 auto; + width: 100%; + padding: 2rem 2rem 4rem; +} + +.project-hero { + position: relative; + border-radius: 20px; + overflow: hidden; + box-shadow: 0 8px 30px rgba(0, 0, 0, 0.15); + min-height: 320px; +} + +.hero-image { + width: 100%; + height: 360px; +} + +.hero-image img { + width: 100%; + height: 100%; + object-fit: cover; + display: block; +} + +/* Placeholder hero for projects without an image */ +.hero-image--placeholder { + background: linear-gradient(135deg, #1B3A4B 0%, #0d2233 100%); + display: flex; + align-items: center; + justify-content: center; +} + +.placeholder-graphic { + width: 280px; + opacity: 0.7; +} + +.placeholder-graphic svg { + width: 100%; + height: auto; +} + +/* Gradient overlay + text on hero */ +.hero-overlay { + position: absolute; + bottom: 0; + left: 0; + right: 0; + padding: 2rem 2rem 2rem; + background: linear-gradient(to top, rgba(10, 20, 30, 0.92) 0%, transparent 100%); + display: flex; + flex-direction: column; + gap: 0.5rem; +} + +.project-tag { + font-family: 'Quicksand', sans-serif; + font-size: 0.78rem; + font-weight: 600; + letter-spacing: 0.08em; + text-transform: uppercase; + color: var(--clr-accent-light); + background: rgba(240, 155, 0, 0.15); + border: 1px solid rgba(240, 155, 0, 0.4); + border-radius: 20px; + padding: 0.2rem 0.8rem; + width: fit-content; +} + +.hero-overlay h1 { + font-family: 'Oswald', sans-serif; + font-size: clamp(1.6rem, 4vw, 2.6rem); + font-weight: 600; + color: #fff; + line-height: 1.15; + margin: 0; +} + +.hero-sub { + color: rgba(255, 255, 255, 0.75); + font-size: 1rem; + margin: 0; +} + +/* --- Buttons ----------------------------------------------- */ +.btn-primary { + display: inline-block; + margin-top: 0.5rem; + padding: 0.55rem 1.4rem; + background-color: var(--clr-primary); + color: #fff; + font-weight: 700; + font-size: 0.9rem; + border-radius: 10px; + text-decoration: none; + transition: background-color 0.25s ease, transform 0.2s ease; + width: fit-content; +} + +.btn-primary:hover { + background-color: #007ec0; + transform: translateY(-2px); +} + +.btn-secondary { + display: inline-block; + padding: 0.55rem 1.4rem; + border: 2px solid var(--clr-primary); + color: var(--clr-primary); + font-weight: 700; + font-size: 0.9rem; + border-radius: 10px; + text-decoration: none; + transition: background-color 0.25s ease, color 0.25s ease, transform 0.2s ease; +} + +.btn-secondary:hover { + background-color: var(--clr-primary); + color: #fff; + transform: translateY(-2px); +} + +/* --- Detail grid ------------------------------------------- */ +.detail-grid { + display: grid; + grid-template-columns: 1fr; + gap: 2rem; +} + +.detail-section { + background-color: var(--clr-card-background); + border-radius: 16px; + padding: 1.75rem; + box-shadow: 0 2px 10px rgba(91, 127, 161, 0.18); +} + +.detail-section h2 { + font-family: 'Oswald', sans-serif; + font-size: 1.25rem; + font-weight: 500; + color: var(--clr-primary); + text-transform: uppercase; + letter-spacing: 0.06em; + margin-bottom: 0.9rem; +} + +.detail-section p { + color: var(--clr-text-light); + line-height: 1.7; +} + +/* Feature list */ +.feature-list { + list-style: none; + display: flex; + flex-direction: column; + gap: 0.6rem; + padding: 0; +} + +.feature-list li { + color: var(--clr-text-light); + padding-left: 1.4rem; + position: relative; + line-height: 1.6; +} + +.feature-list li::before { + content: "▸"; + position: absolute; + left: 0; + color: var(--clr-primary); + font-size: 0.85rem; +} + +/* Tech pills */ +.tech-pills { + display: flex; + flex-wrap: wrap; + gap: 0.6rem; +} + +.tech-pills span { + font-family: 'Quicksand', sans-serif; + font-size: 0.85rem; + font-weight: 600; + padding: 0.35rem 0.9rem; + border-radius: 20px; + background-color: rgba(0, 157, 240, 0.12); + border: 1px solid rgba(0, 157, 240, 0.35); + color: #005f90; +} + +/* Inline code */ +code { + font-family: 'Courier New', monospace; + font-size: 0.88em; + background: rgba(0, 157, 240, 0.08); + border-radius: 4px; + padding: 0.1em 0.4em; + color: #005f90; +} + +/* --- Project prev/next nav --------------------------------- */ +.project-nav { + display: flex; + justify-content: space-between; + flex-wrap: wrap; + gap: 1rem; +} + +/* --- Coming soon page -------------------------------------- */ +.coming-soon-wrapper { + flex: 1; + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + text-align: center; + gap: 1.2rem; + padding: 4rem 2rem; +} + +.coming-soon-icon svg { + width: 90px; + height: 90px; +} + +.coming-soon-wrapper h1 { + font-family: 'Oswald', sans-serif; + font-size: 2.2rem; + font-weight: 500; + color: var(--clr-text-main); +} + +.coming-soon-wrapper p { + color: var(--clr-text-light); + font-size: 1.05rem; + max-width: 40ch; +} + +/* --- Responsive ------------------------------------------- */ +@media (min-width: 700px) { + .detail-grid { + grid-template-columns: repeat(2, 1fr); + } +} diff --git a/project_pages/project1.html b/project_pages/project1.html new file mode 100644 index 0000000..c44ff41 --- /dev/null +++ b/project_pages/project1.html @@ -0,0 +1,104 @@ + + + + + + + + + + + Web Scraper / Discord Bot – Lew's Portfolio + + + +
+ +
+ +
+ +
+
+ Web Scraper / Discord Bot +
+
+ Golang · Web Scraping · Discord API +

Web Scraper / Discord Bot

+

Automated SHiFT code delivery straight to your Discord server.

+ View Release ↗ +
+
+ +
+ +
+

Overview

+

+ This project combines a web scraper with a Discord bot to automatically surface + SHiFT codes for Borderlands 4. When a user triggers the bot on Discord, it + scrapes the latest codes and returns them instantly — no manual hunting required. +

+
+ +
+

Features

+
    +
  • On-demand scraping triggered by Discord command
  • +
  • Parses and formats code lists for readability
  • +
  • Error handling for network / parse failures
  • +
  • Lightweight — runs on a small VPS or home server
  • +
+
+ +
+

Tech Stack

+
+ Golang + Discord Go + GoColly + Request/Response +
+
+ +
+

Challenges & Learnings

+

+ Navigating the structure of a dynamically rendered page required careful selector + targeting. Integrating the scraper output into Discord's message format taught + clean separation of concerns between data retrieval and presentation layers. +

+
+ +
+ + + +
+ +
+

© 2024 LewisPriceDev, All rights reserved.

+ +
+ + + diff --git a/project_pages/project2.html b/project_pages/project2.html new file mode 100644 index 0000000..ad74880 --- /dev/null +++ b/project_pages/project2.html @@ -0,0 +1,103 @@ + + + + + + + + + + + To-Do List – Lew's Portfolio + + + +
+ +
+ +
+ +
+
+ To-Do List +
+
+ JavaScript · CSS · HTML +

To-Do List

+

Stay organised with priority, date, and category sorting.

+ View Release ↗ +
+
+ +
+ +
+

Overview

+

+ A fully interactive To-Do list application that lets users add, edit, and + remove tasks while sorting them by priority level, due date, or custom + category. Built to explore front-end state management without a framework. +

+
+ +
+

Features

+
    +
  • Add, edit, complete, and delete tasks
  • +
  • Sort by priority (High / Medium / Low), date, or category
  • +
  • Persistent storage via localStorage
  • +
  • Responsive layout for mobile and desktop
  • +
+
+ +
+

Tech Stack

+
+ Object Oriented Java Proframming + Local Storage +
+
+ +
+

Challenges & Learnings

+

+ Managing sort state across multiple criteria without a reactive framework + required thoughtful event delegation and a clear data model. This project + solidified foundational DOM manipulation skills and reinforced mobile-first + CSS practices. +

+
+ +
+ + + +
+ +
+

© 2024 LewisPriceDev, All rights reserved.

+ +
+ + + diff --git a/project_pages/project3.html b/project_pages/project3.html new file mode 100644 index 0000000..ffeafd7 --- /dev/null +++ b/project_pages/project3.html @@ -0,0 +1,106 @@ + + + + + + + + + + + API Accessing Practice – Lew's Portfolio + + + +
+ +
+ +
+ +
+
+ API Accessing Practice +
+
+ Golang · REST API · JSON +

API Accessing Practice

+

Fetching, parsing, and displaying live data with Go.

+ View Release ↗ +
+
+ +
+ +
+

Overview

+

+ A command-line program written in Go that connects to a public REST API, + retrieves JSON payloads, and displays the parsed data in a clean, formatted + output. The project demonstrates practical API consumption and Go's standard + library for HTTP and JSON. +

+
+ +
+

Features

+
    +
  • HTTP GET requests using Go's net/http package
  • +
  • JSON unmarshalling into typed structs
  • +
  • Formatted terminal output with error reporting
  • +
  • Configurable endpoint via CLI flags
  • +
+
+ +
+

Tech Stack

+
+ Go (Golang) + net/http + encoding/json + REST APIs +
+
+ +
+

Challenges & Learnings

+

+ Learning Go's strict typing system alongside JSON decoding required careful + struct design to match API schemas. This project built confidence in Go's + idioms — error handling patterns, struct tags, and the standard library's + power for network tasks. +

+
+ +
+ + + +
+ +
+

© 2024 LewisPriceDev, All rights reserved.

+ +
+ + + diff --git a/project_pages/project4.html b/project_pages/project4.html new file mode 100644 index 0000000..038c69b --- /dev/null +++ b/project_pages/project4.html @@ -0,0 +1,117 @@ + + + + + + + + + + + Graph Theory: Flat Buffer – Lew's Portfolio + + + +
+ +
+ +
+ +
+
+
+ +
+
+
+ Data Structures · Memory Management +

Graph Theory: Flat Buffer

+

A memory-consistent graph implementation with zero object duplication.

+ View Repository ↗ +
+
+ +
+ +
+

Overview

+

+ This project explores graph theory through the lens of memory efficiency. + The flat buffer architecture ensures a consistent, predictable memory + footprint — no object duplication, only controlled growth, reduction, + or deletion of nodes and edges. +

+
+ +
+

Design Goals

+
    +
  • Flat contiguous buffer — no pointer-chasing heap fragmentation
  • +
  • Strict no-duplication contract for all graph objects
  • +
  • Deterministic add / grow / shrink / delete lifecycle
  • +
  • Suitable for use in performance-sensitive or embedded contexts
  • +
+
+ +
+

Tech Stack

+
+ C / C++ + Graph Theory + Memory Layouts + Data Structures +
+
+ +
+

Challenges & Learnings

+

+ Designing a flat buffer that still supports dynamic graph mutations required + rethinking typical pointer-based graph representations. The key insight was + using index-based references within the buffer rather than raw pointers, + enabling safe resizing without invalidating existing relationships. +

+
+ +
+ + + +
+ +
+

© 2024 LewisPriceDev, All rights reserved.

+ +
+ + + diff --git a/project_pages/project5.html b/project_pages/project5.html new file mode 100644 index 0000000..f98cad9 --- /dev/null +++ b/project_pages/project5.html @@ -0,0 +1,57 @@ + + + + + + + + + + + Coming Soon – Lew's Portfolio + + + +
+ +
+ +
+ +
+ +

Under Construction

+

Something new is being built here. Check back soon!

+ ← Back to Projects +
+ +
+ +
+

© 2024 LewisPriceDev, All rights reserved.

+ +
+ + + diff --git a/projects.html b/projects.html new file mode 100644 index 0000000..488c9b4 --- /dev/null +++ b/projects.html @@ -0,0 +1,115 @@ + + + + + + + + + + + + + + Lew's Portfolio + + + + +
+ +
+ +
+
+ + + + + + + + + + + + + + + + +
+ +
+ + + +