From c931e646bf6917748d9d95780fc78059b7b81509 Mon Sep 17 00:00:00 2001 From: Don Smith Date: Sat, 1 Jul 2017 18:51:23 +1200 Subject: [PATCH 1/2] move used concepts to book source --- README.md | 6 +- agile/user-stories.md | 20 -- api/api-proxy.jpg | Bin 35180 -> 0 bytes api/cors.md | 21 -- api/crud-rest.md | 30 --- api/keys.md | 15 -- api/supertest.md | 36 --- api/web-apis.md | 49 ---- architecture-patterns/mvc-intro.md | 10 - async/callback-hell.md | 5 - async/callbacks.md | 83 ------- async/consuming-promises.md | 80 ------- async/fs.md | 60 ----- async/testing.md | 40 ---- async/versus-sync.md | 36 --- culture/challenges.md | 9 - culture/pairing-intro.md | 52 ----- databases/intro.md | 79 ------- databases/knex-joins.md | 121 ---------- databases/knex-keys.md | 115 ---------- databases/knex-routes.md | 88 ------- databases/relationships.md | 98 -------- environment/deployment.md | 19 -- http/networking.md | 31 --- http/side-effects.md | 6 - http/the-web.md | 15 -- http/verbs.md | 9 - images/paint-by-numbers.jpg | Bin 33299 -> 0 bytes images/redux-overview.jpg | Bin 190548 -> 0 bytes images/shoulders_of_giants.jpg | Bin 23496 -> 0 bytes javascript/data-structures.md | 56 ----- javascript/datatypes.md | 11 - javascript/es6-syntax-1.md | 120 ---------- javascript/first-class-functions.md | 42 ---- projects/group-projects-introduction.md | 14 -- projects/personal-projects-introduction.md | 35 --- react/components.md | 40 ---- react/event-delegation.md | 69 ------ react/forms.md | 195 ---------------- react/lifecycle-methods.md | 12 - react/lifecycle.md | 17 -- react/props.md | 38 --- react/react-intro.md | 3 - react/routing.md | 153 ------------- react/state.md | 58 ----- react/virtual-dom.md | 5 - redux/action-creators.md | 3 - redux/async.md | 43 ---- redux/fundamentals.md | 34 --- redux/reducer-composition.md | 1 - redux/relationship-to-react.md | 1 - redux/state.md | 66 ------ server/express-router.md | 85 ------- server/express.md | 254 --------------------- server/node-debugging.md | 114 --------- server/node-npm.md | 18 -- server/npm.md | 20 -- server/passing-id-to-get-routes.md | 49 ---- server/redirect-from-post-routes.md | 11 - server/static-files.md | 18 -- server/templates.md | 89 -------- server/user-data.md | 76 ------ server/views.md | 9 - testing/enzyme.md | 134 ----------- testing/post-routes.md | 95 -------- testing/routes.md | 135 ----------- testing/tape.md | 25 -- testing/tdd.md | 73 ------ testing/writing-tests.md | 34 --- tooling/task-runners.md | 22 -- version-control/git-best-practices.md | 56 ----- 71 files changed, 5 insertions(+), 3461 deletions(-) delete mode 100644 agile/user-stories.md delete mode 100644 api/api-proxy.jpg delete mode 100644 api/cors.md delete mode 100644 api/crud-rest.md delete mode 100644 api/keys.md delete mode 100644 api/supertest.md delete mode 100644 api/web-apis.md delete mode 100644 architecture-patterns/mvc-intro.md delete mode 100644 async/callback-hell.md delete mode 100644 async/callbacks.md delete mode 100644 async/consuming-promises.md delete mode 100644 async/fs.md delete mode 100644 async/testing.md delete mode 100644 async/versus-sync.md delete mode 100644 culture/challenges.md delete mode 100644 culture/pairing-intro.md delete mode 100644 databases/intro.md delete mode 100644 databases/knex-joins.md delete mode 100644 databases/knex-keys.md delete mode 100644 databases/knex-routes.md delete mode 100644 databases/relationships.md delete mode 100644 environment/deployment.md delete mode 100644 http/networking.md delete mode 100644 http/side-effects.md delete mode 100644 http/the-web.md delete mode 100644 http/verbs.md delete mode 100644 images/paint-by-numbers.jpg delete mode 100644 images/redux-overview.jpg delete mode 100644 images/shoulders_of_giants.jpg delete mode 100644 javascript/data-structures.md delete mode 100644 javascript/datatypes.md delete mode 100644 javascript/es6-syntax-1.md delete mode 100644 javascript/first-class-functions.md delete mode 100644 projects/group-projects-introduction.md delete mode 100644 projects/personal-projects-introduction.md delete mode 100644 react/components.md delete mode 100644 react/event-delegation.md delete mode 100644 react/forms.md delete mode 100644 react/lifecycle-methods.md delete mode 100644 react/lifecycle.md delete mode 100644 react/props.md delete mode 100644 react/react-intro.md delete mode 100644 react/routing.md delete mode 100644 react/state.md delete mode 100644 react/virtual-dom.md delete mode 100644 redux/action-creators.md delete mode 100644 redux/async.md delete mode 100644 redux/fundamentals.md delete mode 100644 redux/reducer-composition.md delete mode 100644 redux/relationship-to-react.md delete mode 100644 redux/state.md delete mode 100644 server/express-router.md delete mode 100644 server/express.md delete mode 100644 server/node-debugging.md delete mode 100644 server/node-npm.md delete mode 100644 server/npm.md delete mode 100644 server/passing-id-to-get-routes.md delete mode 100644 server/redirect-from-post-routes.md delete mode 100644 server/static-files.md delete mode 100644 server/templates.md delete mode 100644 server/user-data.md delete mode 100644 server/views.md delete mode 100644 testing/enzyme.md delete mode 100644 testing/post-routes.md delete mode 100644 testing/routes.md delete mode 100644 testing/tape.md delete mode 100644 testing/tdd.md delete mode 100644 testing/writing-tests.md delete mode 100644 tooling/task-runners.md delete mode 100644 version-control/git-best-practices.md diff --git a/README.md b/README.md index f9fef98..d5c17a7 100644 --- a/README.md +++ b/README.md @@ -1 +1,5 @@ -# concepts \ No newline at end of file +# concepts + +> This repository has been deprecated. + +Formerly it served as the location for concepts in the student handbook, which was a separate repository. We found there wasn't any value in separating the content from the book so the concepts have been moved into the [student handbook](https://github.com/dev-academy-programme/book-source). Only the concepts being used at the time were migrated out of this repo. diff --git a/agile/user-stories.md b/agile/user-stories.md deleted file mode 100644 index 3bf88f3..0000000 --- a/agile/user-stories.md +++ /dev/null @@ -1,20 +0,0 @@ -One way to represent a feature you'd like your program to have is the [user story](https://manifesto.co.uk/agile-concepts-user-stories/). This is a formulaic description of a 'want' that the user has. - - -### Format - -User stories follow a distinct format: - -> As a _[ persona ]_ I want _[ feature ]_ so that I can _[ justification ]_. - -Some examples: - - * As a user I want to login with username and password so that I can access my information. - * As a user I want to login with Facebook so that I don't have to remember another password. - * As a user I want to change my profile picture because I don't look like that anymore. - * As an administrator I can view a list of users so that I can manage my site. - - -### Why? - -User stories divide our programs into discrete 'chunks' that can easily be worked on separately. They help us understand and manage the _scope_ and priority of our work: which features we should add next, and which are _must have_ as opposed to _nice to have_. They also help us keep the end user in mind: you know, that person we're actually developing all this for! diff --git a/api/api-proxy.jpg b/api/api-proxy.jpg deleted file mode 100644 index fccefbccbb08b955fd837919ac4fcb1514489e9e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 35180 zcmdSBbzD^4*Ef7-7-~SNp%I22x+R4nhK`|AkQk&JL=+iHIwcekNu|3KN$F6!3_wBz z3nT;up251V`*+`;=Y5{{pZD_~7-sFgziZ7}Yp)$=ojsh+oh||7nyMPA00;yE)Nwz+ z=`vXgD$v;x0CaQ!UH|}y01^-x0RBkv>?%ZvMW2 zo-PWlZEOfv6cZK^#(~fDKGWgXyPAd$8ZIg*B`7Kkhzg5H$_R_eh>F2QMP!7fWrT6~ z3t?G*^aIO;-TzA~MYH|Z11Bn)`xlM30RYJWK!~e?2#bmeC*%Fm8?2cO`Ab`;fPP^> zU_6|Y0O&7`z&@$qzw(1p@&49_r4s)BESv{ZiGS1NI2!sFADf!|Q$Fsq!KtY!f9b5$ z)W38=-XGmWgoX1!zvbY3kq7?kJF`5zKQyQ;5C0Dh9x0&xjmPy(;V=DhVE_O{;NSIU zG~T~x{NFSauAbmu_3)qiu;TPA!?B!QXJRODuL0c4;XisoR7PCtKYQk99RQFm;QATo z@n3wn_p{3ZC+Q9`{aCK+pUm8QeXB7UQ9>60yYs6hYtpEr>e|$lJga3_pJnMhr9nbOK@eT(4 z@im?YPV(=#CT093^uI>!>A%O~nKn2Np1uT>0U`ndLIQjuLPA1fVj?Ih>>Mcx2`N1# z6&dUT0}Jy71|}vrhafkcjh~%~2_ebDFDxQ1F3!R&eMw4GPEbr-^h^kdn3$N9gp}^w zIXY2RCRWk^>+7@=pdbR`fF3*$8vv#N;ZcB2djJ-kp7^+#<81Qyec{3%f=@t5L<}Xt z0UB|W1qcrh48g<4hv3Wy1)mKM2n9YRtB4{2mA)+@n>S1}G$o&iU8%N<+F<+(hnSsD z7%`NFmX4l*lZzX{!z(UvQBq1;Mp*@=s-~`?X=r3@Vrph?Vef!(yz1oa;_K%ha4qn9 zP+d$+Z*K2=-QC+i_;z@7W*2T8{W9yXW&dFp1|zFAsO@~lp)?%g%beS1rv0?+|IDzk|5uj% zHS8a|764K_+#sO9qW~0u_nnWRin`QXSRSY1Jm9>uGrj--(?{W6T1aA)01U)`1*Txp z?8=Zl5A5(_Is6_~RNX&kWTCs-SfZJSw^u?`dLd>@f2y|F;bN>sxtyKlfN`Ixea_W( z(^H@tIV^s=Of>I)fl3Rfkq94a-}zw6xv2yOcDBRRuy=UxxO1qE5#S)rqyf*vZ)qWm z3d{O~jCsSCM?mo4=}le2FJq8zMG}__GkDlM8#R~Op*2<%;Tybzc?5Q`{xD!$4>qm~ z10JTPO`ySv4GrOyXUc0K@nQN%s8ikq8l>t}R0KHlIP+lBNs@M3lD?li<_(HG1yMvuZ!>`sa~CU3?&v*6^a_f=IeNb`aVgUE-)eI;s9*SmNqnnZ z?{agi|BLTouGqIRd|%g+iYPJl&N8fVKcRw%biYTs#8cA_(O1cx14OKC#2;T`JML@k ze_x>o}} zeo?s3?rbplaF9ei#L10Jy4^QEK4MWO*3WL%uM`r0$5fVken zic;}KUVn2?Jqoz``h`T1V(#S+dL*zwsZZCridO>ln&kHxv4=soj0FZ5X_HoLj){yJ z<9Kv7wIgXHwl)a}S#(7&ZGbxw64Wec~;FC4M+8*nYB zr1Ve9HwIvNpJxhDXsgb%b5OR>@4h>n&a%)1&idcNYRLe7-EcRLU}4*p?0fj3(e$~; zr+{kQao3MB3&6rc69Jks&_|M>U!4M_ET12pMDSX~uAZ!hv_Ci^&m%62ZyssZqvTDY z;|$&O0x9SgZhbSfcUR(z87X~-YF#B#O1=~oax*I&ou*5!2&C#Cq@?jJ1$kV!)TuB9 zxP;MxWhhd#%r9Epe>T!IX+AN%;#zD>rFqbdSy#?y zDoxc4^8$fz6qv7;mUUQSQ7!0HcujYo+ z?b5x^dhA?^^1H10)PNN_2!A>FKK|&$4;ba~e3~KIOf0g*gA`Vk+1@hU%AOO zXZkg~e_d_;wnLxK#l+W#>sW5+4xG)w!FJX|k>x&zSA$4}cY{l;FrZ7gWfa|-Bx0$= zYHlXlM8M93*RQ>Fb<^c_51W=UQ{-x&s40+h!|#WT0mwi#jS4n40P5nEJ@PN+vi(8v z;2QLoKd6 zf?iQ`3GrLp8$Shh*$rb$U6yTqMgYnVj#Hq)Me!QwdtG_Rej{p&-0bUH@iSHk3S;vqX&&J9j%E~lufluVac4qk~bv?CX7nSrz2T&dp~(TvYs1 zuCWsszG9kD-TF>(()?U;(42OinYn3OJ*taI?8E zgO_+0ZnLqhrBe(8HmxR|oj}gc4GqBK;?av4SejVejOmOhz(O?(XF?$50q+;C@yOWdXsI>I_$$`~hS^&lUNVUVtoeUPiY zv;((-JX9`FCeYo>9ph&U4|I3)@RbR?#Qjsa430jl7UIT%d>kBQ3{+HqLvW=_+`o0X zcI}$rH8DX?pQ}P5($dmG!lFW=q5?RCfbVq=Kifb74_|hi1StHc3>A#8y^ph(pR=dO zZ&`Y19gKss?O%B~+dMrmUbq|lpVqmbHJ;grlL3dz{YJ|u+j{x=`(SiD9We4}Cr>|5 zIidfl>EA4d_81S0yrRFKr@D&4Kk#4G{|0LK;sA>Fe$D|Hc~x6CU(7$?e>eS`MH}Pc zt7>cS>~U3I3D*VxF#N0G-}wJusxK#W76t$6!T(LKVsN>me|PCW;d<8cGhTmn=vh%l z$JP}i|2wTCC-hI%nah5aaQ*Bi|6dY5e{err{sQ%UoH4klJBu%QBTp{@H;kj-Z{)w5 z{^HFHFutB{{y*`OqQ8;?g0`Vej-?@PD-Y!S^O&F{D<+uIQ-`LZ|#3Ml|9|Pd@#PgXRg*nqtxKI$>>kT zZ{~kP{__3XyZ_(092My0>5H2|emYD!NK{bx zH}X&2U(g>`w2$XiA6s{MT~9w;&pA4K{PpO6BL1>!80r~%VK5E`xbXG3>U%cd{hBll zG2TB5ze;Y-^0({Z{RN5cg{^p>RXa1mp9w$Dq}z66zl z&G10D%-x^#B_r;s$InFHpX4PjK?#Q7;}Hz%pq;NP&*vxic87KK;&NtnwD)_$ z;6+;eMMmft18NNr8Vsg{T++g%S)dSkk)%aK^W;T!CFDxj8UdwffW$IbBuW0d)oz=` z?(5ZWk5{fe%H824CgI3OMux!wBS<6&qM5=s&4Ve3p z6~p6lj|Ni07HY0k!05>*nCJ`D7bM+=T6_# zqOGyjev>#5=`cNXpqPRfX+{q=(Z^?1FGw!JzlR6|IH1HZ5HS)7_ui^zFdj)LRC#pq zslC1|LFi^MXu64;GpHw0o!&&>>7D>W1dJ#{gV@GkN}7}*ZcEEZI6yir9{DTN33WB?9F5wYjC zmZle|U2G&>-IFN?k=K%pRlcXdMlcSm}II0!qD&TS5c)H6N=u-l809dR`1Pd zU>>R(+oi$Fh#FW;AVo?QNJtTo4+r4V`qN`b^)!`&8DUgDL)=@>xkzR4GNs8}*M652 zQX)+n;@G!#*Q+>*Nmcl$`ov%4S3YCFJy%pgK#9n~&=obi5>{5UhOs`}NZII%42+Fd zSRXbctv1HwDv^*X^008Ix&1XqGFV5Wxs_TLKF8$*IiH*L6 z=*5cFbwM?$J-w1fya&vCbw~u8fl??58i`I(k3;7_Pf(UQd@u7c7^+FBGz12aqy_UT z4NR`GD4UF=GS;2aZkystqQkNy^`0%Jq3NWD)qXz?BzG+qOKBc&e{h?Ch4O2nI3wWz zR4J7Pts>1cEr0Q{%=ed+sl0hWv>7hSYmBL-Dff9;nEc&(gW@W(`-ndZ(%iYv{O>8HYlWS7$Axpkm(_OH@>$QIt9;*Mx>xCQcE}~cM|Jf zA^;RVOlgeO7D+TKVOoS$R(Y)ys?GyNW>5n>Y^g)5{YGKQ)I@MaB@ksjJ_Y(|VWkN* zlDv#<43($U-IEuuYvo_69LZ2x*R}wHf?>(vo_u69d&O1+0tLPgDu*JeaAa!Hbc%Snkd#asPRz8zuZM;Z86A4x1EFl4l&r*4T z!O$=oPRa=4)YM^Qm770;EmSEilx7gokZuQ#%JEIgtS^_?y#IBb?5?ICS*>JjnMx4? z!mE@5jZNukuBRyi5i4;TAr)a^T=!KJL~ zjcZIR@C9;->Cb@_QY~DAzSnYfJX6f!Dl}DQS zhF#ZDiH|pM3nlB*cf>EIJczXmO zpl69~IZD;FvkI~jg&+8yY5_uA!ZJKHWgw=nveK!0g(jnzfe$QFK^Mx!i??NrN452? z2f?Ik$7@Oj^6nwj;2)qhMHWN_*a8|(Kp$P(owy#&tTD)Tq)J_7xWS*NDIFEs?oQ42 zEz9}slZUmVdaVu4eJNkAXB)e}xuaBTGseF_@;osT0_E*&@^O4Js0q}SC{^$PXao@2 zmAJ=)w|c&`#i^Q_m8`fb6;i;!mA~mv)$1Ss;kgx=)}`X~h(N9l==aFz2jJ-iRI zC6VjQ9FlszW8@Sx1wf<`zoN>zkh)U7qTSe%THrf|#`pB#aJEWb6sH+wDdjL+iu>gl zmJOXpbQv>!C(AcpuS}9^^p?uU3l5h#jIbrF$P`5bUT)#{0vh~fl<8`~v}|pgiGUIo z3P(_u!6KoN0B-Rr0_1e4aZeuuS*|-YKVaNI*A#$ZSW5ho^HzSFsUmghZoHihv2jlP znnehFr8vqG06-J58YR=D@NklGywl2STiw(3YlE7l>r+M zr8J_37$Y$5BT0}T4X9FbDK%SJvQhyJlW#@NVGvskCpsF9+jvH*uV0Xb$Gc?k#$BOy z3Ppiav6Q7GDhQmR>JVZRI4n{fnw%FpB4YweHCIOiNF?i()oLT6zV3P61(;F^f?u;H zU)@LxSvQnN4x?~ELXlu2oY?5NVHrCtHrfD&tpQY4tIf!J>PXWpkOd|D2=WG^yaw_j z5_KrjfK{CY4JJy9geWK9$C%kj?TElD3V8==)6+DI?5*x@&6(M9mg&O;5Jg57v2o5M z;N%7^gaLk$qIx3*KDhym0-+R!JiIfps3Dp;^TO$Q*%W!NcRd|im9N^d$B(}#lLSA` zMBk+|uK|mI#exND05BHdA;O0ft2eR%O37%V49-RXTZ4k|hw_kj2^i-i_>I96h$4J5 zV{9$LKubd@62OHfI1fUe&#JCZ!m3CD1uMcdA+f9+UGC{_{P}L_#Hz2Ou&+ z7-93tODKnGAgX*WDR3j)%?zY&F04Y4m>hRsBuajEqyt2Nk2@=aJIjH)@F2LuHTW>x ztsAvCk`m4;jAj!N6(eBhP?1pNyn@BuF%jYJvq1RZZ>|f?CYy8z-EWU1O+F_ydx!L2 zQMlYeGJAXz(;8>9F-LOD;>*DuwB<1+m(hU zmCk&ZdDp2&B25N`th!v*Nle;YW~wcEx2zg{sS&zW&H(|R4rWdPPiap|`5S$+Rir`| z-X>|rh4@>@MxVX%OaTKkzC7W5=B~P)A1=Fk-Vq7=z0AV(96D2)cn!|m0gl6{_u@JgyMID zerJ&P0{aV#2coipqUKH(fopU0DJnA}4?x?Sy^bH1!$opmJy7#(9$A&K;l_V>pDmuW zqQ5&UaIIm#X>;&p%=(~Z5W4-_&F5;x3wqR1N!D9jbDxY~IA1pYxNPH3bHX2UUii?e zY0tPL#`E5w-f6Z*zUus=VMawPudiJMBVE;c)guX|FqA@1bMEqe|9tRm};ShW^Gt#sqK1NY@|Ya$&2FxZNq4qrWQzbq50# z1K(Pn`u#B5S&MuN<&>3p+iZKMX*cqy)!9BHo6*MmHWB6A+m1(dipYi;CP%vEXDp3L zyO$`L6qh_ZSoj&*1;mCXl2A{eEfY1C)eP)o+Kz)*aHX5wB)t=9Y;rOE0_AvdCp-Hc>fwV6Znh zWlp(SE(8rOc4;64^k3MuY{Pmzc++=#+JZfJ}1!o0=b}t$f~3 z1{Pn=YT287m>!PhMM^2gr$#Ous5k4qwmdPotJ(|Kf2w^mR60*oVd0KN?+xmp-1+C} zdd98QO{T6=r36mZk1Xlv1vBj)eEOK=NiK4*&Ar+>+|zMu>J-pbZdTj*SiHq#gKFlo zGYv&0Fgh`O6s7&L=%{&+#-za6Q}(H$B}P*-01@2kdR!aK{3^CsU{+4)LyTP9rH3Yq zOUL`76&8`(eCpo)5q@n-m+ zsj`59<5uSry5}(;%rfof_9q&AX<&Kk8Pa47^Yocm`&Hdf7UpuXj`}gR=lf2Y`gGZq zo3ti^YZa`;3g!_DCb@Jbnbdm-dVI?}bl&ON?9%Ie!Yg?Le0Mms*%P9_kG`6LlA2ZR z4=?(j@dy>X3<#$*gyNSwkv96$hedej3a&`sw&(c~AbguAY?;bX>N?_%uge=BO18+l zVe85iYG074@Ht;{(+h&~E!0;*LG|Faz?ECi7j^ZTGAq0<(~R5^gE8p%;U{{iv`?%6 z8X;MYBpj3);|li8;Vp@E&y3`6_O@4F-2Aez=ieLjG#*knh_ZIzNwU-=E5-XNJ%m|Cpsw|x0l#^5|>d`)LVb9*Bh zf_P|lQHSe|rb#ICMUlbW6Z4gPXBXW@q7^%N)Bau!>1~*~?Y#_ldZD<*;X3*&D@9dm z@h;wYms>DWKKHIj`BHo84|DUTutRf=MF!?s6E$QcBkO{%)h!ynd>f)WaUMU3zvgqP za}X#~V4L@~F1OM2=(dv#N2LcUma}(^?y{5^axC>)~>Y-6)^{H|VpPb(%FANKt z5DXMPtKm$(A$U%7hJj!3nuKz1wXL=59Hm8f%|)%seXHZ+cA*Jt<#iq2{*Hjsh_F$w zY?C5DbpA`NagK5vf1+Hktpd*k744Ucjbv;*nva6NsEw<_NW8&sEl5ka3CO#=-O}7; z714pVJA~`hg&Xs=p)C+Mqq>dNPF8rlIM!Z@hl$$se?-XtYAs|TOIQQw}PME%9+Lp z=MAFx^^M6WYNoquNi*n(7bUnPk_WmBlemc81*JGL5982vApWO4Oj;!N)A&4-0SceL zOS5!%-1sJTOCyo9DJsg!1W%izO8ZftaM`Bzkhb(UYtR+9zIagW1=h@R2PxC|O4;k& z-+pr5kd{55S13LOq)q9!uvfo6*_rYag~VEDf2YSHiRTu7 zm|6PCvK$=ebS$^e)QW0BD>GvF3|?(@e<;_UDp#_c6|Ay^t`(fE5cy|+3aTzc*Y@($ zorWzO1*~W)t!dq@CEYFR`x+TueQv?@1%0W3I*t#}vd2c}GsPj|b+NMr7CR9&syRa! zWG|gXD#MfE z!+3o;A7(dCj9O}RO?K<$i$A382@PjYKOZEsxtm#~T-SH5PB6^%|JL&hISJFBK;!c6H6RNm0HW&o?x&Qi=qQ)h*$*%~Dc;S**c|W&Y zxD%`jpf7z=OOHTZItdk59`e!%V_-&kObbtZf9GM&`J3FE{a)W#zq_?IvM zL;)se6+vIYLn?YVfvrzy3JlIJtc12pt>q98%kLV;H?;Q+Usk@Na_7sR?IeK$_(1;@C`_1C z^Ew44&RuwR3K;b~BB3FSpOZxrbiK@DJJMg=Cn@v5Z6!< zUhKuG>(ryXhnJr1l%(>Bm&Xccsta$Fi*EM3Y`XmD{paRAQJNTyTQu(C#G(?jRwSwT zaMw>JWZ7jY^NJ2j_l@f9#)>^&*F8wuJ$RKZ4dFHlU-WUyU)N%L=Ox+d;^a=2mMSVa zd$~xzUJXxu*_$dF-m0LoSYsn^eT&-NEBx zM4>n``rN*G8W}$+rhoqBeTn7ZTY-qHoqQ7JEAKVs-Uk?bI2d1$Z@0hl{J@c#$@AHh z{g*Fv%e&Vf(OQ4=gT_;McZ+!-pKcbH*n2f+N4^_PyUA6cKy)zs)~34D*_z~aLyp=( zb!&C-UJN|J%y;>#!-uT!noE0hvuwxLA@}c~0|?tIPJ!3fib7YWE`)BzUA)3aUN>YX zL+>i1*@~W}4;Z&{s*-Sxw_#YJ?Q7}Xu44E$d+w&|?RJT7W{F3y0u+yN^MRnEki!{w z<%MuGrQm35K?{3#3to2%$+DHjH&dE+>fY)|Z;hQ<*aHD?Ei1B-ncFPUGtQihOf#<9 zxZ8-mw#MeSNY~HM5PYwES;eYzIp1bquPCfm%&6l|LmA2|Jr6~#?{gI<$8$y=_}t*# zBz+ZTJy@=AC8*TYB1M1CrUhdb-=V0%ZowW$-U00o*|MB}d#7}z^}QDULv~1Im*ktu znjIb&ky15o0r7H%BGao|5*sS@d;Rp)YFF;=f3o;q;k{qf@!sa!N?-j8h7Vd>pK~do z-&cNwwI6U}tJ{VTZ%rRO4iQ?Yw|Lox?_JwI{iMDpHNawXv5WV>#=MwzQ@YHteH(ks zd%kneha2^Lt>~uY^!<*9d=Ti&JqfkKzKls%c1ka{%OsBec=Y8%{(~cdr;OLjSe?B%ZS!5|iTUfA zsQDfz`#acoaVzV`(!H6KRF!vsSe?Zb=jUx#zUtLxwcbXZI1Zmd>L1SVRQMEZ88AE; zTpchsyeKETE}mi4oW9uo=AE9XW>THBi3ST7qgeB$*T(jdCaYHFtsSq$wFQlQ!z*3P zxr|-KxxrCOcJH`t&?WTR?pIxJZ+k8OI20&%dfluxo*nRumS;Z;l*n zR)`49zL$G9l3Ms7(c}TC+NLCjc`YCDU0UO(#V6Bph;?=CGS&cEnitnsn{q$CG>Q>K zioL;~3pc$$INH5PdwMU)5e6E6iBrn?)wB_@Fp%Hb2I&IyZ|)irbi|DCRQI0v0z| z6%gf++rIein#)&?dHsDgKF<#)t@q4cJ(JYAzCV`btW$s%wCwE)fHp1pGHYIXBDPTy zrnh!o@fKbH$LI@xHHkUza}1BEA9-?T*0~4{tlh9ZzS-aKm~$;X6zYrb)?H{~Y%ct2 z&Y7Z*hIak)s!8r5ck)fH!uj>pkqs6TK^=^{ZRXyww90Y2uCwe(yMu|7CFD+a?XH@1 zNk~*>HnRl(You?Mde<)H2I0JimgBAXXJ1EKVHS`&h-;(og_Wl!o0e92_NR$*z`! z>SGc)`@3$aKr`!H>RJyxrlyeP1>x}-Qo)Z>}Vjz*>h zL*!nbT(0gSw|hEE$V_#h&x~}oOla=K8NLr06$K%@;}5=8&w+HxiTr+H^Di+ds7r?mL`_i3So`KQI)4;cz6Lc zt6qGJZK2I~p3BSYzT}ZTX>Fzml&Y)?4_W^?tNE=S#I8cOQeT6Y*3kCDNT{GO>r7u>jSsrc;2$#4dk4)+f*o#Y7WZz|yKZzH;dL=)-s+IEa?i8KF`yQ{XeRt=b z#w)JNck;Ph8WkDn^BcZcH974~@$;XUlgD#01**5^MtE0IPjB*jj&K2`W5KGS=5O^f zTGGB$34V;2v1j{`Jj){d`7Yf zZ8!Hk82dD8=261mh7)!aLx)eOQ5hY4o!NJJ2POP zL;&e6+M6-ZU1QKem=mB&-0sPK79)*j@}Hf5$g7aa1JPCe z%9x$0GT*bcXLjMr4bktSj6=-dpT6>W(%0tipE2xp;$9deCqBEN?TA}CSH?HpR-E@t zJWkLzRBN6@F+>-P(bhG!BrK+1C3e-V+%lmT3e$}*_&8Xp9UGljhC;juc#>ek|Bz91 zy+4Y?FH(y%d_vKuKD=8#K+0@>acO+nI+x$|$3TZmFJsgNYrn0^b4m+i47uZMF)Yl~ z0weh9Ea4H0CO0j-peo5?vWpRjLP$+xmTNV1{xjn>{D*`}OP9lJ13yhG3V1V$`8DK! zuF&o>H5d12KxMB`XHBvskZR)}M(z&HL{F!^QWP(X{aR0IsvF4#D; zafp+lNZyeay`oPYoMl?SN4m9aoyAnPyL?<`4sUt>OzNFP2d(C6>&Hi7{R|?})*rbN z!V2n>eMThbd?RJbC9@MeZ(C$oYI07BcsZ<#eEgAAJ{zJ>-^NY zM10o6W zB)5ByF~Zc-YvXki&baL6Apxy2!}V740%a(Zw7CrtciBD8I98eW@eiIizrX&Tw6BdR z*WfxD?pFtnrB=hS1!#4^0ISZ~IChxLyeZ4T7 z_;Kn3i?QR$J492}Q-KycMUJ|S?!pJ{;Tklkq}t#;VO?fCe=`Okm4p5bjimLIK$Jv* zrS*Zr#kf)tzQ?|iCK6AxFjksd-D=5}tBu%NbdB@`+mbY;}JHk4n z@MD){k;oIg7(MUGAFfif^ex{Q?3s4v9PUKqFn&*9x84!;^3FX!R4b76;o&jXJ+0bz z!QCM40q~_PybS_L7wJUa9nzsNzKV7N+D3f znV6I&$MOT_+8gStyG2YN;fppA&QF=9X^fRpTZ&rN6-Uhq{8Ri(Up-?Zyx_m@TpuE6 z^|ofg-ib_0^V{^&8;K-|CZo%_sBa23IOlJyu{>K`VW09GlL+GRJ|FQIcX!6)65ShZ z+gp6o<$06HO|xxj2&F&Mk*jE)r*pd3q7IvVpm*|IRd-?5CLe5QM9j8Beyty6SO2)a z`B~SO>IPI0ZmGo?l5VGZzRj|_uHZxB9|NCAt9@BJDL$!aQ0eT?RamG>fxMqc68Z9I zM}t(diZ=Sz)Y~Z*DCtO%%)58stzHWOW@G*xRGYEyQ;$u*6ct}?BD}x_N$-5&;R(H& zHW>{2iCaiX$r^Ji*yB3w+)D$N+iCtjLfa?pWn`aXUu4w}wM}p2r|Q-;w$ncLN_eQnhY`%hi90%z&rpDQLu6sUvOZ5T#fZXJDp z5j)G=A>dUY>l&NT#IR_t=UpziJ;@Q@BemDM_gtLW+j26~I&R&QA&mVgbS_s~jOzQ8 z-KgU(raD=zd$Xj#sV>P^mQ{95*9Bcy>PT0!nESC0RFf)pu`J-?E2-Ym+rmN>$#$Kj zlFjTM{bg~3Usg;zg3T&3qVDhE`ONHaTDP_h<6?KKTICS6p&nv^NfD(|7xs+o`5?E8 z*|A(skh->*=O|vkB7ITzRYaUmK$QGuf}1qc>y*!Og87;Hg{wR1-&k%oSXfHlp_$~k zK2fW>JZq7Cz2-pu5}JKF>alzs#tlu8gOU(B=;NET`tl0*zj}2rmpHc ztAx)n^03yC=bhJP86HUB*4OTq)x+`xy{wk0!}55WtQOZ53$@(yO`g^5+<_m7p&9`< z=@Npp{PSPvKeJrV(4Cy6dfV3$S;Z;G7o&$uA9S}AeW?=ol}qULwrlAanZdAcGmJb} zpmxmCV|X*dSelWDfD|4%7MRdV%%1{3Y;pM#KJv3OhXjN_k0Sm|^MC*f+&8Dmh4pQ{ zL*dA?Zx??VM{h4*`SXxXfmLZ&vuh}(#BR(H;el~9h+Z8Xud&KjA_2?g>GM<&X{rHX zJWq&D0gi_aZgS;aSG0K=LE3s_s_!dqsawn>66iRoJ{xN4;m=Wm8wnOvsjGtM0^>I> zoO`fLtUp3gx);*{$!v_j)KMB{|2+%%`~|f%m3&-KOIUX4kX)hbbuf2>qC%WFN+DY! z`9s7*!_{8M^=mb|8`*cSPD*7BmRwL0Q<=;C;gk^!7VDjh=>Ugp&vl&}UB7%@BuGGR z{;_Rv(_|H|2&-dQfhsL2Ek^e;@+j!;VN*jljH^#%I}B4Y1B@ z@|_YARL+L`aDG^vJE(X<6)Cl7`a zVQF7l@a5*XwCU$P13I-D1Q1^$u15+*4u>;u+Vw3t;BhUxCJ_56_N#9TK^!~9D5ANY zD7X;R0u!%Zg&kKCjLBAWCDEZEo@#>p2Er33gy%=Uos~q;@4fJ9Ithx*t|1n{RN<-g zPeAE?RD@ZyJOk0U!qi)$=vsx6$W_OEW)f}c_rpleg^}IX)74$|vpLtrzQBkCwTe(I zg9*qP^!=eeg!Ds!tMTu#&4X}wjc!ueFi{aXW;-lI*cnCxt67b zcEt~I=VCXr5V<7x`k7amK&&ACHJ$Et8Z{08@(_MMjADVTF3CyhuGez;i?`8Y98z`3~H0n4Q*E(+yu zwdDP`B}2sUcfFo)jJ(PrZ;l~djW;KQt&&~pG_!nAz@@3c+0m1yHxT!xfZzww1#S*P z+@sWPx&9ifsG%;ZA75H%q=0~^I>0bA^g1JvO8xl^)>ELTqr3X6Q^;t+K~={9o6Shf zF(`%CkG5f?!KMzQ{xIu%82dMx;f0U;rR@b;6C6h2x{I0(rOevibWRaJq#;p)A>ITB z-5xL23*uHHJL^9RbD6+D+frg1NF14xgTm>=`Y`y97t>OymavX}V+s2YfonvHtArkx z+lJ*a1JF($s<$9Fhou80!;eK~--RyEe~&rL5_;hze`oT$PpzB4mujbwUcJ2?o`HiZ%?l*^ z4+bb6i+(dwOSdDD?ctQz>`n|KoB_$8F|^5%}t!-$iH9Q7G#J+4l|!NH44FaZsdS@6D42UD+#4k-^K>Lz5JQ*AZQq z3QKvS)p<3QwHc7d?$8c&?|rr)dJ3++JBUBIG{g|W3|5IrlzTM5u?h^eG!=NVvDt&z zsG^vv+fyu+0D_ATlqR9ildzf)sFer>Ac^FOp!{}1F`&3YSlzHCnzweaCRR>J6rY3E zj1CW_KjswJ+L@xC6tU71^DToO0_#00*qiI|3wCh2(TE#my4LT{Z_qhnhhbeQOG46Y z+Ajz(A8%?)w*(V!eKWHQ#lmAKF7XcWjEFOZH`osy#8~2Q%p*w`IXGxUV%CV=NFz2K zO*l~x{d+0cch89*j|$3?W244FeMr9#Rp|84 z+_Z+mF&=hN_XJw+c0MVz>&Ap3u$hSx%z*rR+Id}Vs{k@t_?-oNQDeD8B*8$Ha|!2N zq9r!y`JRYCDTAJVR!}K9Rz8@qm1O*xLT0}pS#^Nw*79SKK7E0A0jEH#Cbxkwl8!L~ zc^@1=`B!hGq!t9Y|2-cPb^=?wg! zXaJd7Gk=o+Do}N^M2Ub%m5oJap8W_8D3)J})4D^&sgv`?Nd!)=&U+=asBWrZ0)SwUH6oh}@JWm(`fk77d~h8N>^RQE?Cl<*9qjR{B3C z%=|?1cGQ{fnFwB3!l0Odt7b&i?o*8y4q$@h1-0D>uL3`+COo{}&6|657Y$)vC8Hfw zLV?dInY9aP>F>(V_A=4|EuAjRk)lEyF9794Gs%m1p`X4lM(FKkW3ATUY7HMquBu0< z-j3F)$d}220%|)DFD;PCfRL0pp5!-3&Ts9&x zd6eAv&2e41hUCfn-MDWz_&eIQWVccW8h;pibt2?LYxK|(;1o~j2RM-?l?whEv--mL zn;$LpJ+R;q&WCjz#fM5!Q>5loQL-{UL}?uA`P56S->^hnsa}LXGy_|xH)Q6V;3B(m zb320kVG{d>nk_ANyykn?R+;KnZ1YqDvm!+p!XCIqt7PK7i<-Z1u%DkfRGwEP?@XRC z|AuPv)?<}5Z}wrXz3`|}g*nNT$SIFJpLO-T<#odhy1V{x$_rhu<@K?5<1NLn&Nq$` zlKrou&N3>>sBPPHH_~0w-QA#ccMbv)0z*i5GXjdh3?V5gl1d{rFakr5gp9-h10oI5 z;LG#8>wCYS_pf`cz1P0>6~}q*!sOosjDqG6?-&A1LzEv}>M51D zR91`1E8uCU4Uib&vleAUS}$)#!=RsVIyYsffDoNJgJPUkCto%5PBmYbK)O-qhh>uW zSt_RINGKJn>TL+&moqAQLhnrz?Uw-CtX2*|Z`c7h2K0U7=rb$=5fTS37g361KuiVR zWT$~nA?vBNnmD6zQk*&-dj(Yk{MQS!YlnLeVz~?l4FR4=&Z1Ip&6fmj+p@vaA5mhD z?W5P4KpSoW!Q++zjjB4}u)G{J0NWKyL^x#Z-WaehT-K zpQEy7L>dGfX`E|Kd5EWQ#Q;@)GR&*>MWc^~RFk_u^T?Rz7pgBa@USovK3ze7Wxc{lEp5Fp^Cn7%h>MBUzRHC}(6Io`;K3`g+j0a8DV1^bfS4y711#^7a9AbhUlCWk zj+C2D@jm7sYA!CG+%6(^T-4ptzM@zp{3`NX!$i+-@ipeMo={_GCE-ouG)q&z!-q=| zCs0yhyJOI22^l1(cj|wieIt!4h*s+Rj`M`2%>MF(&V+7D#5q?l?bglpP#pU-E0+f) zAnk|>tf~v59O0(Tph2j?0X4x7x{q&8XZT{6K3&W4HC$^WjuwcLR~fceBi}9yVUn&t z`!F~b1F9PkcN~7gtLC*tOzURK(j^6AzZ0nmWDmpVykJtoM%oM|Qk=|FXkspj>p&5+ z7!Qx*%H5hYp15=R{e(ds*~Dg39UML^-Su2a3Kv8b9>FY2GW%?+I9~o8MV>~9Ce8Zy znz&<8rK^#;C0Sevb}9@UamW5*mM&uOx4?fGQ$a)bji98tsN%?JgF;P(zL<1VPMpSh zZ7M9^msD|HdDsv9h-Ap%P&vDrcBp*MHer&a-9o&Fn#qg8E|n`uLNL|4*OBU#tXctK zk*K}6Q_E$A7?})guxR~T+<|q*kI&L(W~G$HU&&gl7v$EGY~=4lh~#veU$_>gL$RY6 z-%@IE>$5!DT^D;BMqR;w>bFAhhC*aD z)r%YY@?d6D9SmN1^2gtjM5f;;^15KZBq8KW5LXLpRwBhvtnA0!b9^sG7yp^kDl{YR zJA}!2%GSR^o6(^1vCyVbdXhS>Nlrv2E!2QHhRre)aPmBm9jhw*E@a&|L_-5E?VJ-@ zp^Ed@lDhn{HwL1!Pz6!s>vDZ^*-{Xsnk7fMT(M9~u-3y8Le!3mO>>?$SSZe%e|l}5 zlLl1q91>pF!2nDiuCvnWkfbnbX>qP+GrK(}yEm7~rNLnzQkMnPSVce)%ABTJ>F@;a z(U;HbNk_?r_e0w;@L%&m^^A*AapHK?nI{_{?x>>FW-R!;k1_!6qQ%o}fVzqRxu1=Q{+zSotC#EmyVvM+4*i1@%fl?(v^S>Xro< z;t1z0Jv>ceX*8ncJ+n3rHfSM_c{b*+*^dFn{`n8%yOIL6@I+1XP=F)+?G*W|# zP4E>rIoB=$mDW*l6XTw(G3i-DSyTcswJk(U3BYcKifZb(8OVup(?5*37+!PD z50PwFqGM^l`iUP|l6@r(R*X+W!u3^^akfrGTwY%saDjOpl3Uf^zouH+9*!8fZ08j`V^ zjvS5(_a8jmWkm-)MEoQ?$qiLxifXT-mDv~gQu7~P3H)>?zyq<-Q+`_84YBQ4 z#d5riV=A1G_lTW-N@-A)>Z)BfhUGhd&x-J@yD&0Ji+}r~nldhM=(%rBo^_Te26u0*0#P zw@1H-F;zSzE%!SecTWYgR$a*QDntFb;{U&j#{^&-v8 zFFr*k`m9o7=9Sr~1?-rW>>|>Q;7dTY9pu+t`!P_7m!9daaP7-82VdKmOD6A4hi{GQ zi5}vg4R5@ZaaqXUI6cjQZ6&?v^yLfrsQSm0c|>jFAI8Li4CiyH{!9u9g-fW8RL|;Y zn^T~jZ%>`-BPsI~i%`bQ@utE5AiIL*%+e>iq=9L*2xL#2uz}{<;#h<;9WHQPJ1$cD z9F*LaK-RGC3cheSKDSPW-8zoE>QtquzwZz!%^N12zE=H;exdKagio z{uD-0uL|b0j8kJ#17WLUn^VT`M|cAX zl}gR-xM|+xdsgIW8eSp<+&#~H1(5xrpPd=JD$+7L|HM~}Z#|eJ&tc1dg)=|&Td-%= z2cZ^)Tu7giZ6y4}Inod=KTr4l5&KQ;KF?l%_{CQUjIcr6Ysd7}pB`7@0iu?UwFlL3 zze$VjfvY{cg=%tAhR+ag1z=Z>K!;P6-@GGl>EHdFMe+Tn_6~x+#r*b_m%@_k{lveb zPflBtZct`lv)e@lBAGyuUDtBv-Iwe<$7O}pqhTM5iUNw4z>@xc{`~Lw`fAf)dK(0X zltyX0A~${7YlhlC7$i&AzMIHh~3{(@1SL@(cCFmKGk=& zQf*mWe9D_dTs!>vWe@w3>xan|MV<|ucyZp@IfjfB9dn+h#P+$F*uLPq`_(UMB`;1l zW|$NMQ)Pk0XUY;&HxzSAw9o#|mB1g56+2t!Iink56w;MBlJgH^ zB;V1vw*+=R9K59cq8j$?RCm3MmINoC@NeFBr^pX>oVgczJ^SA7&o%82zG5}En4cuofclmKT_lm$*{a)&(^$>} zdCE90pyFL`eoOm1Wa})SR3vqI4l-6pRpLAy*MJa%P+G=FbCkxBX4I>O#-o zV+N#|#@;^ntYnt7sUdd8!u{jLckAP&yKmpv8UM5xAADa=v)HZRTsMyG{?%AGH`>l7 zyy{c(OTYbnVV_^{!DAGhPj+ALQD6OaaP?r^UP`j27z#eyc}p`oHOBs?8Xj-xb@p9F zA@Ao|-$%@&gVN_O4hI>HUkLr>pt1o}s~BF)|M^(m6jkc;xXZqNDf>}HHm7@C_@za? zb-(O`u7oJ{>g!h`z;h2JUiW>(9R=xa>d*hny|F)XZ;#;EqYvl*cbuf4WEbZUQ-5rU zs{J4MMxmYNo*&%cz#oXGm6-tk?Jd9O^TWndFE7QZUc^FK$-y}R zcFJEl=sq$b6ay;CI7fB`Rt?2`N+oA`0!TiVepVhea-#$&Cup5WCTTzlSyv=yPzC{Y z$*YK?Q&JezYiES4;Wyk}15lUt1R^MSzs#J~Km} z)YQ79L~kM^MO6PMTZ`uKSy2}4Q<0gG`NWV}p4ksss=Tv9fn9}@`JuGVS5FWY7A+B? zFMrSHETJ;aBAQ6*v^Uax$SpsOuth7=GS`-CjvqdmshUpH^{5yDfqoqowT`DMu{Mf0 zAZ_WD_ryx+@=~o+p{h1bA?#h6xv93c_D$FBdiBo6ZB|6r1O5Y<`%sEV z>C%?X-y4Q4-5kiFh4l_yo@{n!zc*u6ttOa`c|;@MX;sL#C4WLGe*&QN4Xiz0TdN5Z zw=vh4<}BBnFC0ourXy*q>^zOd=WEgc3AG3zk)pbghDP1&${$0|Vr!cQPHX}6P-#!% zJK}+9Y+5Hj0qV28a$}=N$KzhxS;LWg)qw0(QMM;Dd4UWXkJv}W+uq^q8Xg#N5nbKT zyui4D?MaqrK})!)_LcS4i%|GDFL;cibXa>qxTAZ&PiLip_V( z*Do8S(ag3N!UXQ$w81^1vL!^}q?%7oX`2R-4p!k$#Oc~MJQnA##5pQUifHn#GX#`M z^aN*P+#vph$f&;vq(%A2@IL>(MS10U?CT9fcQU2)e1|Y4+8ETA6cI1jo8@0hD)|nM zVX*Yw**hWkyj(u(U?-tqj`SzNwa@O^WHw4|PXk)3t0yKW$!RWBm__`|?@AaZ10jxDt3>}&9-4Ud*C_!uMg?n*fN{o2wx_!-gcb

