From 874ca152c9650d888542108c776389e33b937488 Mon Sep 17 00:00:00 2001 From: Arthur Lu Date: Fri, 4 Nov 2022 16:05:41 -0700 Subject: [PATCH 01/15] create folder /admin/cipipeline, create file phase1.drawio.png, create file phase1.md, create file phase1.mp4 Signed-off-by: Arthur Lu --- admin/cipipeline/phase1.drawio.png | 0 admin/cipipeline/phase1.md | 0 admin/cipipeline/phase1.mp4 | 0 3 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 admin/cipipeline/phase1.drawio.png create mode 100644 admin/cipipeline/phase1.md create mode 100644 admin/cipipeline/phase1.mp4 diff --git a/admin/cipipeline/phase1.drawio.png b/admin/cipipeline/phase1.drawio.png new file mode 100644 index 0000000..e69de29 diff --git a/admin/cipipeline/phase1.md b/admin/cipipeline/phase1.md new file mode 100644 index 0000000..e69de29 diff --git a/admin/cipipeline/phase1.mp4 b/admin/cipipeline/phase1.mp4 new file mode 100644 index 0000000..e69de29 From f80bf799a2ecfdd61d301a94d65003ef39cc7dc2 Mon Sep 17 00:00:00 2001 From: Arthur Lu Date: Sat, 5 Nov 2022 18:36:22 -0700 Subject: [PATCH 02/15] update overall pipeline plan for phase 1 Co-authored-by: Graydogminer Signed-off-by: Arthur Lu --- admin/cipipeline/phase1.drawio.png | Bin 0 -> 41801 bytes admin/cipipeline/phase1.md | 15 +++++++++++++++ 2 files changed, 15 insertions(+) diff --git a/admin/cipipeline/phase1.drawio.png b/admin/cipipeline/phase1.drawio.png index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..d536460a332d0d1890ffa60831768429a3af9b86 100644 GIT binary patch literal 41801 zcmeEu2Ut^E);2a21r-$#P*k`^5u_JE1Ph2tP?RnN1QJ?+AXQ34L=mNlp@kwUMQK5U zfV3bgC4`P40zyQjMnr*7Lh;|Bc)fCGzJKn_=bicH`uJ#aa`xWmti8_K>wVX|&rPk< z>KtqN*0Qj$aGX4$dX9x(Ty_x|5lswI&LVumiutFU>cR zl~tJU1@5tMKx*NDmDA$TlJjRU4`|zXE{r89v2fJY299u^Z@X}!3kqfDV&nMRgBBZ1LoU1J2fFaFqLe`?*7Nc5_0ZKvT83`8kHLW7=-fF7xe<|BYY2 zUB45;VPWvU-vG=db2{D3>|7V_O%>s2hw`vzwx9dS*~Me=wp|dHK&MBoUF_|^6-$DT z&Mr7lN<+uay0mqzBt`2YnbBZLG-J={_7F+`OgY?mbI{+Ob7X0gXtT1Rf~V@3wzlwp?PN$D_<55d_xC2_)PM6NEH3Il zAx0foG6`C)&en@TYPXc!MOS9VaMa$+285`^Z%dw!Ul&s5;{AI|?RRVY|H3*exfn!# z{z5CckQ98E=`1l1!U2ASnH@3{6+1I$XB!J(rSB|)xMbsE0Dfc|kNMex$Ftt z-<;npO?$rc*u|Xn`^0APm=nSdEP8GWiQz)`znASSjG%=AVH!B)LRKa9!)!}QFGQ`y zF6OUvq1CTBll`S1J6a5POyhvNTI_eR9~UzxD}>9Ee&%v7^~I!Y?i&B6bWHMZ<-_2v zT%G4vAaxs;6Rzgqz!3{(MgWpDIWv1lFz*iL&dmRoxYeKi)X6Lcss-~c=B?j(!J>h` z_kzXK7Onh8(p$-;`K_jngN-Ff{eL%``m;^-ZDIWrOtmx*UE)dq_X5iUnViTztqDAEQboZPqNU0=#3(F<;s-83iM~?%(4B?J)LN3K3f3_8W3}rvnit_VL z_0J?*KPEtbB>9@Zihnd|lAL>*{%zvVkJ-*2&6*^CT+si8@#lB&$^V`BBej@6{fvZZ zfe8QZ$(fHor?f%1VbUOgKK+rG{dWsBKht1~MB#S^TVkL8DQ)@_L(RVxK$HG4Lj2KC zBeggy|N2x%YAKHYo2iba6DSq@XXQHIR_&h^iCLxe z(k$cugbjb@S}MIX1Nm=Q2NpP_@7IC(sP@-7FsJ*QGsFK>3YK143HUGYokdRIH@-6$ z&HwV9f53N^=J5XwzOxW*f8#rItJq(@^AGsW(pt)YgYPV4JKy`xJb&<)@B9P4v$T4o zY3AT+#@s;gcj%V?8eRV)YWxYL@ZwP4)usMpNJ5##i~kvRT3XLJ0%s~#m_+J11amtP z!U-^5|7N`Ej||~YHQ7>zV%|_pV$gn`E1au|%`t^mC=}D2F3jBw_6R4SAN_Z;<&R9^ zPqpPzree-?7G_LZ)ttGjO_OOfV8VYh50qWhg)CBHKarb|S;|c;vCscKesz)6`aVaI z`BSlxjQj$hx>%=J4BU%Fum9ibne1ZOZPA&2Bx>jH`ClQimiaf~Wab_AALZERS-C$e zCzV~C--T(C`J;;ZAA`p?etpq#{>FTR?Ga|oO6THfj!eb>-0Hkwk{^`&Kl+vQLXi5l zfAxPlf1!%|>u$>VE0`PY59s@4{wqlxnT3SmufPRdW`5`NKkLXc3#;#+=E(n*4AWw5 z?%&9f7iA`YYvKI=U4dnOER`;X`o&QDzZ8)drFwswBmZ~OT?>!zUyl4Qi^z-e_CL*$ zmvV1^DYyULt1lJ<-ggYyU-Hw%-KtEsVZoE<(%irE3K7|*4BFq4*-7lR@NjfOI6MFQ zZ&&)6G6C78gxa4%XZ$fpx|k^ZW-XcXi9ZXb{z&La|Hvl%(WGd}28F+o6wN&{|JcrN z*`-9_f07R@#DL%Uz?@hAA^AQ}+;(-R zeQD>Ms-Q?74ZHJT%G zo#1vnM#H*UU)tS#XwMbm`Kz4g?4P%_wPCuty7p+)xBmi*gF@sVK76<@h?~LC2qDZ? z%aH4nvLLuu17}z;-E~l-;D`MD{5uj75-c7oMYO$rTa^Fo*(H?`^&5S(R3vO0dPS*l zYKp4qZW%V|a2AM2c-$S&t}hc!FJHcN2Y(_|3*CWNb~x=d42se0}`2 zyy%xLHjh$|m~w2pDH#F=3rX;AWsbu4zFMkWJ@nJV6SX5N(L%@9Gmbyk*3$JQtlhiG zoZUB0J~aCB*>REOb}u*+kCX}q6Z-g%-20fewg=U+yuL7Fs6K2D$1=IjH6d%cZAR6o zYnCJQbtQaA+*dlx@R1kTAG4_kWLyY4ZaNygQ_D?v)kvP*vcByQBwIO4tmC!H|EW>& zp3f3`Lp~wsYz?xW9X}4w?y-N>2!(5Nclf4v?+VX#D!s7WJa&aFmNqvA+6HfHu?1;t zPE$W|=V{v2$=IhQGLbu$LG>=jB!vWM9=Q7Gsu~}!7w^FMV2!h zEJ&fWVY4i;V|6)j-FN~erqLfhu%((B(4e8qu~Nd2Pv=%(80aBkt_O-Op1~d}Jk_mD z5TPM#U+OgXo`;OQ*;8_Ll3&s@HO-d=qTzSyq9mS8{j>Jt6N%ysMQjEn#lV6rb5I$Q zj-yn^nc)RlC3LfaZ&jH*=woTQCbZG=0-hiusKOa0ez3ro&^HxBbn=L!)ULfAv)vS< zOVXvRE5-$Wl`JMjLkLx~8hk!2=!nRJ<1{$;VLK>Gv3p1v!Ot~PB7dc}u% z!w^Ogg(G!lJnc8T6_W&r=R;b?W$%Xt)@f^|lgB9-tQ z`83awb?COsYctP1?L5dTC1FUU)6F)LlyV8kjQgxgE6}jQ6ZuEkk|YerX|5vtx>f}- zgYJkDJ6Fvt{XsW0?PB2>+>@m0+HM)+BB-9}00A3}ZQPf1qzYjs@5+K-LgBC#LI+GX- z#{kKblCEg;43hubHSh_4Fe}%Bb2;8|1DFXFDmZUzbR1i`C;3`c`h2KRZqw zYQbixMT@q*x!F*+Tckx+j%T_&_5%aog;v|?HyOB1=i zByH$ND6GG(3FXB!530M=eC(T9>408)iE`~P`OeUX*1o-Es{d-QN1@x_Jf8}>r=4iqY;%h!3l=ikp@Y(j?X zKW1Bvc%aGKmuu!!qt*P3A$2}Qz0|eXvb-jI_XaeNO<^WfI)XD1leT+frN_u#U(|Z^ zh0P&aN4g-}8rqZ7)6PMYgDUZD7elvEQJ1Pj9<>4&rj(#!;f5YwFyFWj3+r9ViEf`#X-{CLCMd%i0m?Qbqt8(wx_HphEP4XJHKpLgW>Yk83Fe< zn4EfxfY8W1OvSId=Ps@yzjjOarsr@q>-0Y!?*D(+h*LXOBsTPsva_=*z(StvF6;3X zEaV6zl2&FX=OyIPb(2q(>UbNhd#8_SaxiS)od~+P@{+sRwvvy?(2A}z8#Zj9wzs#} zC^x@duB51Vr?|MdE~Tm8E5A&y!jI5dbq{smAcw4MU%Ic5WI5+^c-faGt*QR<^74w_ z-rh4ZD`T~TVq;_Fd3bn+0xS0@l#y?(La!)0LOtwwDowaSpH1@x`|c~mwYwia>S%3k zRiDoqEP^5v9WcZXJ)@(e69WSSD=PM_6Y(d^_BBuvuqk{oqvTf+1~Y6I@YC4TjI;Ky z($mv1Gcz-L4jw%Cf;W?b$f$LUi;Jr)EiJ8~({tAP>5eZ)4>oN=4+hCZ)n{Z`etOjb z@{Sy1p%49+lx9DVjg7^(*o|GvFK`$dw3hLFg2xX}f;8gpq|ggo?LAazbssWeMU2Ll zds&v#uR4yfV9M&Ru&mt4vTV&^mgOrpK8JI#L_l`Uf8BV61rjLv?ej|3omYr_Ec-N% zvMdKbF&ja-ExvtT!+w|rBg>)_bM0Gy(W2$wK5yI#dPA~2l3|-0irImLVbHhFJ0(DG z%`93rn-=?Ca{<3~#lkpi4qsqd9-Xo5UgIx|*9tCGl6B#_H(q(p>}|#25iJ=CXwo8rJ>L|9_V_aTwU9ho@X>9O(ggpVITRx%g` zRUbo%q zAz0N!F0VELraw~Zt{?B+d&EeZha(nIP?gt}`5qsfur-s*?nTE)UTCI>M(o{@W}>@y zb2nEXf2-_(@UG{j?z@kwUF$DCAyZoS^v!D&46+)PX~_UC1Qmnj1-kTrunRn-4zjO{H&!_w%?G#W>X^9HCP=foOmwk zVsS_h6cI#piVs8|uNpm{Ktxs`rOx9n=2s&CQc30yKMQ5SBpWDI)F*=8`Gj}yjM;xq zu`^5?4yiWb2H3zz+7Qjhc>IY3Der4SY_T(ZjpHDs^~RVr;7~gXQ&I;l%o}kqimdY+ ziXL_1V*ibyxAt3|$MQE`dVTWfmC~q{7R|w`*bH3wWlBmb#H{Ml)9h_xyb+eHiLeg1 zpmA5W@I&nZYRUi!tQ7%f?%iv(~M{5b?Ypw_ru1-auK?X>YBlicPXn z($OViBzDAF$n93RE|uD7mpxO+hRBBMdo+!|n0WPRlX|L@6#~!rW3SG!#P#QZdHy%wj8Af_+BA!e%_)}bJ%oM z_?n9+mV*Sn#x7jAjZ817xkje9+Vi1?1?1AAVN%J)F!>z?Uucmn z1#C5qY8Ql4_A$7HlAj1+`;6q^o)nD>9guW_2}S6rQF*GkwqA*)ZQ@W)=2Av|;NKK}yx>si&=BdW8fRcCw52(!=?^5#(Wdn+;Iqz0Lb zWNIN4Hj?8aGh)Yv;kvH@aetxB=@AIkyLNlKZiD=xrnvLQj|pUK%cbm8)Fh0s=SxIt9_ohGO5V?bDA z44rxV+91PLg2Oz5!+QjW^|76Tam&^u$r8S>j${RcKrs7MdWlw&o5FCyY9M+UNFDay}-mWGl zrnsg*bQ8EzGuFVTBfWcN<#TWeB3p1-vQH)*qB$!ux`R@>{xx1(+a@5Ok8kLo%du+vfE^V zecRWzFYXaTd{MijGYDr+qJ}RL*G$&tMN8Jlxz|WGTgA0y3CkIhZ>;-@37D=3M{?VD ztFd4rq6ChqO1opo5jBoPIhkeG92$jpnd2|3Hz9;FN#toX9f?Fq>&r>MGiT4~LrQOg zLDI#u-_%M?4s_doEPy%!$c}wYa7vMrmTMTgSy{pp=7Vvnd5~EIlCt4Oiva5$Tf7~= zsk4yV3}Zb-?#6+jOvL6-B&`Wcaj0K?8GLd8PV!HYFicr7>z`p;OS|Vf%W#rMj27Tw z_wC1dMWUX-r7z%)i;PT8O$iR0s(vtC|KxL%rNBxj6XW5XNh)h;g4-L*2%^5i{N1)V zJ3|SKnYGpFql_lqJtJxbYo|<1cZj8MROQ;_+XZP33M?^HZ?DrtCZWsF5^ zjGS5Q*{ZOiB8vfuwF+5&&69;|+U*T1J!ol@5MhhW(Sbo}U6mde&vM8mzRL`BIsU|w z=N1Hms2YW@cJW>2iuf!={g5%@&Iu@iz-Na&f}@%xe57~yz(g13k%UYJ$EwC)&&lcTCI7H6`LKxiHXQj`cfKv zJW;%^wpJi3E2~027rx)v#H6aZxj7JkkK;I)I@J+TFCQ20AHz3_p1{Gz%s5u;lQ{m0 zW97r-R)AARKY#uVpcribF00MG4Gm!*2M5t|@u$-_a8wWPVEB`+5;{N1yncO89HQ~^ z#H~P13|GaOV}pyts!GE~yVH^m4h|j0#>PeBf(akC=!NUqkxg?Z21H#5f{ zB?_nI<>rnx0ATcCVq$Az_oFtrRKCKYLx%_j1&rrUs$Sf>pQYkCO1DZ$^%q1-8pg2d z9nOf(V6o;)*Wv#H5F6ab=PR+cHpKBb&6O)%dfT2odz>5{9i7qW%oi8P#fMF&GE_|u z3f1fm9|$BiD)ntMuYfBY-uI}o>C2_*&cVUKgV`+~FCLjW)ffTjT5|-Vd!*lmp){g? z4K|}jy&HCga5Cj&Ztz|*4<=$T;MC@=5D^ab^S<-gWCDQe$xYgN0+?i|#Ea|9gTChA zvAGr2_?8o@*SWmu&>Z5aj0Cx|kxk=Df8wc^VR{R=hyXwl;Z=A92p5}!9OqEoy{!O8 znJ0a?Xx4eIalWnAageG&C8&->FjS(_JSN)70r*qCke1x5#40_$<$iM`zW_LOEzeer z?z87E8|I)D9^?vDdNDG-X81pYP8O^oNgtXkLiUklALlY96e;(*QiW2Gr048Yxw}hG*{JtzB1$`;MOy;NceA zJ>Pa20^D2G$`Otz=1^6~=8;|_$mxL1My@RrJ=L5ga# z!E-kV*cVi_rF4(mx{uZ}1xBD`M0Qb}c@p3)zH8h=wrqNESEkFXIlf2Mi`!*8_xn}8 z3F8P#bF=b!7%cwd(2xqKs)W($bdMXiXXw9EE~-@SyTJm^uhrAnr*?qy(lvr5nUB!{ zGd2DCeqg{>BaBdO8fb8;7ep}9FYG~^Ff@nHzHnA=x4zcnGxBnB z%E~G#6&F0-e_vp#larIX8=sIM9W?`}y=TuJ3Gnw!_uZak)}4%r(`E2g1L?_p>$16% zmv?Ootw<0M5Fiv57V^J&F|2p+dqV8o*3b&mZQ$3NgxR%+`ld)AU`6^2PQJb{>+cNK z9<`MiF0m)KVxmR4q^_@4;0q=w9X#k&%`58TPv#BH%*^BgA&=v0>qx33U+`rwH@C4h z=ot@{J}>#$8bXh$m$GbhNoSmFwJB8Z8R5LGIsWNhE`eUK9=K+|D%rR^RG|G#SX?g~ z!+*_`)@roSJK;xZpu$JtS+%csyLoM_ddG)R)e6YA`w{+Xe4Dq6Nih7go3yn32+^V( zLc&VN0i}CzzpSJo=P4V5BuT^0<%tW-9*EBpcV1Y$f?v;WItQlYemLj=+{z#8K>7{* zkf@gURLk4yDHG(?)T$Qf6%AghoJCb0&62Q&m6ncR*}(hIU-ONePpfx952j8jJHo#1 z>ps?m1NMUt8;$)4*evnXB!gBr3BzuU9Yt(;JTH2N&{>mw+o-GD`-Y=4hWDtoALEF9 z9O{wE(BtN8XEJlx2u@LU zQkPN=_7mJ-N00_dF!|FIWpV9%PB zylq!IR_VVK+}@g3zfAXB@!XZccoSQ2;vj~&zce`ND9dJe~MGjG6Tz;PwEYD)6 z2KM_A8`I;F9{@bvcN?d^HdRU+R$en+fUB3Pf}{0SFAEBqy1f#}$Py3SM6!C!wueF~ zgSYe~Be{uiyfM_UuV^ss;Ut6&qx-&USU15Osz>25D)8<^WCv+@=ySE&V=w#U`zTM} z9%kS!)@B=jhP=(YmoJ9H89u}n_7DmOBRLDc0x)T5ox8_R^AbeRlqYP*&B}2OOHvvN z15&+PzI}HxWe_3-wOwzX4!2uRF$}H}(00eNU){$JF#OXM5(;}B+la=Lr==2T&j5xr zdXzk*k~_=um9Y^*TGhI71?jbA0+zq3FMrhME+QlLvyxwfTP8bq|4=~X2DK!{rY_rR zWfXRQIsxZ@Kqr>K(X!j3)2sajRPQN)Fddod%{oHy_X;SkchfXU5Mmav+KP&x2b8Ak zr*q#AFmi{*QMdSvTQ3&E$##A%V~lNxlb*sfNZhFHb=gRwpy1~*iA62I%=Lhx$tz=X z^|RQ?Cx`Y)A%yH&?v0sQwMjTinxc7cTXH9f@eGHp+TDk=D6Y=3dVoq;nf&P>N$I0W z|CAC`4;_rFK3h$VWvzbA6IF3NSMKQsZh$_o4p#7RY9`|r@GPkeE-UWfC2wGlHx6#n z3S9@QxhH&@VyDl>ND(mDos;(?%FQU_!RR(#ksd{~K$}IpG-=PxQvJ4LxFl~%=Wo7y ztI|kV$`Bp89tI6&LnPe4NHmabbGdmRRu12JNK>y`ajRs3iC%D{yc$b#?vrA-@z3l=f>mD-3WItG3Vx?s=G+?inL7%Q*(zB6CUvRY_r{8sc_8OKpB&4JWu!zxHd7p?$b0P6ZH`G(U?4M|dH88~5lSca-Sx54= z4<_8KG!3Xs2&gpW9orS!aaL!AuK|V(z;2K(rR&9%Y^@`Nq(hKX6Q@ixU%#P5Nj_3R z*qSJ9NC(yX=Pf*UkSV1(?QTJ-t#uc|P7i;2fm6T6k$5q*mEI8BU!>D?g{(4;u03zm zHnv)Sj5pscW000VV0x8+bAFW*Cvwopi!k_f$KZAEi7!b0#>ARr=IP5N<1^KSA zfuP8<=4J;3^9R(U%}yN9Jx<%8_JL}S_kUG1k?Xw88-1MQroYKN^5}r5iNg3A0Gweh zw{W8BGww#^53tGBqT%CFNb!t8Bo^=R>5+*zwiIHwPUXC5+p1HSi&vu2*|$;@n&L<> zs}4KotV5@b+fr%!vBb23nQ_5kIY{~kE=Y-tZOc=hrotm~W>M-l#6rD{YsV%cPu|SG zrg>m@Xk+WXBc=)YZ>-=@%RQE#@?YDBJlySRY~WtVaP0gFGD~}1j~ta4DMN&ar14OX z10L$$oKjXC&qg~BhjAmRBRg=V+yungV&-na&2h*)>s-7#HvUb?u)$jZl|PSY2Ry|ZPoA`>9h3rlwX?Y z!f$icZw?+D#I0&~d3g66mI?KtHR5Mav`h`R?K?unDO{*x&m*$wh71xrlEb&k+{<7jBJv4r@jV06ZsX+CZn zkOn+oEZdpmWrC7EZw1Tt$EUAf!PWLAn}KV)zAor{NVql>K*HM7YBdW2m@YcqmFr8- zmJgsLU}tY%99?6H0-#Vj68zo<3Wn-^w5)nRf_rvLhG&$1;H{%eypOni%RjdE z{)$W6pL0j%wf=xhso?kb0Jmz6(xZBhP)$!iY|5KP);(k$k&nyvp9E_jMPEY`8p)mf zqRYGB$&)W%CMPE`pCOUiJ>XAGSy>sF*OTQd@7mkhDIHW%u@dvT^)x@CAj~n=WC%fyS0ZcAx17U0z2a z_kr|Hr!ri$@*z+$y#!gTyJdDu7d(@@vHpkpquBep@~$s=C={v$h?Jt+_MZaTy92<( z`XGC+z^Vv-Y>b+0%WmEqUlN^hbSxC-@OUH7AI6H#>Jon(@!hGoeqH0_JX$==3(%}o zsrSp>0G0*~&sPwAWdQuNIbhkgmI=Gpu+O2?wLsOg&-lVW0n26FSN;>=+QZo3S@;4l z4+jNo;my_Z#!`R**t=oA&U)e)VDtPfaxWVKZ`3kqPQg5bE0{irLd;B zR@pC5f(es}FRg$Iv#z$T4ojK^u-w>KCzQkavP--U7^<%Hr|W0 z{Z4?Hb1hCY?t1}d?7j28K^0x%>w$bk)zs&@!01djP*jjg#=LDMd|oObqe}$uyz78xO}DoW6p}7wADt1^bvrgG z;QDF|*RmmZU0xr~H2}VU-lB`RqZ$AbfRGw^89d8)eVRKWp`aFShBx7TTusII4t*67 z{JQT!;4yu~wA#kI4~YYwv1z0>{aA!?mHJL$yzS>-Y*dCNw;#vd%)eVB$vK9emUfx6 z3?kX#ZJl2?UlPD(~UGbcm0y(yn8T2H8mPK+){&1raJ^7)s3uMb_r2Of#|HTYW_)%U_K zW1*4d%i^Uh0e;W&&5+L_xLdbwEvP+7aeCtXh8snptsTv*Cd;dRD7ij%5y18-^(J^e zoCF&W+%m(lJ&!=C-H#zF0en|7Mr}3Bj8e>1MA?#}&Iot=?ICW2q15bU^Ke z@%xil%?l#49zko&?h8qx6(J;+On(@cB+t4gJtmKft9V*7rP{cpKGJ2^{!XP zLwmN`l=FIhd?k0cVC=RfJ7EgC*9xk)R{=)9y5}Zsdj>MUr~Sl8ND}IKEW~Po8Q7hA zRZY>r6!!8`w6(@-3K{N-zz@g^ynZ#+6C$k9AiJZmr-(S3leIktrgd-VtFYkL@t64- zW~?5@=?%0%+U&dYIQvMbMcL>@X&fY-w9)?ppnbHO^!Hr4Gr`WdFRdrG`Bh#}U^u8X zQbEBppfYOv7gidr@oOU~{83gQ5#LTMvIoI7W8Z+cqA4KyO= z#)JZf&NcW>^HKn@!9A+2sL5Uol(_fNRc)jCrwZ-Ow|)xmp|f&oTW8;>U<0MtA^z%S zB%?r76vlo|Tnd+AZ&8z!rD>s^(vzds=T2>Zbjp-pn^N--DJG|KG!d0J;F(!dEMj39 zJ4C06DUJpAuA(6^>7K<>`d>o>yw9l4Vl=K_LktuTQv`>zI4ngjeYM7Q;)ayn4Oc_0 zvSKV!k<P4eH5JFs52YON3J~adml z+nILnzHusq)^SC7)IH4o5ohBsnN`2se2ygw&e09^!M2=sF`4{L@dlK_Tt&PNa4TC1TiyBQ732L;-%8mi@j!_u4z0K;;JC2W{hIG>WW zGPS1p>kiMmTbim01$u>yCx&e1P4RHrvyQ8#lTSA-NoQO+SmV@1)!B z8RfJ}IGN4+?0AaB8nk)a$Jg??ortuAFVp0mFK4uOwHZ_D!_>+Gi08LVPMUxSS$Yt2 zuroEFC_)j_ZH|xWvm1J26U!YnW^d0>BCr!ZZC=Zp9}tI;p`)(dr-6Jm{Ekz!C=j&x z-z45*i7pj{#kWkBzU&--ByD)iD$2aoy$0?IOO(3=OUcZdS+yf*ta-jYdry{#b1gjo z&N&@1puxRCYBTj{qTl=|%iXj(h~Sj{*5EUPaC%SKo)UNT3vZj=XAd;>ijU;T?@JIp zMkzYcaNOB%@RqELiRI%HtBVUCw^Ir3K{>%1x)e7zlAAz!`|*UyRExobres}6L)Qzn zS`QTZSOp$g{Mxy(w;-k3=HRi`ZAQ7dK);c@F`W{4+5P@dYl7``{*@h!^Yn_Vcx=XvR4n@G>h4r5_F78Eg*Q7j$t8Sh&F>;%@jA^JElO(Yec8l^tjegJzq*A z}^b4|Xok0+w`4?2Splu?-3v8cv_^5nXqr*1~KfT3f0*Kl2j`?mu$AQ?bZnG`zvjP^x1U&V!Dw)9PDa4L9Dh*$K>zR@&p({Tm& z_Qj3YsKzdWbXjVpcQAz1dlAv+k?D1adpaaB+;fA}N#oTX*8ZgNkY~vIp{r6agbAop z4IIu7MBU38GM2&KYxSNiI`Tr+tJ$t_#yNmEfP4wBl`&4XZpc6fWHkYwkf6ha39@RzT6`uc+)6sC4~^1;W1!UsMo_#zC7__{5JYc zGhHXks>J7m68AAFLvap7kMNuNWqL8Co+mcRV$k=kBeP9<0!QD{U5Q6s5b99(#2Qh{ zkr0{Jm6IWjpv!B-^VjqUt#anot*_vOC`%OHNgz-XA_6bcwvt?_1HDsr?}=&7HO)62 z8snP)S2XsBLJte~f}8DbkPnKDJkK{;2DjnWoV{ocbiy_nKsK(W`BLyuR>m20MfCff zY5hf7rc<1o#`M&v_bYoEaLm-pBPe3m1EA+UB3mK{lBpPLgQT1o(OAR4+co+77>bGK z47He)f5b78ur)MtGo=0c@rAsVLZP_2!6@z?Ne~emry?Gc_)W+pyAqJS0Y(4dl{` zQta!u_V^|y3bnMgP1z~N6M79@9m+t7kLSjX8>k0aD#NSMJ__-tsl&|eOx0A!TD~6C zCrIEI9+g=M!%p^`*WYNC&HI=2ZtDGxW)YL*eSawzkT4&or{nTJ3O9n^+5rVKuA0OU zr}$J;4sc)$bwG)Bcd_=2#S!8vMn5f6g%gf2zJE*~Fi-Q#QZQR|v0!)ls>RZi7iP`t%I|A`4DiN}2 zH}T(XKpRnfnaHN+>fiP2?lax388Ilt(_ia|J!dKPOt=0@9Gc+ygoTjZ7B@Ukm)(183LHSL|=c0P%rrLv`y*I0CY!b53>roLP$J5|d??-ungS zGzD-_Z3Z-=4WJQ|J5Pu#NU=?qM~j-8S5;Zy!`Y5Mn>(n*4zvf7=VA^5;9z{AVD%h% z(E^kZ2ocSg=S<$EaqYZH;dvAbgcKExAC4A9T;&v-JGcdq9J)c_N@AkMrxw~)0mVc( zTMxe&77P`BV_sU31T+PwUP`vGF9Z z%3RQ+djr{n_f27uP~thr*3LOK{b5NkOxX!y*NYd)N%L**1p!lIFAzHKfT50i%u6c{ z^8vO-W?Q!XDyAt{vd)cseKXV45`UTcf6>%_E62VUu`5+_ZIM^}?tue4Le>@z+X0>X z6p$M6XSW39w{LQk;cL&#$e6ZOjGr}7B|OwJ?LmcF&xry$RY%#d*WcWTe2@PfdHeeg z_RWmnk+;7z7DlIo^R2)(5!4WnDI7JGruq}yLBuY3R#4D-D(jWRekq?pQXe8`B zdAEdNTDS8$!ufk33@{nwGjDCRZ093en#B2t($z16e(BF{8SFfTMNNojH(q`&nti`G*djA?{vxY#BRinR==vBW_ZF&Yqdw;4&93rA+ zx}R(iowJwg?~&|OQpAg2DR%w7r4+jes24ci)CE<6)Z4;Jl?&WIbMvcoM(w3V-hYB} z_e}8ON|ic_9_=IV?)-#nUGe^FPFv>rj5Y^CbCHQ@{6v7Nz-V!7jisqZL&rvYK;@*` zMg!*A5uF1@usOR=skTsuA8~1oCsNsNRG|)&#L%0u=a1jg^|0OHkRSsG^yb~x=jG7a z_@??uRvCdYQu_vXNDxqFVB)<9q$Bek$qqmcG~Q!x8|897FWcB7^yUPC*tiv-~gf|ZlM2Kp6sutn9SMlW&8$l#W*O8l&GSum%blX zMbNVsk0o$wA3^9cTj{Ld-+NEeu=dewZcr&X@emAUqr_m>&L9p1Hih>))m&Dq1SLD) zhxc&I0>wFr+k!{IiO;pqaRFinh#x%nf-SM0F{@vrFT0_Q`#eoVj+WP^ky3^>vO7C4 z1r-@_>RR4*03VG;3MJ$gbma0iIY8TQ!BbJmWpK6X%|LGmwqbUCX+3l{w$nCNv?;NK zP!S*&x>YEtIP3faf-p3Ff8f^i;LI5V7>$9Y85O6~6C?~%U)N@D-(m6kr7l0hmOci8y`FXH^z!LZZKI5Fvwv*HLzBWUfha9`lhov?WZ*Fd3rai z_FJWlkT$SSizH!(OiWs=Q%x4=Qa8VwOqgBFC(>^l#N%}$^%P;0W+sD;Z)2iLH} zDZRJpXiLL{T?2|56j!viToe5HKuL?TMh(QLXC#ktyQ`!e-lFq*#xn?D0SBe&`!;UI zm)(e`TyvV_ERU5Z>4KuwuieTSMku6mXid$tA+G%PV2^I`PytwPjNXbhS}FUK0QK%N zO!tGN4k<|pX?LOw3L^`Lp4SCcx4lu5K$Ur`-mOJbZ^T%4$~(SacC#&jAlsgV|nP@RHHb1I4G6agX_c=UB2rXoZ5q zn>i=(iTr(mgshEyRmZV-XikF+Hp5abW8FnlNP1nkD*zo^3#F{&`T?AS?V7~~Oy3Wf zZVLdJF50B-%HbfQ?G2Q)-ne^3^LQ-_3s)@jy#VdOr_dBR?13l%RLjGCjgRcAMr?LF z`L*ykwJ4CVLnhd73Z0doJESeF{Jex>~`{jgAGL?B!vx4#|Jm1qp;s35}t+bu8CiY5V;TN95u&BpSVbB ziXpt|!~09v84M|5ppanXUex2wC;^Ih&ajew6N!GO_>P}NgH4s4+GiC!H|NsvBse{O zvQPSCbOt40ZX5A5eNG19bvn7dAUIEWof#u2!wvFaDBf=HNrP){#hAl^wl`0U?-C(O zj|g(CyGsZc(CPe%zay+yb_|{AyML!!C^7?^$l|J;v@xu#uP}f|w?) zmEu>MYnPPHcB-LvW2<-|;aE-R+cwxe!dGL}w2bUQka8YBF-eOS?Ov{UO$Bsk71M*j z$Mih+J*E}5O03bfh>XqHp|tJtjt@}1D58_3mO?n&rm_2t_&)xZC!E{aM{_z~!dun| z`y9GX9GDU~O0CPZeec5SEw3a&#Qr!K6I+pFpN-fYfzxT5+C^r&cXQf0y2ej zKI_UG>w%+7MED@g`IQe6=|Hbz__*HiPANo59u4EA*QikBj`moB9RRm1mh<)@kM-c| zT3X-HgP6O>b;ny*l*u{TWyQA2n7P>Ov6yydvzNedZAPbESAwuc70hiIjttcD1%l;` zZ&}C;hgaSXjji(Qu|BHHz22}`2tS1Mn&F`d!Q?340fuPi7*(@Ge#(Mjyq{9nUv)C^ zjR9WT@I1SokTk~j?kiiHqK1G&6UwSu=Uc0v!&|frd$anBjM}X!hR+zTO}z#=JC@0l z_}Hsw5{x@O)RRw3>qRB5rWd*Jj`NMyyj|H^z9-9QO;W28DBOu9%zhf45Kq}2HKxHY z)2vqTbp6ARq5f*Ei0qTZq@>(a^^|UoWv;wYL0Z)cg}H3b91 zfpO^(M^>l>YmV&4W4F&ETwl~|rCA4(9_bIu+<1ek3NvctpK zVp{8<^ZAq^gKg}NtQ^_k#SvOBAlq7JjB9H-c-7e$Zt+B^L*~e+!77)0r5;)Vj`%7c z{(#{EBmuSN1N&nR+hTJ1W*uiJAg2~QuErMYcw+p9jGRK5_Ekb)eN~yv^}e_QP>PVQ z3x601?*|YiLR(o6;E_5+HSarP(6a zNT0n*IOcc}D^(-edG0bNf+@K>|Ee;Y3gm?&7R8T5!2293fx7O7oMB3a+KhaZvwW@; zF7&Fu#AebX)GHS)eO)HVc70hTase92BNlNTKyf^fCHC6jV_H%PXXr!HdYTH1j?U)l z%j6c^E=J5Gq+)u%_pGJztYDuu{c`*AV_#MpBnkae4xjmS)?{j@%PnZ+$w)#5H#Q@{ zw76d%jXm0!zV={vS_c905SmDJSUU*h_rcqg1Qz+8&drzkrSs1KCjo7)&ST;6mgR0 z^><1Mmte7z8sC@8C}Lo*^<1$Gnwh21TuB$zUF#gxgvCI>MkjRoJg=C+Z}Ak1|fE!#Q3YE&x(k%Qa+Pc`wpXXbTkMO$o>hbvi#rZ z|MyP+sQ(9g)p#JwEkS#GS9`nZn1Sp#{_fpbri_=w+#ew6Gt(gQ8wu{E$K<2M-@$s} zy3g0tBlK$q*eiZ5j{>EHY-yD>*tkk426fam=$fvy`$O$>yST~qQIkkRF@U_GdM0g$ zhpoYTFv2X`-+f=zz1SQkw)5F{Ro%HQ11@)iE4olrkhNRL#Y*NGg#*&29Vno)z)tp1 zX&==$$>Jk)TS;X9API{`Qb3ZQ?24d@AB?p*kT zn0|NYx^+=^=J|jtQh={OT%GjS0K~)A?uDK5Ho&Znj@7wbOtimo>pTx}8t@R$p8sX) ze}q2yd8RgiKl`3Ss|d5_(ntSxSNayWjc6~`W2V=IT7}@r0B68$@S z1+M5-;ha1?gn!*2g!XoIrTaz-Bxb>cM{}ebjgO{+#h}Koc9$D8a>Xx$YH1u`S3Hw& zoL2QR?cw@5ADV#hznG)OsAZ@JW5PV ztfOwaVHd-5;5?7|!pkUlFv)PG>!82{-bRts@oTt-?dI&=-1DojjY`^+rY{6uE%j}; z78fTp(!X>Irx3srcm2~AU$_xhI;@|r*!3hQhi)zxTinUi@PiFr&L}4ekTepmaj*IoGHI*D3$^7!zqg&}ry}bE}@CT?i z?}_NJHQvry18w3Qj9VvaX{5KZVuM!$jA9;Sjo;8bz+9$fAd1HC&W+|^GZdS2LnCm* zDJA+Yn)Db1Eg_aSXY84sRhuoDQ6-zzCN^aLjJZIsO(@|5sx+BLTX?{2TuqqIa2$mh zV~50Ku=j5nG;N)Xew1cc=+O2GyX8q)1Fi}2K8BJfoCT7d@6?fpAf)T()OnegAi}(a zK`DtGtnDUS{xs#0CY+U&zI_w9+FO=Z7$d4JSG`-i8Szm{UUHlFh6KXADsBtcFTjkZ z!m*AkuRchR1bYa(Uf?Qhm9ZI~8{a_n3gfcC25Cv{YV-;nU&7aus%c**^!NJS*VK#B zNOOSNzrwBPl9?whJg}hv^(UwFm$;;MBQH0}{t4LerKP(^eOqj!~ z+mibD*(62=0H#M*ewo|Tsc`&7;7*AR7+p}kR2=-8cMQcRNKJ^fcO?fOPR`wj4O!DK zWePTAaJHI15b6|uba!%kh7d3f_L{1%+RG++`>+^<6zS_EX*|w<+V2=xrX8!VZYQ@}kMpk8bGHkSrM{>+&Nr zPlIjXP*sAMASlZZd^y@?SNtGLb9GzWWSde!M?|w|)TzxzALTNSnov?u3Ce+YMRrZM zbybexRH;b#y)5Am-^A5a#@Nl_f;H^+c$bE~(ygVMkwaFLHxlE;nQzA;osHTES>SC< zK69_mBDWQ%^WOv|cKSI}p6%YyND(B(iSV)atOV)#q)ujVNWT zojuQbL}DIP?mNNNZyJ+;+tuvJ_zm9cVv3gBs^yI1QKXw`>?YsW!@n(hE|2sQEil^3lgW3T9 z7$kr*)yBT-W>*8pUS0<}#6Qd7&@?uPgm#+W+e{Xn9QX#<1#a8^>}^%<ShS9b1uAOel2BZR?el{-^|5%Yfp%LrC%6j9TD@|!c(PUp(g z$+u!}1!{O-ngHxhn@zq_uKsq`+N{YDPLoq>%NJ&ETR3;+3iG(j_iwK+oobkSPpx;? zy1S_tb|-CqdH>9undeq*eSG48OZ3;b*40mp`+q&lE}l2@+`5@zD#EXq(2vIZirsGa?0VpiR?nrtt`(HH|5Mf^zPH&=B*P~J6?~!dimeo zZ?0Ej@3*fAb7()X8QiIUtY>xArf|aP-5zDXs=g;Qii+eMy7}t$|q5Zeh)StJY8oDq3w7w}v{pRgl4T<&vJaIMn15YFi8)T3yy<)oC- zYZI5*hCIdVPXjldO#mMS2rfHCfosq}$6)RMt}oiP?{nx?)3zURhj!gvm%aUb=FB9I ztN&$g0}I>$SBxVRpQv#!`6&oIHtd26x}3GoHK88R;ffPQ!NtBHOI`TZpEJYH9*ePi zz3Q)?^ZoPZyZH7kXJq|ce&XHbGB%c=c_&XTux?3EIG`qDr~|1i1X=bOMXtMlC1Ca@ zk*AB9x0@_T_{Z1V@J$?eF3Hve#%BeUKpWsEG1jS_p7Qk7uY^nA?*BGQxhVT0!{Oi` z*;TK%%;p46V5vFrNU#Cxuo%{ElV6MSSs3jnr~cBC4xjw=lc~i;*-TTQ*~{J;y-fvf zB%V4`VdY`TUblGABFDJ+c>lX4AK%6zCX(IO&2A9`c%C*YB`j3tM_RKY_ z=2lAR@&0P-kITve&dgm}6p}CpX;~(7bi}==7Xek3W(BE?1dRz}%gD+ei=w-s0gV-*f;==|#xNBP0+j42XV$tf=USGDBw+O8Q zjv|DdelGS0&Z_7a zyTpMU`ir((b8Kr=DMa`Q>NOd~GT4 stkV>?_}?-YViqyfnm$(l#>ezuy1UC~(%(Z%${2va)78&qol`;+0KArpw*UYD literal 0 HcmV?d00001 diff --git a/admin/cipipeline/phase1.md b/admin/cipipeline/phase1.md index e69de29..d8d900b 100644 --- a/admin/cipipeline/phase1.md +++ b/admin/cipipeline/phase1.md @@ -0,0 +1,15 @@ +# CI/CD Phase 1 + +## Overview of Pipeline Features + +We've identified 4 major features which we definitely want to implement in the CI/CD pipeline. + +- Deployment +- Unit Testing +- Linting +- End To End Validation +- Manual Validation + +## Finished Features and Implementation + +## Planned Features and Timeline \ No newline at end of file From cf11ab22b41904d923ef0cff2720a18e81de4f83 Mon Sep 17 00:00:00 2001 From: Arthur Lu Date: Sun, 6 Nov 2022 14:31:31 -0800 Subject: [PATCH 03/15] fix drawio diagram Signed-off-by: Arthur Lu --- admin/cipipeline/phase1.drawio.png | Bin 41801 -> 41801 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/admin/cipipeline/phase1.drawio.png b/admin/cipipeline/phase1.drawio.png index d536460a332d0d1890ffa60831768429a3af9b86..99e44dabbbf44fb40d4a164a8b4d08e7c4062641 100644 GIT binary patch delta 1049 zcmZuwPiWIn7-!wqO|2%i9kv~|)mcMAr)}C&L!~Cxm8laa;wE zf2ap9UX@+sAs#%q9W0h1)OpgA>{8recoAgE@TIZoOXe-__kF)V-}_$bHCMgndidI} zWDmt;IVLAAUXP`Y(a%gW@v5%6;LiKd-0p=Q2qK)~ah|)3h3+K>&O!3)DD-}H;$+gT zbvZ#?5p-PW|F{W1UDVOsa@WG+X^9$EAZ>e3u?QlbUfeDiVRk~5E+HS{$h;?KHz)}_ zCO93>cU-fC^ngevxTMh-!2%z0s$kxu;FFFOq);iz>pc>UC_-2Ao3DZIaw|3ueIm^jS&W*6o z&QCT7JAhmlsY%X~2fTQsFpjr5ka1=Os*)~o%wc0+Dc$#BF zi5N~z;b-PiyMf+mYyK9lWpA)JS{nfqA9ng+U2TRixt6}f~|n6wur4GznD;u@wWJYIhzlnd-M*2iTE;VJk2P2 nP6Ta9sv3_MW5ADq7spQ;k0^@%vH$ga>RD|r=E==dOXvOqHPc<( delta 961 zcmX?kjOpYtrU_d`Oie9Sjf_-{3{ompja`6DQzOfbCmon3Pm>m${FGOCa*l-LWI1Dj z$qD>flMgVTMib|stR<2&*_rhgy7=ZyHb+Ku!O3~*Ig^t(&SHrByX8!N&e;VQ*D=uo zT9`dqi~HzgaTWf_tbKp3;2rQ+H)i{H^=iEGQ#vu zUN0au`KV;aD!zmp^UI_og~}lqmuhjbzG4C4O0yaR;|hT>e-W9Wc#2tDQ$L^TY##;K;b2l z2F=NtY&nxJDRv`?Nlpg(fAcCOBZSqzl|g>3+&o{!4q+N77UR?fCkMD?PoAcRV#4M) zb#`=x0${7;G>^eTVKTE8*wo4MRkloy)`rE3(qso6Nsw(|@#(q<@ftm__-1+iN|@7> zChssnDCRf1gyIi5<5w{LW*rlLWEW{p)-}$Z{MB?4OaVAif+8Ly?r2_vEWY`dxf9Gr z#mUi@AZJ%>{%46K7;nu67JO&T&II=0Rd1!qqIMv+RZRY8**H1h#$j`Xy&J-qyABXz z8XTcITAi)Isv8^+PUdp`f#iUxlXtuIBk>{8% Date: Sun, 6 Nov 2022 22:49:36 +0000 Subject: [PATCH 04/15] add .gitignore from js-unit-test --- .gitignore | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 .gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..4f2c69d --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +**/.devcontainer/* +**/node_modules/* +**/package-lock.json \ No newline at end of file From d0be8336be69e1ff866b7474379d4fe1acc02134 Mon Sep 17 00:00:00 2001 From: Arthur Lu Date: Tue, 8 Nov 2022 00:05:57 +0000 Subject: [PATCH 05/15] update phase1 diagram with updated mocha framework Signed-off-by: Arthur Lu --- admin/cipipeline/phase1.drawio.png | Bin 41801 -> 41683 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/admin/cipipeline/phase1.drawio.png b/admin/cipipeline/phase1.drawio.png index 99e44dabbbf44fb40d4a164a8b4d08e7c4062641..345eda10059a8630d216ba84086cbc960cf2b884 100644 GIT binary patch delta 14075 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 e^updP>k`pVpwCx7 Date: Fri, 11 Nov 2022 08:18:53 +0000 Subject: [PATCH 06/15] update pahse1.md --- admin/cipipeline/phase1.drawio.png | Bin 41683 -> 42755 bytes admin/cipipeline/phase1.md | 23 ++++++++++++++++++++++- 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/admin/cipipeline/phase1.drawio.png b/admin/cipipeline/phase1.drawio.png index 345eda10059a8630d216ba84086cbc960cf2b884..6989a35b6aa0a9a1642325ce66430faf8c50f36c 100644 GIT binary patch literal 42755 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 diff --git a/admin/cipipeline/phase1.md b/admin/cipipeline/phase1.md index d8d900b..046ee84 100644 --- a/admin/cipipeline/phase1.md +++ b/admin/cipipeline/phase1.md @@ -1,8 +1,12 @@ # CI/CD Phase 1 +## Overall Pipeline Architecture + +Rather than create one large pipeline with many steps which increases complexity, we decided to create many small independent pipelines which work in parallel to conduct code quality checking. Using this strategy, if any one pipeline has issues, we can still continue development without delay, and the quality of code is likely to remain high. + ## Overview of Pipeline Features -We've identified 4 major features which we definitely want to implement in the CI/CD pipeline. +We've identified 5 major features which we definitely want to implement in the CI/CD pipeline. - Deployment - Unit Testing @@ -10,6 +14,23 @@ We've identified 4 major features which we definitely want to implement in the C - End To End Validation - Manual Validation +We created this diagram to demonstrate our strategy of multiple simple pipelines. + +![Pipeline Diagram](phase1.drawio.png) + ## Finished Features and Implementation +So far the features listed below have been completed to some degree: + +- Deployment + - Implemented: action triggered on any push to main, uses the github pages action to publish the app + - ToDo: Add minifications ste between trigger and github pages action +- Unit Testing + - Implemented: action triggers on any PR, uses mocha to perform unit testing on core components + - ToDo: trigger workflow only on certain PRs which relate to JS code +- Linting (JS) + - Implemented: ction triggers on any PR, uses eslint to perform style enforcement on all JS components + - ToDo: trigger workflow only on certain PRs which relate to JS code + + ## Planned Features and Timeline \ No newline at end of file From 64a0aef48bad291deab23c0a8147e051c3c657c0 Mon Sep 17 00:00:00 2001 From: Arthur Lu Date: Sun, 13 Nov 2022 05:25:56 +0000 Subject: [PATCH 07/15] update pipeline arch linting and unit testing ADRs --- specs/adrs/111222-cicd-multiple-pipelines.md | 19 +++++++++++++++++++ specs/adrs/111222-jslinting-eslint.md | 19 +++++++++++++++++++ specs/adrs/111222-jsunittest-mocha.md | 19 +++++++++++++++++++ 3 files changed, 57 insertions(+) create mode 100644 specs/adrs/111222-cicd-multiple-pipelines.md create mode 100644 specs/adrs/111222-jslinting-eslint.md create mode 100644 specs/adrs/111222-jsunittest-mocha.md diff --git a/specs/adrs/111222-cicd-multiple-pipelines.md b/specs/adrs/111222-cicd-multiple-pipelines.md new file mode 100644 index 0000000..62495a2 --- /dev/null +++ b/specs/adrs/111222-cicd-multiple-pipelines.md @@ -0,0 +1,19 @@ +# Use multiple CI/CD pipelines in parallel + +- Status: accept +- Deciders: Arthur Lu, Marc Reta +- Date: 11 / 12 / 22 + +## Decision Drivers + +- Need to perform many different CI/CD tasks +- Need pipeline to be durable against any single failure + +## Considered Options + +- Single deep pipeline +- Multiple short pipelines in parallel + +## Decision Outcone + +Chosen Option: Multiple short pipelines in parallel as any one failure will not prevent code from being developed and deployed. \ No newline at end of file diff --git a/specs/adrs/111222-jslinting-eslint.md b/specs/adrs/111222-jslinting-eslint.md new file mode 100644 index 0000000..1b3b972 --- /dev/null +++ b/specs/adrs/111222-jslinting-eslint.md @@ -0,0 +1,19 @@ +# Use eslint for JS linting framework + +- Status: accept +- Deciders: Arthur Lu, Marc Reta +- Date: 11 / 12 / 22 + +## Decision Drivers + +- Need linting to work with multiple style standards +- Need linting to be fast and informative + +## Considered Options + +- JSLint +- eslint + +## Decision Outcome + +Chosen Option: eslint for its low configuration complexity. \ No newline at end of file diff --git a/specs/adrs/111222-jsunittest-mocha.md b/specs/adrs/111222-jsunittest-mocha.md new file mode 100644 index 0000000..f128c0e --- /dev/null +++ b/specs/adrs/111222-jsunittest-mocha.md @@ -0,0 +1,19 @@ +# Use mocha for JS unit testing framework + +- Status: accept +- Deciders: Arthur Lu, Marc Reta +- Date: 11 / 12 / 22 + +## Decision Drivers + +- Need specification on how to write unit testing assertion statements +- Need framework to perform unit testing quickly for immediate code feedback + +## Considered Options +- JUnit5 +- Jest +- Mocha + +## Decision Outcome + +Chosen Option: Mocha because it was significantly faster to run than Jest (1s vs 30s), and can use a variety of assertion styles unlike JUnit5. \ No newline at end of file From 0896d4ff39e854a0ffb022f228952586426f3bab Mon Sep 17 00:00:00 2001 From: Arthur Lu Date: Sun, 13 Nov 2022 05:42:13 +0000 Subject: [PATCH 08/15] fix sprint1 meeting notes naming --- admin/meetings/{11722-sprint1.md => 110722-sprint1.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename admin/meetings/{11722-sprint1.md => 110722-sprint1.md} (100%) diff --git a/admin/meetings/11722-sprint1.md b/admin/meetings/110722-sprint1.md similarity index 100% rename from admin/meetings/11722-sprint1.md rename to admin/meetings/110722-sprint1.md From 6fb7e7a7a361b4f2eb61245d797796a81d31ae6c Mon Sep 17 00:00:00 2001 From: rheabhutada02 <83424582+rheabhutada02@users.noreply.github.com> Date: Sun, 13 Nov 2022 14:57:01 -0800 Subject: [PATCH 09/15] Create 102722-final-project-decision --- specs/adrs/102722-final-project-decision | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 specs/adrs/102722-final-project-decision diff --git a/specs/adrs/102722-final-project-decision b/specs/adrs/102722-final-project-decision new file mode 100644 index 0000000..6626ebc --- /dev/null +++ b/specs/adrs/102722-final-project-decision @@ -0,0 +1,16 @@ +# Final Project Topic Decision +- Status: accept +- Deciders: team members and TA +- Date: 10 / 27 / 22 + +## Decision Drivers +- Needed to develop a local-first, CRUD application that would be simple enough to implement in the next few weeks + +## Considered Options: +- Social Media Archive +- Resume Builder +- Copy/Paste +- Food Journal + +## Decision Outcome +Chosen Option: Food Journal, which allows users to hold their thoughts and ratings on meals and restaurants that they have been to. It is local-first, CRUD app, and fun. Therefore, we decided to choose this. From 9d4bd4e8ced1c7c11183ab4b4b20fe032ab0ac8d Mon Sep 17 00:00:00 2001 From: rheabhutada02 <83424582+rheabhutada02@users.noreply.github.com> Date: Sun, 13 Nov 2022 15:02:17 -0800 Subject: [PATCH 10/15] Create 110822-finalized-design --- specs/adrs/110822-finalized-design | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 specs/adrs/110822-finalized-design diff --git a/specs/adrs/110822-finalized-design b/specs/adrs/110822-finalized-design new file mode 100644 index 0000000..49547ee --- /dev/null +++ b/specs/adrs/110822-finalized-design @@ -0,0 +1,15 @@ +#Finalized App Design on Figma +- Status: accept +- Deciders: Isaac Otero +- Date: 11 / 08 / 22 + +Decision Drivers: +- Needed to figure out the wireframe and flow of our app +- Needed to visualize the different features + +Considered Option: +- Different feature option +- Color Scheme, font, spacing, and other design options were discussed + +Decision Outcome: +- Chosen Option: Design can be found at this link: https://www.figma.com/file/Qhugp1Dd0gPnJTbmmUIvsa/Wireframe?node-id=36%3A2 From 6d09e9903c981690a42b2cae03261e738e6835f7 Mon Sep 17 00:00:00 2001 From: rheabhutada02 <83424582+rheabhutada02@users.noreply.github.com> Date: Sun, 13 Nov 2022 15:02:44 -0800 Subject: [PATCH 11/15] Rename 102722-final-project-decision to 102722-final-project-decision.md --- ...22-final-project-decision => 102722-final-project-decision.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename specs/adrs/{102722-final-project-decision => 102722-final-project-decision.md} (100%) diff --git a/specs/adrs/102722-final-project-decision b/specs/adrs/102722-final-project-decision.md similarity index 100% rename from specs/adrs/102722-final-project-decision rename to specs/adrs/102722-final-project-decision.md From baa1a11444093550123b75c63caa259534b73190 Mon Sep 17 00:00:00 2001 From: rheabhutada02 <83424582+rheabhutada02@users.noreply.github.com> Date: Sun, 13 Nov 2022 15:03:10 -0800 Subject: [PATCH 12/15] Rename 110822-finalized-design to 110822-finalized-design.md --- .../adrs/{110822-finalized-design => 110822-finalized-design.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename specs/adrs/{110822-finalized-design => 110822-finalized-design.md} (100%) diff --git a/specs/adrs/110822-finalized-design b/specs/adrs/110822-finalized-design.md similarity index 100% rename from specs/adrs/110822-finalized-design rename to specs/adrs/110822-finalized-design.md From 11d7ca9320fd996773f4da3d690e775adb8836b0 Mon Sep 17 00:00:00 2001 From: rheabhutada02 <83424582+rheabhutada02@users.noreply.github.com> Date: Sun, 13 Nov 2022 15:03:41 -0800 Subject: [PATCH 13/15] Update 110822-finalized-design.md --- specs/adrs/110822-finalized-design.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/specs/adrs/110822-finalized-design.md b/specs/adrs/110822-finalized-design.md index 49547ee..ce01d3b 100644 --- a/specs/adrs/110822-finalized-design.md +++ b/specs/adrs/110822-finalized-design.md @@ -1,15 +1,15 @@ -#Finalized App Design on Figma +# Finalized App Design on Figma - Status: accept - Deciders: Isaac Otero - Date: 11 / 08 / 22 -Decision Drivers: +## Decision Drivers: - Needed to figure out the wireframe and flow of our app - Needed to visualize the different features -Considered Option: +## Considered Option: - Different feature option - Color Scheme, font, spacing, and other design options were discussed -Decision Outcome: +## Decision Outcome: - Chosen Option: Design can be found at this link: https://www.figma.com/file/Qhugp1Dd0gPnJTbmmUIvsa/Wireframe?node-id=36%3A2 From 68d7e76d99614c6b2fee8f5efc09ce03095525ba Mon Sep 17 00:00:00 2001 From: look-its-ashton Date: Sun, 13 Nov 2022 15:41:53 -0800 Subject: [PATCH 14/15] sprint 1 review meeting notes --- admin/meetings/111322-sprint-1-review.md | 52 ++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 admin/meetings/111322-sprint-1-review.md diff --git a/admin/meetings/111322-sprint-1-review.md b/admin/meetings/111322-sprint-1-review.md new file mode 100644 index 0000000..b1823b6 --- /dev/null +++ b/admin/meetings/111322-sprint-1-review.md @@ -0,0 +1,52 @@ +# Sprint 1 Review Meeting Minutes (11/13/2022) +## Team 29: Hackers1995 +## Meeting Topic: Sprint 1 Review +We are meeting with Gagan to discuss progress made on Sprint 1 and testing strategies that we need to keep in mind as we continue developing. + +## Attendance +1. Rhea Bhutada +2. George Dubinin +3. Sanjit Joseph +4. Kara Hoagland +5. Arthur Lu +6. Mark Rheta +7. Henry Feng +8. Gavyn Etzel +9. Sanjit Joseph +10. Isaac Otero + +## Meeting Details +- When: 11/13/2022 at 1:00PM +- Where: Capital One Cafe and Zoom + +## Agenda: +Review the week 7 sprint and get the writeup for the Agile review assignemnt + +## Sprint 1 REVIEW +In collecting feedback during our final sprint the leads decided to ask members individually about their experience during sprint 1 to then summarize these responses. Each member was asked 4 questions with their summarized responses below: + +### What do you think worked well in the first sprint? +We resolved to hold each of our sprint 1 meetings in person with a remote option available to members that couldn't attend. We really liked hanging out at the restaurants before working on the sprint and these experiences encouraged psychological safety in the group. We made some noticeable progress which was very encouraging for the group. Specifically, we figured out quite a bit of the CI/CD pipeline details which will help us going forward and we got a solid grasp of what the visual aspects and feel of the website will be. + +### What can we improve on for the next sprint? +We ran into trouble early on due to some lack of planning for specific tasks. The members agreed that we should have spent more time defining tasks for specific members and defining goals for our different teams (frontend, backend, and unit testing). There was some concern over members not being able to attend all meetings and we think this could have been fixed with regularly scheduled meetings. Some technical concerns were the Javascript unit testing pipeline development lagging behind code development and pipeline requirements being unclear. Perhaps we should write out a style document to guide the automated linting process. + +### What was your contribution to the sprint? +* Rhea Bhutada: Worked on the backend features including how to get create new review card page to open in a new window +* Gavyn Etzel: Helped with javascript side of things for website +* Henry Feng: Local image store and meeting support +* Sanjit: Default photo design and frontend star rating css +* Daniel: Helped modify html, added upload file feature +* Arthur Lu: Added JS Linting, Unit testing pipeline actions and rote a few simple unit tests; added deployment pipeline action +* Marc Rheta: Added HTML Linting and CSS Linting +* Isaac Otero: Low and mid fidelity wireframes of how our page will look like, Started working on homepage.html +* George Dubinin: Meeting notes, Repo organization, cookies +* Kara Hoagland: CRUD backend functionality + +### Was there anything blocking your progress in the sprint? +Communication was challenging especially for members that would attend over Zoom and it was a challenge keeping track of each member's progress. We ran into some issues with the branching strategy with branches rapidly multiplying at points and the GitHub tags not working. The biggest technical issue we experienced involved Node and ES6 compatibility issues. + +Overall we feel that sprint 1 was a success with many lessons learned. Our enthusiasm for the project is only building and we are excited to get back into it with sprint 2 after a much needed short break. + +## End Time +- 11/13/2022 at 3:00PM \ No newline at end of file From 104b42ac19f755e002a8255dc01b14f687fde922 Mon Sep 17 00:00:00 2001 From: look-its-ashton Date: Sun, 13 Nov 2022 15:52:20 -0800 Subject: [PATCH 15/15] retrospective added and sprint-1 summary updated --- admin/meetings/111322-retrospective.md | 60 ++++++++++++++++++++++++ admin/meetings/111322-sprint-1-review.md | 1 - 2 files changed, 60 insertions(+), 1 deletion(-) create mode 100644 admin/meetings/111322-retrospective.md diff --git a/admin/meetings/111322-retrospective.md b/admin/meetings/111322-retrospective.md new file mode 100644 index 0000000..1fd61db --- /dev/null +++ b/admin/meetings/111322-retrospective.md @@ -0,0 +1,60 @@ +# Sprint 1 Retrospective (11/14/2022) +## Team 29: Hackers1995 +## Meeting Topic: Sprint 1 Retrospective + +## Attendance +1. Rhea Bhutada +2. George Dubinin +3. Sanjit Joseph +4. Kara Hoagland +5. Arthur Lu +6. Mark Rheta +7. Henry Feng +8. Gavyn Etzel +9. Sanjit Joseph +10. Isaac Otero + +## Meeting Details +- When: 11/14/2022 at 4:30PM +- Where: On Campus + +## Agenda: +Discuss the review, share more detailed thoughts on sprint 1, and create some resolutions for sprint 2 + +## Sprint 1 Review Below (for convenience) + +## Sprint 1 REVIEW +In collecting feedback during our final sprint the leads decided to ask members individually about their experience during sprint 1 to then summarize these responses. Each member was asked 4 questions with their summarized responses below: + +### What do you think worked well in the first sprint? +We resolved to hold each of our sprint 1 meetings in person with a remote option available to members that couldn't attend. We really liked hanging out at the restaurants before working on the sprint and these experiences encouraged psychological safety in the group. We made some noticeable progress which was very encouraging for the group. Specifically, we figured out quite a bit of the CI/CD pipeline details which will help us going forward and we got a solid grasp of what the visual aspects and feel of the website will be. + +### What can we improve on for the next sprint? +We ran into trouble early on due to some lack of planning for specific tasks. The members agreed that we should have spent more time defining tasks for specific members and defining goals for our different teams (frontend, backend, and unit testing). There was some concern over members not being able to attend all meetings and we think this could have been fixed with regularly scheduled meetings. Some technical concerns were the Javascript unit testing pipeline development lagging behind code development and pipeline requirements being unclear. Perhaps we should write out a style document to guide the automated linting process. + +### What was your contribution to the sprint? +* Rhea Bhutada: Worked on the backend features including how to get create new review card page to open in a new window +* Gavyn Etzel: Helped with javascript side of things for website +* Henry Feng: Local image store and meeting support +* Sanjit: Default photo design and frontend star rating css +* Daniel: Helped modify html, added upload file feature +* Arthur Lu: Added JS Linting, Unit testing pipeline actions and rote a few simple unit tests; added deployment pipeline action +* Marc Rheta: Added HTML Linting and CSS Linting +* Isaac Otero: Low and mid fidelity wireframes of how our page will look like, Started working on homepage.html +* George Dubinin: Meeting notes, Repo organization, cookies +* Kara Hoagland: CRUD backend functionality + +### Was there anything blocking your progress in the sprint? +Communication was challenging especially for members that would attend over Zoom and it was a challenge keeping track of each member's progress. We ran into some issues with the branching strategy with branches rapidly multiplying at points and the GitHub tags not working. The biggest technical issue we experienced involved Node and ES6 compatibility issues. + +Overall we feel that sprint 1 was a success with many lessons learned. Our enthusiasm for the project is only building and we are excited to get back into it with sprint 2 after a much needed short break. + +## Resolutions +* Divide up tasks and assign tasks to members +* Define objectives for team groups (frontend, backend, and unit testing) +* Scheduled meetings with more notice and keep meetings at a more central location so that more members can attend +* Get the unit testing modules up to date +* To-do: create a style guide + +## End Time +- 11/14/2022 at 5:00PM \ No newline at end of file diff --git a/admin/meetings/111322-sprint-1-review.md b/admin/meetings/111322-sprint-1-review.md index b1823b6..018a026 100644 --- a/admin/meetings/111322-sprint-1-review.md +++ b/admin/meetings/111322-sprint-1-review.md @@ -1,7 +1,6 @@ # Sprint 1 Review Meeting Minutes (11/13/2022) ## Team 29: Hackers1995 ## Meeting Topic: Sprint 1 Review -We are meeting with Gagan to discuss progress made on Sprint 1 and testing strategies that we need to keep in mind as we continue developing. ## Attendance 1. Rhea Bhutada