coX%6Gb^B?DLFR3k0?sxs1ddEm#%1dWXNZC?kd*pTw;4> z<1x!l*k%?Aa|cyT1HM$8f<%;Pg`6zH+zetXr-Y9`&g$ZlR6^UGo|vHTbhYX!P~~C3 zt(O+20Z5w_pzrTsThDB07(XkKl3R1ZFHwBG-I{&pbw~L;7D4Hc7EY9a*mx%gt5sjk z@xm;hD!sGy?q6w#0u1i?;^e-ylQg8ZxINI;9e~YuRKX5$3+*-=|NwQuQb3 z%XP)Iy})4N*}49q^NPwTJ9$x|-SP;B(0Nn$yuA8CaJI@vRbEJK4H@&Yd-l?O%`LOq~#cW5GY`IXd<};-!;$(OnIOz zpVs4h{_WWGT5XzSDbvBu+KN;%C(|`!Es49LIm|p#NMzkA(GqhjNd!GzP_^?oC`>%@pWr^50A7Kd3ZC zxo1|nC$UDB#iQ8(;}(0DCXU!h7B3{i&Ms*6Z^tU1n3=wuXIenRgZg57Ww~36$x_K6 z1%Zh!9wq);Sj+p=)VwR5-no^wEIw9YKD9K1>n719W|1KICN9c!=xdG=-I++T-j11I z;n~XU^64$w(_&L?Jqpe{)5PR=GiAG0Vzs&|CY1+rr=CCZ;uHN?GP^IoZtoiV!eZIc ztmIPi#Tj&$<*s&L^&3`xUy^^Z?sdeE{hR65_27f(!SD`PaylT5U46NU!K^Z zLrRHD5U{cIvjd<~Dmu50r!7Gx|F6Hx4ac1O5QjO9L*-$1`FT zo=CmaEQx^AQ@&;je(C&fn$NsrwcV}CDDwS#JUmO{Z~!uz^|CPB{QLd`K~;@|92Q7l zK;R-*hf6+rD%K>Y3@uVKBmTRi@=9~bSPJ`1OwCP_D4(lKa9Coz?(vhbC}`%fF)Bzt zgRkPFr#NIkAY>Av(GYY zTq-KDh!$6fk8jYgB+Ub(oOkQ>%TU3P3k4DK@T8bJEmsOTmuclUQDvO4G^LsGp&^h) zbe1gDE=#{}#3bguvFlfcX3=G|QVKceV5L$^2aUi*W^LWZ-v<6mV%;x;WTWsfx!|^K zjAVMnQq99qR9>HeRIu2e!@hn6N61DZ;BG%)V3U=;RPM6QzEyU|duF)CBeHx3-zWR& zDD$lbC8j*BOJ%C3lkf6$7lml^X8MEqz(8dpE3V)fFFtRPoE(d0*)*3EOsn6eWT{G@ zNch9G@d=J<97n>BTW<{BvsxI*bt)c?*vs9`qYWj3vWX6+CZE+B7P%eDQ7#JIj?^~X zzISakSyQ>D_PdulC3wzmCG2Dh!A8i}$Np)-sw)>lpUH+xb6tkN zKZy=gt$Q$LhqZ|EpJS3H>PhbdJGmB-d=k2}E_WJ(8L5&#BRB@3VNyitFpO5WfJnMM zGWn9h_h6mLTjmI5kz`VA8UoJ?CQgy$O1UI;S{1LK8Pf{1o7o>-Vm?g==%;T90=H7P z9%eFx8&juEf6Il3pjDOzk~Xw88(t1B?Jt8oIoH%La_yA%sa}O-b%626Kcs{sI6y>E zu=r`8(%hr(@~vLB<>gLp`%;{<*?wM4;Ok$e&E`RK#Hg}~ejvNIR%_--z6kfkNupK{8*2J#cEHou=iK)Qit9eV{ zr5!UuwrJYK)#g?^LaQ4DQ(jw*PkuksO>*YL#alOsIKIJE4E_qIT;Cq{Bk+Q)9O4Qo zQob%^!Fxlo2)`@kow!vQCZTY#p3G#Fk>V(?#Ls(-db|{m-r@hzoIK{={~P!Imqjpj zr2sw}xVH?>9-nNm{~w1yAqibE5ddO!B6iGQ5c^4-5&O9n!1l-l#ODG({^TvN9%c97 z(LX`~nLlW3+lx|gT%G(rV0bQnCJKWedNAQF+a=pleRJ_MlYkXiRTb*;QlNIbX45T2 zs!ZWlEezrL5t2Vu5@RV_D?YAncDYi(9~HyaCBLRjHSQ7|sL7%h#oy z9ttigJ4+k!Au^T*@2OQOVZ8x*Rq@iQVp$tnpOLkDRSskV^hL=YIG-%}JN(=dIvcc~ z5^!~%$w6ePtd;bVqPG>ca#dW-Y9t5 zTHr8{kMa-514H!uuT!>15)Y(8X}*Ed#X#9&FSAV%-N;Wa77bH20PdYS!@((!!x#aE z+T8I9z;}Riz`z5~ly|657Y+01f(7zZy0wg6rbCFLSAOSWg%yCTA`DssC%PzY&xr|S zy2_AP{f9Bj>dP8i!Qi|bk@oXHpCWesJGJu<#&w&kcQnB)Fja*6W!I6^MN#&hFbeJNloo#iSY;)ZdQ)|q6Hl$rdM1ixsHVa)FzhRe7duFtlp zkV&!tZi7@uup7!n3W>snR};kP9pu*;eej6s6F5=0(o%pLEzTwg(UVh^0I8igaPg#x z3{X4~em3ig1=c_t-%iO;GA==sd2@;zgsRExstAE55%1Knq%P=wUX%dbB@Fg(J=*mW zLF)2~tp#1mMDXZM*X)_>y*{dS8TvBAJVZ4>A}{ds1LT=D#gg7h@Y+EBoF0a4S-0$a zE5_ck9?{E>pn*na*IdVGDK()VmWlr9dfVKIGnN~865b@7Kfc-r2Vsyr$BnnDRtGFf zTBd&v`hrDM)Br_th!jL+FvHdThaPh_ae<8{$}DtB8;yGn0hA0 z>=2SUIm{5AJH@k>o``pI9&UK6-Z%J%I_(8u$E*ozv>jx!>OO4ZF7sOBllc|+ABOwH znJkNee+aFRGh_>istjzBbecUTc^PX8+`~PNbL-T!=}WH0Z5{R#!?e--oFS1l42k-Z zT=J-KZmhyG%Up27Dr#(>1695Y6BzS|wswEkk}qp5INo3}qtj9U6Zb1V#F{@pqVG2W zttG9`>8j;Kz=sUlcF0MXHL{mPF(j|Kh9xhQ@rM!XK!0v5rMU9CbM8+V)vkwNZL;2i zIJRV9W0?mgSEjZm)X|&BHQVdtcOj%wz~O+l<}mUvgE=VA5`lQFS*x9d1zC6Pf}+bt z!PSvE@*nm5v$bI9wP@8&TWS=LWomn26Amr9*P&-UlU1G-ue~m;&3?(5kj8FN{H4-q zIBAUTV?FzKnl1E6h&9}s9s!aa%xw4yEe-)#;O3)165K&8XK!FE+v)h)gMMNNsUcX!hr%@k^#TD)~BqNE0@2SiY#smqC+`Xq8Qvg z%9^@bU*yFkO-{!;DH-ZA%`-#2ug=j`(K-)qMs7{IVhf9xTpb%sVcBL~d2B}BB)ubT zoiSC;)Gs3PE>{DDV)!P>%PG0?95h!jny*Zo9Xz@CfOYo01zZw9vSJ9JSmiwYNDZoreY2&eiEG1Im zc-|uivB`r+bk!B+sn~y;=@Ew;OH)%K8<4oXCJJ!_`X?eA*8IpJ%z{vXdmWvy!C}$5 zYd!d?+&OZux>W3!w>e7ANSWpxV&@7XOKJo_?xYs( za4Xonf@dnmRQpm`VxJn$IT4|L_%%-Ic6Mcjnka-G$>9U|G_^*LdiVH}?yLFzqOWO1T=b(}r zP||K)3m(AM79yc9eSO||I;lxnf8H+%iK)IDsPJMod=H~Sp)Fw6s+2+Lp=qdqNxh3V zP2zh&<}|9nvCf~P{X!ITrlxmVb2%6_xO;otMI1R@@?-EmpFQliPSVy`V7))TK`X?Z zn{TniH1@Nl8QpmOnw{ItbhU`TVEgRezYV2E)9B!+n2*7Zi;bdS;Ry_qB$JBQi9Trh zv)}EFBC3$3!PcF$L$aXSP?@8GoN4}qQ}tGNxHP^A9F2DNss`@NZ&CtLjGwY}xHn0V zBnBZY`qeK%D96c3p-@JrD&6qHD7Eh52{<|`yE#w2vopKbW{>x(sN`^M=PfzZ1bucp zr_eqD2IPzJBU|_U9MxaDOkSi_T0P``LfRe?xfVybZmu%!kuV(5RxrWg!?k`YGp=>v z1=M~X((=C_tDHJ`T@IdWJbd|g^$RU%prJ&Itl&J&-8gjhX&)<>+@DoHD^AT&xx8J{ zwLRk#K?ZkjfVuoRw9eT)?I72pD-2wR+U_s*iF}Z)lx@(esijR9nFC!WqJs_yYh|cq zWptrm>avuT(es|v&%U4uA^uc*XQC-iA+j_@9y=%zda*InL0X~iT%_?Q_al0@$+FKtKR{Id~2Z^{j~ z-IAeX9{6Q1rpntz31+TJ&ClPf=Z8l-SMnfHZxwa()LqG2R+9YhG;*c$;b|rFpj+(a z1dac>8$-T>bDiY@iD((Zb2KBU_}lxw^;jN|S5I##-9!($(*66-^+RK?P_c0j zJf+9c+AqHS!}#%JGJlHNsr35?1^jBh8(ZAYj7i(|Ex`RE3`?P_f2tm2uFf)k{skGqa{@>9YIuQz zy3F>J$43k&jc)Qv5B;i?eh#Ag`|GO^rf#<>uCl%%yA#pdK{UKi!=B%XEs)R+WO5t89cZA)y1;|Q zDr6U2_>7I3OE_A1j}V`+B)oX&Z7`g(0ueyAndwGLx1?^$`b@>ayCL|4GW34vXxLP- ze7t6e$5*yIX2Ghu6y<{SPbj&)#in@~+4=dyLoub<8^!qxgSZm&lRA%2GI=Vbl6exe zA!Uc2%-6^mL+?Gb%9gr ziGC!PSTV9?cg(r|ISHO-;4C?vhAAmUWs2HvgV~8p>V(m|hLsrOpv6ck*%` z^5>J3Pg-LryeyRjV&OcG8djwQqvb*94RyI%Z%R2=K{YZSlV)BQu}54%eO8bXGi>w_ zXVtgH;ye8>aKk9*`&<2*G29kmLmVuV3h2(je)yxN@ml`Z9Ur zIR!oJKHN6sP4~JVuF1cbmtPr>Ib@39kNG!LXw3^IMx@ zL@Ap>7tOZj01ze(3?}OlChMkfi@?|jGUB|&q9bC&kcXwMyfKk!;&_8+FFvnIB&~$N zmvqO^Ph&}>3o*+1TwhMQcN(fqi#Jg2u0ThNZ~I-tQoYUuH6}RedCY^V+N2)Qhj)c# zL=QgZGLDhjMcOI0efqF6^B^Z)aX66NYlS62o~b*pVk$W>o?I&XZJlKQYm|=WgwTd} zgGaGet=5EE&ns>gCCgl;{wryHCz7;5+1fwQo7sDAO8Pe-V0TW_hXwV9FjqJ4$)6lPo{dZamywp!jw(+^+(;l9~ zxmm7)1CwjpoJgt;6iyH$34F+{5`a zPT(9|BzW0==u7qkpS%d*rZ7~bqwe(}LONYn(!u@jG$E6@M3Y3SSsU43GCxTuiaN099MKiA7o}a{ zqGMcEu#LK*+6$%Mu>rG8ZRCp`+V5spdHAe48ri-?F`fG&(Q+3Bdc;jb9G(a#t{F8v zTC8d#mGT*(T)jz2#&sWVexIlB3;NSTc6VrGbmm`#vV<2FhakGwRzy)`lAV!*lj?Ox z3ekl7rPPu%be2jdcpnBmHUy|c(=DO!F8H^NjiLyT&4Paz)+0ip@1ixYvTwFG=hsXz zEeVW@H%>aMuv)}E+yJWO3onX_5@Wc&DKj)f5+M`Wh(JAF@f%Q;!R`ACkg8! zt}R*?hUSxw1f2;WCGL%QPNCwA(KUnw!X7|Olj`+TRT+*ZuT}T!d}-N}-(9h$u4o1X zV&zVQj7tcx0|K9@@Z=nkbY6=>yB{dYMCT!m6n|rf@WGw-?McvTcLJyV?C>o$Ji@W} zEK@wwBbu|w9dYQrj>BTFfnIikpHkZ^v|{tQCh$cBts@M_^%5I5kw=oDO5jl7bGN#{ zvdhVwy{k)tB|RNo8lfe~)Yf0io^$e6e{O%wheB5QpxGwRby~E}Oz%p<_=#lVzml+iLef$;@IhI|L-CtF?>*UkkU95=5 z_G1ZC<5W(}PIlfzV_TptkMr?~GU)`gq^il7wBrpMnxV-U@%#YVhL%Gxd5S|7!7=We zLAam%od;?u$f!o;v#vc;U09@Q;FIqalf4g-=fE@y?JrE02lkAM^l@9fcF{bEU8=>Ie;5Ge!B*hz0V^z*xrNZPir|c zXl?NtEcdn-c#SgNvrD@i7sXpD+KgH>=q50n3n+r45Q_!CEMv*y8}0^TP30y1fCCY~qV%i#c|Yh8`4)B+Gx`8>uK>pxJ3bOnC~aYk`e-5Zb$@SCt}a z9F`s;QnmO6Na*YopMug&YgxP!n}+A?c+-n^5jFdyK1oy{{CH9FgWK|zKro~B6%8CQ z-L&$QYnHUjU00E>4I~bV=yc36F{_s?6z+b*Zh^0OEeBVqrDeNA%#1v zF#p5YTJ@FzM@3ko@{1j7GhF{av%P5h3m7Mw!=lf*`dPe~dVThVM zlk;fm(wl^$STBW&)K8t>Rz)QY0wa?OFhq408}u2yvZO2`!M+WlY++xt$9|igphS_I ztE!MZlw4jT=VpksNMsQH9_lKE>@XYHzl>!msol(B&7x7PhGagH6mr(C8vYrj6VpeC ziu9RzR8JNeU|ZXU5Z8@z<*+xCn!oz1&>60}(N&tr>hL?v_$s9BMIXbFAUN$U7DJ_R zQ0lOdoD`2Y_G`yGy54W{WP;6d@qsMzZ#wZz_Dx@5vxk7_YZzHN`NaACay=A3FR97C z9pUeFW109d(PoW#BJh~}?|MayUBBr$W+1Pft=mGUvWMry2VB3Gi7t!RdO18Azepc{ zbeHX_`YihZBKjzbtd0>#!PEPY31d>0FQt4cdnx4?1i3o*b9@N~rL^H??2+`^7nrBf zZDZcB@7YH}qYoK8!$1O#x3DzY$9VEt*Q{!y+Q~mXG$I>uB1){-l`i!Og^iLU7WqSA zmBy1bb6FaZXglR*l^u zS97PC_-$=2kLlXyQsJx0Lp?6`*QYbi0>-}>z;hqG`OU7;qEL$joK0$JBqgtOmz`Sc zn$@EyPu74wl;eWvp{f6pzBgBb#Uce9#6_HgvZ|eHh4Wg=xIf|_+zr2b$=BK> zY85^F%IbM9iNyHh`%@*HC%5wfv3J1hL3O(gn^&VZj+H!L!*!tshb`oM#DjScV`+}u zLYapHjt*UBhr)IOpOw3#a{9Y(S$GdbHY@;KroSXZb;rFP(52j{ugt3Ou7J9bH#!3B zz!!)T^?qun9}NEE?Cch-q3Jzzd3N}cFR%vpVCqX%;c+f}ElgBoXK6=35Sg8Iho;Y< zuQv7Z8^T_<@$y+cu43)OTM!iSEFEPzMQC+Il}5MlHJl)3{*B=@Qg{#GO%6w0rK4XR zsOIvrMq@V^BL?9>c+VkYT`<4_eJ^lADtRKpxWHS`Uy!L^XAd!})L&bp6!_#-v;mDe zatkHX3&SYUXB=BQE^rIOtN?8ujJz;cv%k3YyXjE-C*;yqw7@@%+C2uh z09qcdU%zh)7{d?qQqUrc$#i(PlB9lFr}igIA==}U*2i_F82Z28hgo7-{hF)m<99Fi zNfG0^SWhKSE<{@QoREY>epXB;#{8^bJ*l}Q%U2Vbx@=c?og&gCO7Vqq=I2ablPLzq zaU|vCYL&&pPj8t4I@@BXLi!uN{qL>cxUjD1&V*!x3ZUe-iYZm|y?PU@OhaeP!B-{j zsPYu{ZK!SV2X#@2?;er*NjA#rT~I-EOpVIp>|C;04bNR4C8*~2?%Qv)q+SXMmJy9E!gcKsv3(+=OM%pK(~-r_c+3gA`uTSh z6>Wh-%~dVb9RAEyspknVCf|($&RBkQbvT{%BSYmLT;{u0W6H}R^@WW*QE^>aLCalOCS0>z@2|=0{8)t9y9nTO#F>?^3jO zcp(0dW%)#3Xq^6Rccyt`ObS~X$p8gsqF-$c9VRjSwKA!I#6KA>3a}?0<|m%or`1`= zVuC!%f?zOT3|Y<|Ogw9|l(O zM6;F=6^%)}T@f8(TMxh8!)?#*mZg+hYzM=-z5UwFb2POB@FMEXMBTM!!=d6E;zaGl zj{!Ml)Y;z>SoF#yL&6q8**6?&1a%hnR?TvOm=!WS5cs@w5zWe$)VI;9PKl3W?IrjX zPddFYM?pbvJg}7(Y(sTLZ|j=0c;_M%pnJ64$fmB>!`PxM6H}EeGk4WVJLWOGCn_5v zL4<|wml$1L>93JJFtNpoUl#Z8;a#tWS1V3GMW;E{OUuN&c_M5kvqna z1^QQCqnrGt`l+^a8cq3Ru*_GvDF&M@FCvx{4}p-kDeeGat)dPw-Tv%wtLcn29+nEI zPDX_~&r7nvT*3O!7Rt0vvUGH`!jdOa6CfFb+fZ56EOzHFKpL{OwR7EQgEK+2!-dPd zaEfg>)Dp3{KS28mI&@A{-a@Xy+4=_=$o>K6;9HGbN3G6Sz{2-oG!yIM%D96^>Sb<^!IzV`bApOQD=Ty*22 z=KcVuCA)@chwOf>09Tsn!GNJb*U9n57%n3gNoL8s$OU6Q__-0I!O_P6&J%=e@&Qjo zB{5K6R57bhKq*Lt^UKNLdDi-_MR|+6&`$vHI=x9=rAED&I{QSL<<4C`lj4} z-S|oeSF{1C3#y%fBomTdkJgWU29Z8@;_F#Y*L_&C{!+b6^xZ%MwkL|fA)<0f9z+Wm zBA**MRMt9sS~`0k5|pOZQ>--M=@WVmmZ}yuB-yO?zkx)avyo0^Xiu4I3($GZ955r*WF%x`Y`4z8uUNlkW=1 zjE9=3I3Eh3eDLYWJ!^&wyyz6`V5nGtMMD^!6rvegAO-#HM?hAWghy+6knIxGC=8;__V~CEF9zW(DxNF(nxC(-?WBI5aH5 z8Y26<_mc2T=8(#@F-Tq2z=}G3$`;;!b6yd&o8b9b*X6ZtK;n_i89o0=T<%i!l*Khj8{T$`80wtPE zCwkREqPAeOBOp|FL=YTVm@kb}*jWAkz4+<;*&+5F}fi zb}~u>uz|CH;YOE^O60iJou^<~zNq&=E8IT=)Z$O0ey#{hOnu zkVL5b*hY;kwCrx=ghf1^TMVC6zNR*hryzQ!qOamQP1A;|c@mR^Mxlca^RF3W6OU$bJEA+s#1MM@W7?pE72lFd*Fhgd$!?MzsZ8sBD zn_lMn@;MiNy^Yty%CvY){lLGwf-gxTsCE-3`W`q?p(10@r=6X;-zsXm>SDO?$OErZ zA2noDXF&xa!WUU#`9GMZYT9bX3O=Bx)PFp?x=pLtmm(?7^vY`bT07%j3y1jTh6YlivSmd{Z9WY zhd?=x?m5lBTHO(eUsK#9J7DD0l8)x#!g$T>OQ5(7M{>}Ez8SFZsWO*(0&WCs6 zZ_9PJ%oI-~0&wqO^CK|)szaysO{$Z?eUQ^Bx)Vh3r_&;OHhG z54uWZOfV8nQ-HTgY9pmZdw>iPIPn{?I*GK>by6+ znY>3>a2rpI51?(?!3Bl>G)jP0wJHINU1*)#V&~NT2DL+-< zG&Ew*XO|7mf>y|;+JW;jfZZM^o#xh}4CnL3Zl-wH)~1vSJqB_!J^PrezNb5zq2GstW_B zeI=0<*+z8!Xem0kP3`qEeHAKFGhK-yagqm#Qq0oOja1%%%^s>w*eIl#+ddq6-^(Lf zRpvv5*kR&cklH5EgErN)z6eFmae7HXqb22GQOd=~lE%x#%>9qp-IV(RM^}@6ik16X z4J&xZJarD;CM#MO^tO=wgpLJT0EhqvIHzBMLuo6JU%+%ir%0w^Z-;OwFXPD;K1!AF zHEQi;XKAo}^jlSk?h^SKQ&;Swxck)A!*WdFjWe1_KetDlgg09aS~6d< z$*W&IGbNExWV)%-b-lcOKI0s^?=oQBk{`!=gJLX2o$z;0K718fgWXe&KZqG-k8+!h zlVje&iDIzuf3kdUa=MR|6<+BjFh)o+4Pd$H z6h-uK*q$p~0{&xAlNZtaP+llsvYeQ3f_74^^@plbLlhv6nky8xeG$?kHn$U_<(;m8 z1@stnt&*Anoc(eK=Nj%QjzkHeRcl-SVN6$`0r}oQX=3L+|5c}_1-17`q#jzXu=plO zpyGZMiE@UsOu(HX^%{6m&m0}(>H_yzPtTB@s)$PnnqCsh`aCp~;$&A<<@nCXs++BT=@*?agxWd_Y?R8C6q^OZa=&Qdnz$^q@>-INNCuCqAe u&`Je8|LpLk?se7<4qAb$-@HG3jPzaVi(vHx)n2(`F;J6XbxG;J<^KUL&WJSt diff --git a/api/cors.md b/api/cors.md deleted file mode 100644 index 2d1b2cb..0000000 --- a/api/cors.md +++ /dev/null @@ -1,21 +0,0 @@ -Cross-origin resource sharing (CORS) is a mechanism that allows restricted resources (e.g. fonts) on a web page to be requested from another origin outside the domain from which the first resource was served. For example, if our web app hosted at https://blog.foo.com and in our `index.html` page we have ``, that image (a resource) is considered be shared cross-origin. Some resources are not considered _restricted_. A web page may freely embed cross-origin images, stylesheets, scripts, iframes, and videos. Certain "cross-origin" requests, notably Ajax requests (web API calls), however are forbidden by default by the [same-origin security policy](https://en.wikipedia.org/wiki/Same-origin_policy). The same-origin security policy is a feature of web browsers that prevent a web page from one origin to run scripts from a different origin. - - -### What defines an origin? - -The origin of a resource is defined by its URL. Specifically, the part of the URL before the first folder or file. Here are some examples of cross-origin and same-origin URLs: - -* http://foo.com and https://foo.com: **cross-origin** because of different [URI schemes](https://en.wikipedia.org/wiki/Uniform_Resource_Identifier) (http/https) -* http://www.foo.com and http://blog.foo.com: **cross-origin** because of different [hostnames](https://en.wikipedia.org/wiki/Hostname) (www/blog) -* http://foo.com:3000 and http://foo.com:8080: **cross-origin** because of different [ports](https://en.wikipedia.org/wiki/Port_(computer_networking)) (3000/8080) -* http://foo.com and http://bar.com: **cross-origin** because of different domain names (foo/bar) -* http://foo.com/profile and http://foo.com/v1/users: **same-origin** - - -### Configuring CORS - -CORS can only be configured on the server that provides the restricted resource. That means if we want to consume an API from the browser, and the URL of the API doesn't have the same origin as the page our script is running in, the server must be configured to allow requests from other origins. When a web API server has been configured to accept requests from other origins, it will include an `Access-Control-Allow-Origin` HTTP response header. As long as our client-side script came from a matching origin, we shouldn't be effected by the same-origin security policy. - -But what if we can't change the configuration on the server? That just means we can't consume the API from a web browser. That doesn't mean we can't consume the API from our server. We can route requests from our client via our server (we won't need a CORS setup if our client and server have the same origin) and get our server to hit other servers. Note that our server doesn't have same-origin constraint, because the primary reason for a same-origin constraint is to avoid scripts running within a browser to read or interfere with the browser's DOM. This illustrates the relationship and calling pattern of the client getting results from the external API via our server. - -![proxying an api call](./api-proxy.jpg) diff --git a/api/crud-rest.md b/api/crud-rest.md deleted file mode 100644 index 49ee411..0000000 --- a/api/crud-rest.md +++ /dev/null @@ -1,30 +0,0 @@ - Resource action | Associated HTTP request -:----------------|:------------------------ - **C**reate | `POST` - **R**ead | `GET` - **U**pdate | `PUT` - **D**estroy | `DELETE` - -REST = Representational State Transfer - - -### Example: managing users - -CRUD is a way of talking about the basic actions we might want to perform with users: - - create a new user - - see all the users - - see a particular user - - update a particular user - - delete a particular user - - - Resource action | Path/route | HTTP request | ? -:----------------|:-----------|:-------------|------ - **C**reate | `/users` | `POST` | creates a new user with the parcel of data you have `POST`ed - **R**ead | `/users` | `GET` | `GET` a list of all users - **R**ead | `/users/5` | `GET` | `GET` the data of user 5 - **U**pdate | `/users/5` | `PUT` | update the date of user 5 with data you have `PUT` - **D**estroy | `/users/5` | `DELETE` | `DELETE` / destroy user 5 - | `/users/new`| `GET` | `GET` the form for creating a new user - | `/users/5/edit` | `GET` | `GET` the form for editing a new user - diff --git a/api/keys.md b/api/keys.md deleted file mode 100644 index 440a5ae..0000000 --- a/api/keys.md +++ /dev/null @@ -1,15 +0,0 @@ -It isn't uncommon when consuming an external web API that you'll need to authenticate your app in order to use it. Often this authentication doesn't need a high security solution; for example when accessing non-sensative read-only data. In these cases, we only need to send a string that identifies our app. We call this string a _key_. We usually get this key from the admin section of our developer user account on the site. In the case of [mashape.com](https://mashape.com), we must send this key as the value of a `X-Mashape-Authorization` HTTP request header in each of our API calls. - -When using [`superagent`](https://github.com/visionmedia/superagent), we might make the request like this: - -```js -request - .get('https://numbersapi.p.mashape.com/1/22/date') - .set('X-Mashape-Authorization', '7zdlxkb3jqmshIgOJzR0qN5NdQc3p1PxmhXjsnJvX4hNVr2Yio') - .set('Accept', 'application/json') - .end(function(err, res){ - console.log(res.body.text) - }) -``` - -This does require you to send your API key to the browser, which yes, means anyone can see your key and potentially use it. It also means you're probably commiting the key to your source control repository. In low security scenarios this can be okay. We will explore more secure scenarios later in the bootcamp, but what if you don't want to include your key in the client-side code even in low security scenarios? In this case you will need to consume the API from a server, your own API. Doing so will keep the key out of source control and away from any browsers. If you take this approach, consider using [`dotenv`](https://www.npmjs.com/package/dotenv) as a place to keep your API key. You'll place the key in a `.env` file and make sure this file has an entry in your `.gitignore` file. The npm package is smart enough to use the contents of the `.env` file when it can find it, and use normal environment variables when it can't... diff --git a/api/supertest.md b/api/supertest.md deleted file mode 100644 index d93ad04..0000000 --- a/api/supertest.md +++ /dev/null @@ -1,36 +0,0 @@ -[Supertest](https://www.npmjs.com/package/supertest) is a great way to test APIs. The way you use it is quite similar to [Superagent](https://www.npmjs.com/package/superagent). - -Here's some example usage, which incorporates tape. - -```js -var request = require('supertest') -var test = require('tape') - -var app = require('../app.js') - -test('/users route returns an object containing an array of users', function (t) { - // Arrange - var expected = true - - // Act - request(app) - .get('/users') - .expect('Content-Type', /json/) - .expect(200) - .end(function (err, res) { - // Assert - t.equal(err, null) - t.equal(Array.isArray(res.body.users), expected) - t.end() - }) -}) - -// Close any open connections -test.onFinish(function () { - process.exit(0) -}) -``` - -Here Supertest is using its API testing tools (`expect`) to check the headers and HTTP status code it receives from its GET request to `/users`. It gives us the response to test in `.end()`. The test checks several things: first, that no error was returned; second, that there is a property named `users` on the response body, and that it is an array. - -We can't test the exact content being returned from the route because it could be different each time. We'd have to have the exact same database records every time we ran the test to ensure predictable behaviour. Tests that examine a route in this way are often referred to as _integration tests_, because they use multiple parts of the system (the database, network and filesystem in particular) which are not [mocked](https://en.wikipedia.org/wiki/Mock_object#Use_in_test-driven_development). diff --git a/api/web-apis.md b/api/web-apis.md deleted file mode 100644 index 2ebf0e4..0000000 --- a/api/web-apis.md +++ /dev/null @@ -1,49 +0,0 @@ -Web APIs are interfaces for other applications instead of users. They don't have a visual interface - only data. We often refer to these blocks of data returned from web APIs as _resources_. A resource maps very closely to what you understand as a database entity/table, a type of thing you are storing. - - -## REST and JSON - -REST stands for Representational State Transfer and was coined by Roy Fielding in his PhD dissertation titled [Architectural Styles and the design of Network-based Software Architectures](https://www.ics.uci.edu/~fielding/pubs/dissertation/top.htm). Chapter 5 describes stateless entities (what we're storing in our database) as resources. It also describes how we can refer to these resources using a uniform indicator: the URL. This is why you will see URLs describe individual resources like this: `/widgets/213/characteristics`. - -JSON, JavaScript Object Notation, is a string representation for JavaScript objects. We can use `JSON.stringify(jsObj)` to convert (serialise) a JavaScript object to a string, and `JSON.parse(jsonString)` to convert (deserialise) a JSON string back to a JavaScript object. Fortunately, Express.js can do this for us as we'll see below. This is the recommended (and most common) format for REST API requests and responses. - - -## Exposing web API routes - -Routes are exposed for web APIs in the same way they are for routes that return other web assets. The main difference is they accept and respond with JSON. - -There are a few different things you should notice about the code samples below. The endpoints they define use an `:id` syntax and `req.params` rather than `req.query` we've seen before. Using route params is more explicit and much more common with REST web APIs. - -### Returning JSON - -We use `res.json` to return JSON to the caller: - - ```js - // server.js - var widgets = require('./routes/widgets') - app.use('/widgets', widgets) - - // routes/widgets.js - var express = require('express') - var router = express.Router() - - router.get('/:id', function (req, res) { - var id = req.params.id - res.json({id: id, name: 'Best widget'}) - }) - - module.exports = router - ``` - -Notice how it just uses a normal JavaScript object. The `.json()` method will take care of serialising the object to JSON. - -Don't forget Express.js is also capable of receiving JSON in the request body using the `body-parser` middleware module. This is common when using the POST and PUT verbs to insert and update resources. - -```js -// server.js -var express = require('express') -var bodyParser = require('body-parser') -var app = express() -app.use(bodyParser.json()) -``` - diff --git a/architecture-patterns/mvc-intro.md b/architecture-patterns/mvc-intro.md deleted file mode 100644 index 1c41b3d..0000000 --- a/architecture-patterns/mvc-intro.md +++ /dev/null @@ -1,10 +0,0 @@ -Building database-driven web applications requires a lot of moving parts: the server, views, routes, data access code, etc. For your application to be maintainable, it's very important to adhere to the _Single Responsibility Principle_ by putting each of these responsibilities in their own modules (files). - -Model-View-Controller (MVC) is one of the most common _separated presentation_ patterns. These patterns describe how to structure code according to the Single Responsibility Principle. - -**Model** is the data representation we apply to our templates. This is the second parameter we've been passing to templates with `res.render('view', model)`. We've also called it a _view model_ because this model is built specifically for a view. - -**View** is the visual representation part of the code - our templates. We've built these using HTML and Handlebars. - -**Controller** is the code that coordinates the interaction of the data (the model) and the view. We've been doing this in our `routes.js` file, but that often causes our routes to do too much. By creating a separate `controller.js` we can reduce the responsibility of our routes to get the view model from the controller, and apply it to the view. - diff --git a/async/callback-hell.md b/async/callback-hell.md deleted file mode 100644 index 8377c4d..0000000 --- a/async/callback-hell.md +++ /dev/null @@ -1,5 +0,0 @@ -When your asynchronous function calls another asynchronous function, which calls another asynchronous function, your callbacks can get quite nested. - -This anti-pattern can make your code very difficult to read and maintain. - -It's affectionately, and appropriately, known as called "[callback hell](http://callbackhell.com/)." diff --git a/async/callbacks.md b/async/callbacks.md deleted file mode 100644 index 71e9448..0000000 --- a/async/callbacks.md +++ /dev/null @@ -1,83 +0,0 @@ -A _callback_ is a function we pass to another function as a parameter. When the receiving function wants to send something _back_ to the first function, it _calls_ the callback. - -Remember `Array.map()`? It takes a callback function as a parameter: - -```js -// Returns [2, 3, 4] -[1, 2, 3].map(function (n) { - return n + 1 -}) -``` - -The anonymous function passed to `map` is called by `map`: we don't call it ourselves, we just tell it what to do once it gets called. This is a very common pattern in functional programming. - - -## "Hello, Metaphorical Pizza?" - -We often use callbacks when working with _asynchronous functions_. An async function will go off and do its work, then call the callback you passed to it when it has some results to give you (or an error to report). In the meantime, the rest of your program continues on its merry way, not waiting for the operation to complete. - -Say you're hungry, and you order a pizza. You don't know ahead of time how long the pizza is going to take to arrive (30 min guarantees notwithstanding) and you're certainly not going to stand there doing nothing while you wait. You go on doing whatever you were doing, but you've provided your address to the pizza place so that when your order is ready, they can deliver it to you. They can also report an error: "We ran out of anchovies", or "The oven exploded". - -```js -function deliver(err, pizza) { - if (!err) { - answerTheDoor() - payFor(pizza) - enjoy(pizza) - } -} - -orderAPizza('pepperoni', deliver) -makeCoffee() -callFriends() -``` - -In this example, `deliver` is a function being used as a callback. We immediately go on to doing other things after we've called `orderAPizza`, and the code inside the callback will only execute when the pizza place calls `deliver(null, pizza)`. (See below for why we used `null` here.) - -Async functions might take a little getting used to in the beginning, but you'll use them a _lot_ in your JavaScript programming and they will become second nature. - - -## Reading from a file - -Node programs often pass callback functions that handle the data you expect to receive from APIs, from databases, or from the filesystem. The filesystem is an easily accessible way of practicing this technique. - -```js -var fs = require('fs') - -fs.readFile('animals.txt', 'utf8', function (err, animals) { - if (err) { - console.error("Couldn't read file:", err.message) - } else { - console.log(animals) - } -}) -``` - -This program reads a file from the directory in which it was run, and outputs the result to the terminal. Try it! When you're done, try modifying the string `'animals.txt'` to a filename you know _doesn't_ exist, and run the program again. You should see an error that Node can't open the file you asked for. - -The first thing to notice about this example is that everything interesting happens _inside the callback_. Remember, we're not making things happen ourselves: we're _defining_ what _will_ happen once `readFile` has finished its work: once it has either succeeded or failed to deliver the contents of the file. - -The next thing to notice is that the callback has a very particular structure. It's an _error-first callback_, a common convention in the Node world which assumes that the first parameter of the callback will always be either an error object or `null`. We should always check the error to make certain it's `null` before we try to use the `animals` parameter. - -This is a really common pattern in JavaScript programs. You'll be seeing it a lot, so get some practice in! - - -## Named callbacks - -The callback doesn't have to be an anonymous function. It's often better to use a named function, both because it can be re-used and because it can be more readable: - -```js -fs.readFile('birds.txt', 'utf8', displayFileContents) -fs.readFile('trees.txt', 'utf8', displayFileContents) - -function displayFileContents (err, contents) { - if (err) { - console.error("Couldn't read file:", err.message) - } else { - console.log(contents) - } -}) -``` - -Right away this makes our code a bit more DRY. We have to do the same thing with both files so why write the function twice? It can also make the code easier to debug since we only have to look in one location for the problem. - diff --git a/async/consuming-promises.md b/async/consuming-promises.md deleted file mode 100644 index 9774a48..0000000 --- a/async/consuming-promises.md +++ /dev/null @@ -1,80 +0,0 @@ -Promises are another approach to asynchronous programming - one which conveniently allows us to sidestep callback-hell. - -Functions which perform asynchronous operations (such as interacting with the file system or a database) can return a promise which is **then** _resolved_ later. If that promise can't be kept (something is _rejected_) we can **catch** the error and deal with it. - -## `then` and `catch` - -```js -getDataFromServer() - .then(doSomethingWithData) - .catch(handleError) -``` -This example is about as simple as it gets. We don't need to understand the exact details of how to return a promise in order to use `getDataFromServer`. We just need to expect that: - -1. The `then` function will call `doSomethingWithData` if there is no error. `doSomethingWithData` can be passed a value. -2. The `catch` function will call `handleError` if there is an error, and `handleError` will be passed an error (often a JavaScript `Error` object). - -It may be helpful to see the same code again using inline anonymous functions (though we should still try to use named functions for clarity): -```js -getDataFromServer() - .then(function (data) { - console.log(data) - }) - .catch(function (err) { - console.error(err) - }) -``` -If `getDataFromServer` returns a _resolved_ promise, `then` will be called (and `catch` won't be). If it returns a _rejected_ promise, `catch` will be called (and `then` won't be). - -If you are familiar with callbacks, you'll notice it's like a callback that has had the `err` and the `data` handling parts separated. The same thing might be written like this with callbacks: - -```js -getDataFromServer( function(err, data) { - if (err) { - console.error(err.message) - return - } - - console.log(data) -}) -``` - -## Promise chains - -We can also string together quite long 'promise chains' which define the order certain tasks should occur in: - -```js -getDataFromServer() - .then(checkTheData) - .then(displayTheData) - .then(modifyTheData) - .then(saveTheData) - .catch(handleError) -``` -So long as each function in the chain returns a data object, this will help ensure everything takes place in the correct order. For example, `modifyTheData` would not be called before `checkTheData`. - -## Knex.js - -We can see this being put to work with the Knex library when accessing a database. A simple example: inserting a row, then querying the table and displaying the results. -```js -knex.insert({ - name: 'Daisy', - age: 15 - }) - .into('dogs') - .then(getNames) - .then(showNames) - .catch(displayError) - -function getNames () { - return knex('dogs').select('dogs.name') -} - -function showNames (names) { - console.log(names) -} - -function displayError (err) { - console.error(err) -} -``` diff --git a/async/fs.md b/async/fs.md deleted file mode 100644 index dc1c9d3..0000000 --- a/async/fs.md +++ /dev/null @@ -1,60 +0,0 @@ -Reading and writing files on the filesystem (the hard drive) is a common asynchronous operation. Node.js provides both synchronous and asynchronous functions to read and write files. You can see this in the documentation for [`readFile`](https://nodejs.org/api/fs.html#fs_fs_readfile_file_options_callback) (the async version) and [`readFileSync`](https://nodejs.org/api/fs.html#fs_fs_readfilesync_file_options) (the synchronous version). As you can see from the documentation for the [`fs`](https://nodejs.org/api/fs.html) module, it provides a _lot_ of functionality. - -Filesystem access is part of a broader type of operations called **IO**, which stands for Input/Output. IO also includes accessing databases and communicating on a network. We're spending most of our time using the HTTP protocol when communicating over networks, but IO includes all protocols and data formats, and databases. All IO operations should be performed asynchronously because they often take much longer than performing the in-memory tasks most of our application is written to do. - -Most of our web development work will not include operating on files. Most of it will involve databases and network communication. However, filesystem operations provide a great precursor into the asynchronous programming practices we'll apply with databases and networking, without having to understand the surrounding technology. The added benefit is understanding how to work with files, which is _very_ handy when programming local scripts. - - -### Reading a text file - -To read a text file, we need the path to the file we want to read. In the example below, we're using the `path.join` function to create the path to the `students.json` file. - -```js -// Include modules provided by Node.js -var fs = require('fs') -var path = require('path') - -function readAsync () { - var studentsFile = path.join(__dirname, 'students.json') - fs.readFile(studentsFile, 'utf-8', showContents) -} - -function showContents (err, contents) { - if (err) { - return console.log(err.message) - } - console.log(contents) -} -``` - -The contents of the file, `contents`, will be passed into our error-first callback function. We're console logging the contents if no error was provided. - - -### Writing a text file - -To write a text file, we need the path we want to create and the contents we want for the file. - -```js -// Include modules provided by Node.js -var fs = require('fs') -var path = require('path') - -function writeAsync () { - var teacherFile = path.join(__dirname, 'teacher.json') - var teacherJson = JSON.stringify({name: 'Don'}) - fs.writeFile(teacherFile, teacherJson, function (err) { - if (!err) { - verifyExists(teacherFile) - } - }) -} - -function verifyExists (teacherFile) { - fs.exists(teacherFile, function(exists) { - console.log(teacherFile, 'exists:', exists) - }) -} -``` - -Instead of having to create a string buffer, the `writeFile` function will also accept just a normal string, which is returned from `JSON.stringify`. The anonymous function we're using as our error-first callback only accepts an error because there isn't anything else to return. If no error is provided we use `fs.exists` to determine if the file was created. - diff --git a/async/testing.md b/async/testing.md deleted file mode 100644 index 59039de..0000000 --- a/async/testing.md +++ /dev/null @@ -1,40 +0,0 @@ -Let's say we want to test and write an asynchronous function `readJson`, which given a path to a JSON file returns the object represented by the file. - -Our initial approach might look something like: - -```js -test('reads a json file', function (t) { - var path = __dirname + '/data.json' - var object = readJson(path) - t.ok(object) - t.end() -}) -``` - -However if we read our file asynchronously with `fs.readFile`, it's impossible for `readJson` to return synchronously. This is because `fs.readFile` is async: the filesystem read takes time and subsequent lines of code will be run before the contents of the file are ready to be used. - -In synchronous code - -* to send data to the caller we use `return data`. -* to send an error to the caller we use `throw err`. - -In asynchronous code - -* to send data to the caller we use `callback(null, data)`. -* to send an error to the caller we use `callback(err)`. - -This means `readJson` must also take a callback! - -Let's try again: - -```js -test('reads a json file', function (t) { - var path = __dirname + '/data.json' - readJson(path, function (err, object) { - t.error(err) - t.ok(object) - t.end() - }) -}) -``` - diff --git a/async/versus-sync.md b/async/versus-sync.md deleted file mode 100644 index 3df4d34..0000000 --- a/async/versus-sync.md +++ /dev/null @@ -1,36 +0,0 @@ -Every function in JavaScript is either synchronous or asynchronous. It's important to understand the difference because synchronicity defines how the function behaves to the code that calls it. When your code calls a _synchronous_ function, the function makes your code wait until it's finished before letting the next line run (also called _blocking_). This is true for most of the functions you've called so far, and likely all of the functions you've written so far. An _asynchronous_ function returns control to your code right away while it continues to do its work. This allows your code and the function to be working at the same time, asynchronously. Here are some examples: - -```js -console.log('before') -synchConsoleLog('working') // synchronous function -console.log('after') -``` - -As you would expect, the output to the console will look like: - -``` -before -working -after -``` - -Now let's consider an async example: - -```js -console.log('before') -asyncConsoleLog('working') // async function -console.log('after') -``` - -Depending on how long `asyncConsoleLog` takes to execute, the output of this could be: - -``` -before -after -working -``` - -Async functions are appropriate when they are going to take a long time to complete, so the calling code isn't blocked. It turns out that it takes a relatively long time to read or write to the filesystem (the hard drive) and the network (e.g. sending an HTTP request). In these cases, it's common to use async functions. - -The calling code often needs to know when the async function has finished its work. It's also common for the async function to return something (a result, error code or status change) which the calling code needs. In JavaScript, there are a number of different ways to approach this issue: callbacks, promises, and generators. We'll get to promises (and maybe generators) later in the course, but callbacks are the easiest to understand and very common. - diff --git a/culture/challenges.md b/culture/challenges.md deleted file mode 100644 index 037f473..0000000 --- a/culture/challenges.md +++ /dev/null @@ -1,9 +0,0 @@ -The challenges at Dev Academy are made for learning. Completing things is very satisfying, but in this course you will not have time to finish everything. Side note: the same is true in life. - -``` -Completion !== Learning -``` - -It's important to pay attention to your learning and work on how you most effectively and efficiently learn. You will need to prioritise what you spend you time on. Specifically, we'll be supporting you to ask: - -> Is this advancing my learning? diff --git a/culture/pairing-intro.md b/culture/pairing-intro.md deleted file mode 100644 index 97b0bce..0000000 --- a/culture/pairing-intro.md +++ /dev/null @@ -1,52 +0,0 @@ -Pair programming is an agile software development technique in which two programmers work as a pair together on one workstation. One, the driver, writes code while the other, the navigator, focuses on the bigger picture, and immediately spots mistakes. - -Together, the programmers help each other hold strong attention on the task. - -It is a simple but very effective tool. - -Watch Fiona and Semira's explanation for an explanation of how to pair program. - -Then watch Codr.tv's episode on Pair Programming to hear about how Pairing is used as a tool in the industry. - - -## Environment - -The options we've found for pairing, in order of effectiveness, are: - -1. Pair in person -2. Video call while working collaboratively on a remote computer such as Cloud9. -3. Video call with screen sharing (Skype, Google Hangouts, appear.in, etc.) - **If you can't meet up in person, and you don't have adequate internet connection for options 2 or 3, you won't have adequate communication lines to pair program** - -Instead, you can get some of the benefits with: - -1. Phone call and slack to discuss approaches, ideas and issues. -2. Share pseudocode and code on slack. - - -## Prerequisites - -* Something to work on together - - -## When pairing: - - - First, check-in with your pair - - Assign roles (driver vs navigator) - - Explain your thinking in a clear concise manner - - Keep a timer, to monitor how long you have been in a certain role - - -## Capabilities - -You are comfortable: - - - taking time to check in with another person before coding together - - understanding how to use pair programming effectively - - -## Resources - - - [Pair Programming - Fiona and Semira @ Generation Code (Video)](https://www.youtube.com/watch?v=vgkahOzFH2Q). Their video may seem silly, but the points they touch are very important, and we see the pitfalls they highlight happening on the course all the time. - - [Codr.tv - Pair Programming (Video)](https://www.youtube.com/watch?v=5ySLQ5_cQ34) - diff --git a/databases/intro.md b/databases/intro.md deleted file mode 100644 index d58fbc6..0000000 --- a/databases/intro.md +++ /dev/null @@ -1,79 +0,0 @@ -Databases make it easy for applications to save and retrieve data. They allow the data to be accessed by multiple users and potentially many applications while maintaining performance. - -There are different kinds of databases. They vary based on how they store data, which can be advantageous to different types of apps depending on the data it operates on and how it needs to be structured. Examples of these database types include: relational, document, object, and graph. We'll focus on relational databases because they are very common and are appropriate for many types of applications. - - -### Files versus servers - -Databases may run on the same computer as the web server or on a different one. Regardless, it is an explicitly different service. In the same way a web server is an application waiting for HTTP requests, a database server is an application waiting for data-related requests. Database services require credentials in order to connect to them. So before you can store or retrieve any data to a database, you must first create a connection using predefined credentials. Examples of database servers, also called Database Management Systems (DBMS) include: Oracle, MySQL, PostgreSQL and MS SQL Server. These are all relational DBMS, or RDBMS. - -There are also some file-based relational databases, such as Microsoft Access and SQLite. These are appropriate when our application is only used by one user at a time because there isn't a service managing the data. However our application will access the data the same way it would if we were using an RDBMS. There are significant disadvantages to using file-based databases and they should normally not be used with production web applications. However, they are useful during development and for single-user applications, such as mobile apps. - - -### Structured storage (relational) - -Relational data is stored in a structured way so it can be saved and retrieved easily. Fortunately you are already familiar with a structure very similar to databases: spreadsheets. While databases and spreadsheets are very different, there are enough similarities in how they conceptualise data that's it's useful to compare them. - -**Entities**, also called tables, are similar to a single sheet of a spreadsheet. Each database will have at least one of these, but often has many. An example of an entity is: `Users`. - -**Fields**, also called columns, are similar to the the vertical lines in the sheet of a spreadsheet. Each entity will have at least one field. Examples of fields are: `first_name`, `last_name` and `username`. There are some special fields we'll cover later. - -**Records**, also called rows, are similar to the horizontal lines in the sheet of a spreadsheet. An entity will only have records when there is data stored. Until then, there are no records. An examples of a record is: 'Bernie', 'Sanders', 'burningsand'. - - -### Schema versus records - -A database is made up two kinds of information: data and metadata. Data is the actual data being stored - 'Bernie', 'Sanders' and 'burningsand' in the example above. Metadata is the information about the data. Entities and fields define the kind of data being stored: first name, last name, and usernames of Users. It's important that you keep these concepts separate when you think about databases. - - -### Data operations - -After making a connection, you will perform your operations. Most databases permit 4 different types of operations and a very common mneumonic to refer to them is CRUD: create, read, update, and delete. Each of these operations represent something done on a piece of data, also called a record. - -* **Create**: a new record is saved. -* **Read**: an existing record is retrieved. -* **Update**: an existing record is changed (edited). -* **Delete**: an existing record is removed. - - -### Structured Query Language (SQL) - -SQL is the language we use to perform CRUD operations on relational databases. Here are some examples of SQL statements that perform CRUD operations: - -**Create** - -```sql -INSERT INTO Users (id, firstName, lastName, username) -VALUES (123, 'Brendan', 'Eich', 'beich'); -``` - -**Read** - -```sql -SELECT firstName, lastName FROM Users; -``` - -**Update** - -```sql -UPDATE Users -SET firstName='Haskell', lastName='Curry', username='hascurry' -WHERE id=10; -``` - -**Delete** - -```sql -DELETE FROM Users WHERE id = 123; -``` - - -## Database maintenance - -There are a number of tools you can use to manage your databases. Some are graphical and some are libraries you can automate with code. The graphical tools are specific to the database engine you're using, but the libraries can often work with a number of different similar databases (e.g. RDBMS). - -**Migrations** provide an automated way to create, modify and undo changes to the database schema. -**Seeding** provides an automated way to populate the database with data. These are useful when setting up a new development environment and doing deployments. - -We'll be using [Knex.js](https://knexjs.org) as a library to perform database operations and database maintenance tasks. Review the [Knex.js documentation on migrations](https://knexjs.org/#Migrations) and [schema building](https://knexjs.org/#Schema-Building) to create migrations that will establish the database schema. - diff --git a/databases/knex-joins.md b/databases/knex-joins.md deleted file mode 100644 index f4abc31..0000000 --- a/databases/knex-joins.md +++ /dev/null @@ -1,121 +0,0 @@ -### Combining tables for fun and profit - -Sometimes we need information from more than one table. If we keep our users in one table, and our user demographic data in another, we need some way to associate (say) a user's name with their age: - -***users*** - -| id | name | -|:---|:---------------| -| 8 | Orinocco | -| 12 | Tomsk | -| 3 | Uncle Bulgaria | - -***user_demographics*** - -| id | user_id | age | -|:---|:--------|:----| -| 1 | 8 | 3 | -| 2 | 12 | 4 | -| 3 | 3 | 61 | - -A **join** allows us to combine the information based on the values in a column that exists in both tables, in this case combining values when `id` is equal to `user_id`: - -| name | age | -|:---------------|:----| -| Orinocco | 3 | -| Tomsk | 4 | -| Uncle Bulgaria | 61 | - - -### A nod to normalisation - -The question you're probably asking is, "Why not put all the information in one table to begin with?" Well, several reasons, centering around a concept called _normalisation_. This is a huge topic in itself, but can be summarised at a beginning level by saying, "Keep information in lots of small tables and link them to each other using unique IDs." This has a number of benefits including reducing redundancy, ease of adding new types of data, and reducing complexity. - - -### Knex joins - -Using Knex.js we can perform joins without having to know the SQL syntax for the query: - -```js -knex('dogs') - .join('breeds', 'dogs.breed_id', '=', 'breeds.id') - .select('dogs.name', 'breeds.name as breed') -``` - -In raw SQL this translates to: - -```sql -SELECT dogs.name, breeds.name AS breed -FROM dogs -INNER JOIN breeds ON dogs.breed_id = breeds.id -``` - -***dogs*** - -| id | name | breed_id | -|:---|:-------|:---------| -| 1 | Daisy | 5 | -| 2 | Dexter | 3 | -| 3 | Clarry | 2 | - -***breeds*** - -| id | name | -|:---|:----------------------| -| 1 | Boxer | -| 2 | Spoodle | -| 3 | King Charles Cavalier | -| 4 | Bulldog | -| 5 | Mutt | - -| name | breed | -|:----------|:----------------------| -| Daisy | Mutt | -| Dexter | King Charles Cavalier | -| Clarry | Spoodle | - -Note a few things about the above result: - - 1. Not _all_ of the dog breeds are listed: only those that correspond to the dogs in the first table - 2. Only the columns we asked for are returned, and they are labelled `name` and `breed`. - - -### Name conflicts - -Let's talk about that second point for a moment. Why do we use this syntax? -```js - .select('dogs.name', 'breeds.name as breed') -``` -The trick is, Knex returns column names as object properties. What's wrong with this picture? -```js - [ - { - name: 'Daisy', - name: 'Mutt' - } - ] -``` -Of course, we can't have an object with two properties the same, so what actually happens is the second one gets overwritten: -```js - [ - { - name: 'Mutt' - } - ] -``` -Obviously that's not what we want! The solution is to provide another name, an _alias_, for any properties that conflict in this way. We can write `'tablename.columnname as foobar'` to achieve this. In the example above, our output from Knex looks like so: -```js - [ - { - name: 'Daisy', - breed: 'Mutt' - }, - { - name: 'Dexter', - breed: 'King Charles Cavalier' - } - ] -``` -So if we were to describe the above query in English we could say: - -"Join the dogs table and the breeds table where the breed id matches. Then return the data in two columns: "name" (the name column in the dogs table) and "breed" (the name column in the breeds table)." diff --git a/databases/knex-keys.md b/databases/knex-keys.md deleted file mode 100644 index 35e4edd..0000000 --- a/databases/knex-keys.md +++ /dev/null @@ -1,115 +0,0 @@ -### A key, you say? - -Keys are integral to Relational Database Management Systems (RDBMS). Each _record_ or _row_ can contain one or more keys, and there are several different types. - -Records can be identified either by a single key or a combination of keys. Often, but not always, they'll be numbers. There are two types we'll concern ourselves with for now: **primary** and **foreign** keys. - - -### Primary keys - -Typically your `id` column will be a primary key. They have a _unique constraint_, which means that each value must be unique. You can't have two 1's, three 2's, etc. Imagine the chaos if the users in your database could share user IDs! - -Here's a Knex.js migration that creates a simple table with a primary key: - -```js -exports.up = function (knex, Promise) { - return Promise.all([ - knex.schema.createTable('users', function (table) { - table.increments('id').primary() - table.string('name') - }) - ]) -} - -exports.down = function (knex, Promise) { - return Promise.all([ - knex.schema.dropTable('users') - ]) -} -``` - -***users*** - -| id (PK) | name | -|:--------|:-----------| -| 1 | basie | -| 2 | fitzgerald | -| 3 | coltrane | -| 4 | thelonious | - -Primary keys can't be null or 0. Every record in a table with a primary key has to have a key assigned. The `.increments()` function above just makes sure that when you add a new row, an `id` will be assigned with the value of the highest existing `id` + 1. - - -### Foreign keys - -Often we'll need to relate a record in one table to a record in another. Foreign keys link records from different tables together. Using _constraints_, they can help maintain the integrity of the data and enable joins to combine tables. - -Here's how Knex defines foreign keys: - -```js -exports.up = function (knex, Promise) { - return Promise.all([ - knex.schema.createTable('dogs', function (table) { - table.increments('id').primary() - table.string('name') - table.integer('breed_id').references('breeds.id') - }), - knex.schema.createTable('breeds', function (table) { - table.increments('id').primary() - table.string('name') - }) - ]) -} - -exports.down = function (knex, Promise) { - return Promise.all([ - knex.schema.dropTable('dogs'), - knex.schema.dropTable('breeds') - ]) -} -``` - -Notice the `.references('breeds.id')`? That tells the database that we want `dogs.breed_id` to refer to `breeds.id`: we're linking the two tables together using `breed_id` as the key. - -***dogs*** - -| id (PK) | name | breed_id (FK) | -|:--------|:-------|:--------------| -| 1 | Daisy | 3 | -| 2 | Clarry | 2 | - -***breeds*** - -| id (PK) | name | -|:--------|:--------| -| 1 | Boxer | -| 2 | Spoodle | -| 3 | Mutt | - -Put another way, `breed_id` is a foreign key that references `id` on the `breeds` table. - - -### Constraints - -We've touched on the _unique constraint_ that applies to primary keys (no two can be the same value). Foreign keys can have constraints too, that define what should happen when an attempt is made to remove or alter the record that the key is pointing to. - -Take the above table for example. Say someone tries to delete the 'Mutt' row in the `breeds` table, with `id` 3. We already have a record that refers to that row: 'Daisy' in `dogs` would be left without a breed! This seems like a bad thing, and it is. We don't want IDs that point off into nowhere, referring to no record. If someone later managed to add a completely different breed having an `id` of 3, Daisy's breed would be changed without anyone asking her permission. - -The solution is to add a constraint defining what should happen if a breed is deleted. We call this constraint _ON DELETE_. There are several possible values for the constraint. Two of the most important are _RESTRICT_ and _CASCADE_. - -RESTRICT means that the attempt to remove the 'Mutt' record will _fail_ if any of the records in the `dogs` table are mutts. Each dog would have to have their breed changed before the attempt to delete 'Mutt' could succeed. - -CASCADE means that all dogs that are mutts will be deleted when the 'Mutt' record is deleted! For obvious reasons, be careful with this one. - -We can also apply similar values to an _ON UPDATE_ constraint, which as you might have guessed defines what the database should do when a record in `breeds` is changed, but not deleted. - -Here's how Knex handles these constraints: - -```js - table.integer('breed_id') - .references('breeds.id') - .onDelete('RESTRICT') - .onUpdate('CASCADE') -``` - -In other words, when someone tries to remove a breed that is referenced in `dogs`, don't allow it; when someone merely updates a breed, the change spreads to all dogs of that breed. For example, if 'Mutt's `id` was changed from 3 to 4, Daisy's `breed_id` would change to 4 as well. diff --git a/databases/knex-routes.md b/databases/knex-routes.md deleted file mode 100644 index 7e9e4fd..0000000 --- a/databases/knex-routes.md +++ /dev/null @@ -1,88 +0,0 @@ -When we start out with Express, we often create routes that show static (unchanging) data, or we've used them to load and save from the filesystem. We can use a very similar layout to load and save data from a database using Knex.js. - - -### Promises - -The main difference of course is that Knex functions return promises. We won't actually have any data to work with unless we wait for the promises to _resolve_ or _reject_. For example, this sort of thing won't work: - -```js -app.get('/users', function (req, res) { - var users = knex('users').select() - res.send(users) -} -``` - -Instead, we'll need to make use of the `.then()` and `.catch()` functions to ensure that the data is available for us to use (and grab any errors that might occur): - -```js -app.get('/users', function (req, res) { - knex('users') - .select() - .then(function (data) { - res.send(data) - }) - .catch(function (err) { - console.error(err.message) - res.status(500).send("Couldn't show you the users!") - }) -} -``` - -### Extracting the database details to one place - -Following the [Single Responsibily Principle](https://en.wikipedia.org/wiki/Single_responsibility_principle), it's much cleaner to have the routes focus on the request and response and extract the details of database access into a separate module. Here's how you could extract them: - -```js -// queries.js - -var development = require('./knexfile').development -var knex = require('knex')(development) - -function getUsers () { - return knex('users').select() -} - -// An example user object: {name: 'feroze', email: 'feroze@gmail.com'} -function insertUser (user) { - return knex('users').insert(user) -} - -module.exports = { - getUsers: getUsers, - insertUser: insertUser -} -``` - -```js -// app.js -// ... - -var queries = require('./queries') - -app.get('/users', function (req, res) { - queries.getUsers() - .then(function (users) { - res.send(users) - }) - .catch(function (err) { - console.error(err.message) - res.status(500).send("Can't display users!") - }) -}) - -app.post('/users', function (req, res) { - var newUser = { - name: req.body.name, // name stored in a submitted form body - email: req.body.email - } - - queries.insertUser(newUser) - .then(function () { - res.sendStatus(200) - }) - .catch(function (err) { - console.error(err.message) - res.status(500).send("Couldn't insert a new user.") - }) -}) -``` diff --git a/databases/relationships.md b/databases/relationships.md deleted file mode 100644 index f572afa..0000000 --- a/databases/relationships.md +++ /dev/null @@ -1,98 +0,0 @@ -Different types of databases represent their records in different ways. For example, document databases use _composition_, wherein records are represented _inside_ of other entities. An example of this would be the relationship between a `User` and their `Bookmarks`. Composition would place the bookmark data inside the user record perhaps as a property on the users object. - -Relational databases represent their records in separate _tables_ and relationships are established between tables. In our bookmarks example, there would be two tables: users and bookmarks. Each bookmark record would include a `user_id` field that refers to the `id` field of an associated record in the users table. - -``` -+--------------------+ +-------------+ -| Users | | Bookmarks | -+--------------------+ +-------------+ -| id |<--- | id | -| name | \ | link | -| address | ---| user_id | -+--------------------+ +-------------+ -``` - -Modern databases are highly optimised to perform fast queries across multiple tables at once - these are called joins. - - -### Types of relationship - -The relationship between tables is often described using broad _types_ that reflect a relationship modelled on 'real life'. These are usually described as _one-to-one_, _one-to-many_, and _many-to-many_. - -One of the canonical examples is the relationship authors have with books: for example, one book may have many authors, and one author may have written many books. We often say an author _HAS MANY_ books, and a book _HAS MANY_ authors. (Even if it doesn't, it _could_!) - - -### One to one - -A user _HAS ONE_ profile. - -***users*** - -| id | username | -|----|------------| -| 1 | xkcd | -| 2 | smbc | -| 3 | rms | -| 4 | greenblatt | -| 5 | gosper | - -***profiles*** - -| id | website | profile_image | user_id | -|----|----------------------|---------------|----------| -| 1 | https://xkcd.com | randall.jpg | 1 | -| 2 | https://stallman.org | rms.jpg | 3 | - -Each `user_id` will occur only once within the `profiles` table. - - -### One to many - -A user _HAS MANY_ blog posts. Even if they've only written one so far, they _could_ have thousands! So we think of the relationship as _one-to-many_. - -***users*** - -| id | username | -|----|------------| -| 1 | xkcd | -| 2 | smbc | -| 3 | rms | -| 4 | greenblatt | -| 5 | gosper | - -***posts*** - -| id | title | user_id | -|----|-------------------|---------| -| 1 | Thing Explainer | 1 | -| 2 | The GNU Manifesto | 3 | -| 3 | GNU Emacs Manual | 3 | - -Notice that `user_id` is not unique in the `posts` table: it can appear as many times as each user has posts. - - -### Many to many - -In our hypothetical system, much like Facebook, users can have 'friends'. There is practically no limit on the number of friends a user can have. A user _HAS MANY_ friends, and each friend might have many friends. - -***users*** - -| id | username | -|----|------------| -| 1 | xkcd | -| 2 | smbc | -| 3 | rms | -| 4 | greenblatt | -| 5 | gosper | - -***friends*** - -| id | user_id | friend_id | -|----|---------|-----------| -| 1 | 4 | 5 | -| 2 | 3 | 4 | -| 3 | 4 | 3 | -| 4 | 5 | 4 | -| 5 | 1 | 2 | - -Here again, the same `user_id` can appear more than once, but it can also appear as a `friend_id`. We don't need the user's username to make the friend connection. diff --git a/environment/deployment.md b/environment/deployment.md deleted file mode 100644 index 2b3417d..0000000 --- a/environment/deployment.md +++ /dev/null @@ -1,19 +0,0 @@ -Deploying a web application is most certainly specific to the environment being deployed to. With that said, it is increasingly common for cloud providers to allow applications to be deployed using Git. - -Some cloud providers, such as Azure, are able to watch our GitHub repo, notice when we push a new commit to a specific branch we define, and clone it for deployment each time we push. Other cloud providers, such as Heroku, allow us to push directly to it. To do so, we just create a `git remote` that points to our account on the cloud platform. These approaches make deployment _really_ easy. - - -### Deploying to Heroku - -These steps assume the file that starts your server is `server.js`. If it isn't, adjust the steps accordingly. The basic steps to deploy to Heroku are: - -* Create an account on heroku.com. -* Install the Heroku Toolbelt. -* Login to Heroku in your terminal with `heroku login`. -* In the folder of your Node app, create the Heroku app with `heroku create YOUR_APP_NAME`. -* Ensure your `package.json` has a `start` script of `node server.js`. -* Ensure you have a `Procfile` whose only line is `web: node server.js`. -* Push your app to Heroku with `git push heroku master`. -* If you experience an error, use `heroku logs`. - -For more information on deploying a Node.js application to Heroku, see the [associated documentation](https://devcenter.heroku.com/articles/getting-started-with-nodejs#introduction). diff --git a/http/networking.md b/http/networking.md deleted file mode 100644 index f2bdeda..0000000 --- a/http/networking.md +++ /dev/null @@ -1,31 +0,0 @@ -A server is often referred to as the physical or virtual machine. It's what responds when we visit a web site, sending us all the information our browser needs to display the site correctly. - -A service: - - - Just an application that runs on a particular computer - - Listens for requests and then serves responses - - A web server is a service which serves web pages - -Network addresses: - - - Same as IP address - - The address of a computer on a network - - An example is 192.168.1.45 - - The internet started running out of the old kind of addresses (IPv4), so now there's IPv6! These addresses look like this: `2001:4860:4860::8888`. They can include letters: `1fff:0:a88:85a3::ac1f`. - -Ports: - - - The particular 'door' at an address - - The connection to the application/service, such as HTTP, that is listening for requests - -``` - IPv4 address port - v v - 192.168.20.30:80 - 192.168.20.30:3000 - - IPv6 address port - v v - [2001:4860:4860::8888]:80 -``` - diff --git a/http/side-effects.md b/http/side-effects.md deleted file mode 100644 index 91dfbac..0000000 --- a/http/side-effects.md +++ /dev/null @@ -1,6 +0,0 @@ -A `get` requests is a _read_ operation, and read operations shouldn't have _side effects_ - meaning, nothing should change as the result of just reading it. The parameters sent in the URL are called the _query_ part of the URL and are designed to be used to filter the data the request is requesting - not for saving data on the server. - -If you're sending data to the server to be saved, you expect side effects - the saving of the data. That's fine, you should just be more explicit in your intent - by using `post`. - -There are a lot of _shoulds_ in this topic. These are motivated by being a good HTTP citizen and using the protocol how it was intended. It is certainly possible to write `get` requests that have side effects, but adhering to this guidance will help you maintain expectations with other developers and illustrate your appreciation for the HTTP specification and its authors. This guidance will become even more important when we learn about REST web APIs. - diff --git a/http/the-web.md b/http/the-web.md deleted file mode 100644 index e930721..0000000 --- a/http/the-web.md +++ /dev/null @@ -1,15 +0,0 @@ -The web is a subset of the wider internet. The parts, roughly speaking, are web sites you can visit with your browser. Examples of things on the internet that are not on the web: - - - Email - - Skype - - Bittorrent - -Protocols are agreements that define how different computers communicate with each other. For example: - - - TCP/IP (transmission control protocol/internet protocol) - - VOIP (voice over internet protocol) - - HTTP (hypter text transer protocol) - - FTP (file transer protocol) - -DNS, the Domain Name Service, defines how domain names, such as devacademy.co.nz, are resolved to IP addresses, such as 12.57.211.43. This resolution is required before the computers are able to communicate with each other. - diff --git a/http/verbs.md b/http/verbs.md deleted file mode 100644 index 2f949bd..0000000 --- a/http/verbs.md +++ /dev/null @@ -1,9 +0,0 @@ -The 4 most common HTTP requests (also called _verbs_ and _methods_) are: - -* GET: asks for an existing resource -* POST: sends data to create a new resource -* PUT: sends data to update existing resource -* DELETE: asks for an existing resource to be deleted - -There are a few other HTTP verbs, but these are the important ones for now. - diff --git a/images/paint-by-numbers.jpg b/images/paint-by-numbers.jpg deleted file mode 100644 index 0802164250cd28db4b68d1bc339a95900fcc746d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 33299 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

<}0Ae=4sq(}{y86hT6Q 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 akF8dl??3zh0Mf5P)c*j#{V1@uKmXZ)2fJSY diff --git a/images/shoulders_of_giants.jpg b/images/shoulders_of_giants.jpg deleted file mode 100644 index d6e82e4c386155adc759d7968322af2b2bd6e435..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 23496 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 op1 + op2 -``` - -It essentially removes the `function` keyword and places the arrow between the parameters and the body of the function. - -Some notes about arrow functions: - -* The parentheses are optional around the parameters if there is only a single parameter. They are required if there are no parameters or more than one. - -* Curly braces are optional when the body of the function can fit on one line. - -* If there are no curly braces, arrow functions automatically return the result of the statement to the right of the arrow. This is called _implicit_ return. - -* If there are curly braces, we still need to use the `return` keyword: - -```js -// Doesn't need return -const fn1 = (op1, op2) => op1 - op2 - -// Needs return -const fn2 = (op1, op2) => { return op1 - op2 } -``` - -For more information, check out [ES6 In Depth: Arrow functions](https://hacks.mozilla.org/2015/06/es6-in-depth-arrow-functions/). - - -### Template Strings - -String interpolation provides a much nicer way to combine strings and values. We're currently used to concatenating strings when we need to combine them: - -```js -var user = {name: 'Kristina'} -var welcome = 'Welcome back ' + user.name + '. Good to see you.' -``` - -The new syntax is easier to read: - -```js -const user = {name: 'Kristina'} -const welcome = `Welcome back ${user.name}. Good to see you.` -``` - -Notice how the string is deliniated with backticks to indicate it is a template string. - -For more information, check out [ES6 In Depth](https://hacks.mozilla.org/2015/05/es6-in-depth-template-strings-2/). - -There is a lot more about ES6 to learn, but that is enough for now. Feel free to explore - there are a lot of really nice additions. There are really good resources on ES6/2015 online. diff --git a/javascript/first-class-functions.md b/javascript/first-class-functions.md deleted file mode 100644 index 41e0984..0000000 --- a/javascript/first-class-functions.md +++ /dev/null @@ -1,42 +0,0 @@ -An important thing to remember about functions in JavaScript is: *functions are values*. - -This means that functions are treated as first-class citizens, just like numbers and objects. They have all the properties we expect of other objects. Check out Helen Emerson's [article on the subject](http://helephant.com/2008/08/19/functions-are-first-class-objects-in-javascript/) for a more in-depth explanation. - -Let's look at this example: - -```js -// A named function -function triple (x) { - return x * 3 -} - -// An anonymous function -function (x) { - return x * 3 -} - -// An anonymous function assigned to a variable -var triple = function (x) { - return x * 3 -} -``` - -Because the last example uses a variable, you can do some cool things like this: - -```js -var engorgio = triple -var value = engorgio(30) // value is 90 -``` - -Both `triple` and `engorgio` refer to the same function. But the fun does not stop there! We can also pass functions into other functions as arguments. - -A good example of this is the filter function, probably the most basic and useful higher order function. It's a function that operates on an array, and accepts another function as an argument that it uses to return a new filtered version of the array. - -Let's pop over to this repl.it and have a play: [https://repl.it/CGjq](https://repl.it/CGjq/26). - -So, to recap: - -* We can store functions in variables -* We can store functions as properties of other objects -* Functions can have properties -* We can pass functions as arguments into other functions diff --git a/projects/group-projects-introduction.md b/projects/group-projects-introduction.md deleted file mode 100644 index c78b4b2..0000000 --- a/projects/group-projects-introduction.md +++ /dev/null @@ -1,14 +0,0 @@ -Today we will spend a bit of time thinking about how we will build our group projects. You should try to use as much of what you've learned this week in your project. You'll have 3 or 4 people on your team and you're expected to partition the work among team members. Each team member may want to choose a task they are strong in, or a task that will solidify knowledge for them. The rest of the team should support these decisions as much as it makes sense. You may also consider designating certain team members as: Time Keeper and Git Keeper (you can come up with your own inventive names for these positions!) - -You can use today to establish teams and scope out what you're going to build. A teacher should approve your project idea before you begin. During your planning, you should define milestones and (at a minimum) commit to your repo at each milestone. You are expected to build the appropriate parts using Test Driven Development (branch, red, green, refactor, diff, commit). - -Feature freeze is the time when you are not permitted to work on any new functionality. Code freeze is when you're not permitted to make any more changes to your codebase. Feature freeze is at 3:30 and code freeze is at 4pm. Presentations begin promptly at 4:30. Each team member should speak during the presentation. Each team will have 5 minutes to describe what you've built, show a demonstration, and possibly show one piece of code that is particularly interesting. - - -### Team dynamics - -You've been pair programming for a couple of weeks now, but this is the first time you're going to build something on a team. Be sure you remain mindful during your group project. You're going to be under pressure to finish something under a time limit. You're going to want it to be great and something you can be proud of, and this could add to the pressure. You're going to need to depend on your teammates. Sometimes they won't disappoint you, and sometimes they will. How you react is up to you. - -Remember to have **I**ntegrity, **K**indness, and **E**ffort. Be open and honest with yourself and your team. Try to minimize surprises by being transparent. Keep the communication levels high and ask for help when you need it. Focus on setting up your teammates for success. And have fun! - -These group projects are as much about how you work together as what you build. diff --git a/projects/personal-projects-introduction.md b/projects/personal-projects-introduction.md deleted file mode 100644 index 642e5ef..0000000 --- a/projects/personal-projects-introduction.md +++ /dev/null @@ -1,35 +0,0 @@ -> "Whatever course you decide upon, there is always someone to tell you that you are wrong. There are always difficulties arising which tempt you to believe that your critics are right. To map out a course of action and follow it to an end requires courage." ~ Ralph Waldo Emerson - -## Purpose - -Many developers work on side projects as a funnel for both professional development and meaningful play. Some employers (most famously Google) even alot time each month for their employees to work on projects that interest them. It's a great way to cement your understanding of new tools and things we've learned during the first part of the bootcamp. - -It's also a good time to explore _how_ you learn. What works best for you? When you're working alone, how can you make best use of the time to further your understanding? - - -## Tips - - - Explore something you care about. - - Build something you or someone you know would love to use. - - Integrate new tools and techniques as you learn them. - -The most impressive apps that have been developed in this phase were built with continuous improvement in mind. First, create a minimum viable product (MVP) as soon as possible. It doesn't have to be fancy! Early MVP is a powerful tool in developing your project. It provides reassurance ("At least I have _this_ done!") and it can help to keep your scope controlled: not biting off too much work all at once! Your MVP should be fairly simple; once you have your MVP, your project can develop in complexity over the three weeks of Phase 2. - - -## Process - -There will be time set aside each week to work on personal projects, but you may choose to use your own time to work on it as well. At the end of Phase 2 everyone will present their project to the rest of the cohort. - - -## Examples - -Here are some examples from previous cohorts: - - - [Trout-trout](http://trout-trout.herokuapp.com/#!/), an app to track trout caught in a lake -(repo found [here](https://github.com/SamSimmons/garyTrout)) - - - [Schools project](https://github.com/wishmouse/schools) - - - [Hear now gone tomorrow](https://github.com/KeakOne/hearnow-gonetommorow) - - - [Ki Mai](http://ki-mai.herokuapp.com/users) ([github](https://github.com/tony-luisi/ki_mai)), an interactive chat application to aid in learning the Maori language. diff --git a/react/components.md b/react/components.md deleted file mode 100644 index e3c0b25..0000000 --- a/react/components.md +++ /dev/null @@ -1,40 +0,0 @@ -React forces you to think about your user interfaces as sets of _components_: small composable areas of the view. Components are composed in a hierarchical structure with _container components_ acting as parents of _child components_. Each component is made up of the user interface elements (JSX) and data. The guidance is to deconstruct your views into components and understand what data they contain before you begin building your user interface. - -This is an example of a component: - -```js -// Header.jsx -import React from 'react' - -class Header extends React.Component { - render() { - return ( -

- ) - } -} - -export default Header -``` - -This component will be imported into the app using: - -```js -// App.jsx -import React from 'react' -import Header from './Header' - -class App extends React.Component { - render() { - return ( -
-
-
- ) - } -} - -export default App -``` diff --git a/react/event-delegation.md b/react/event-delegation.md deleted file mode 100644 index e7ac7eb..0000000 --- a/react/event-delegation.md +++ /dev/null @@ -1,69 +0,0 @@ -In order to respond to user events, component functions can be bound to [virtual] DOM events. In this example, an `addToCart` function in the `` component is called when a button is clicked in the `` component. - -```js -// ItemList.js -import React from 'react' -import Item from './Item' - -class ItemList extends React.Component { - - constructor(props) { - super(props) - this.addToCart = this.addToCart.bind(this) - } - - addToCart (itemID) { - console.log(itemID) - } - - render () { - return ( -
- {this.props.items.map((item) => { - return - })} -
- ) - }, -} - -export default ItemList -``` - -Notice how the local `addToCart` function is being passed as a prop to the `` component. Additionally, notice how an `itemID` argument is passed to the `addToCart` function. This is how the parent component knows which item we are adding to the cart. - -```js -// Item.js -import React from 'react' - -class Item extends React.Component { - - constructor(props) { - super(props) - this.handleClick = this.handleClick.bind(this) - } - - handleClick () { - this.props.addToCart(this.props.id) - } - - render () { - return ( -
-

{this.props.name}

- -
- ) - } -} - -export default Item -``` - -The `addToCart` event handler is used directly from `this.props` in Item.js. - diff --git a/react/forms.md b/react/forms.md deleted file mode 100644 index b640215..0000000 --- a/react/forms.md +++ /dev/null @@ -1,195 +0,0 @@ -Sometimes forms in React can feel like a bit of a stumbling block, but they needn't be. Like most of the content you've learned so far, with practice they become far less intimidating! - - -## Where does the data go? - -There are various approaches to handling forms, but mostly they boil down to one decision: where do you want to keep the form data? - - - in _component state_ (controlled components) - - in the _DOM_, using refs (uncontrolled components) - - in the _Redux store_ (if you haven't encountered Redux yet, don't worry about this one!) - -As usual on the Internet, lots of people have very strong opinions about how to write forms! Facebook [recommends](https://facebook.github.io/react/docs/forms.html#alternatives-to-controlled-components) using controlled components for the most part, but not everyone agrees. [This comparison of the approaches](https://goshakkk.name/controlled-vs-uncontrolled-inputs-react/) is a fair summary. - -We suggest not getting too tangled up in the debate. Learn the different ways to work with forms, then pick the one that you think fits your need best. If it ends up not working so well for you, revisit this decision with your team to talk about what could have been improved. - -If you want a rule of thumb, here's one: - - - if your form is relatively simple, try using refs; - - if it's complicated or likely to become so, try using controlled components. - - -## Uncontrolled components - -Here's an example of an uncontrolled component form: - -```js - render () { - return ( -
- - - this.name = name} /> - - -