From 2030b97c21c6c7c94ee5db351352128c5ab12259 Mon Sep 17 00:00:00 2001 From: Tibo De Peuter Date: Sun, 23 Feb 2025 22:11:15 +0100 Subject: [PATCH 1/7] docs: Details in README Signed-off-by: Tibo De Peuter --- README.md | 21 +++++----- assets/img/dwengo-groen-zwart.png | Bin 0 -> 51176 bytes assets/img/dwengo-groen-zwart.svg | 61 ++++++++++++++++++++++++++++++ backend/README.md | 22 +++++++++++ docs/architecture/schema.png | Bin 0 -> 107430 bytes docs/architecture/schema.py | 30 +++++++++++++++ docs/requirements.txt | 1 + frontend/README.md | 2 + package.json | 1 + 9 files changed, 129 insertions(+), 9 deletions(-) create mode 100644 assets/img/dwengo-groen-zwart.png create mode 100644 assets/img/dwengo-groen-zwart.svg create mode 100644 backend/README.md create mode 100644 docs/architecture/schema.png create mode 100644 docs/architecture/schema.py create mode 100644 docs/requirements.txt diff --git a/README.md b/README.md index 8dc37472..bc1cef46 100644 --- a/README.md +++ b/README.md @@ -23,28 +23,31 @@ en lessen kunnen samenstellen hun leerlingen en hun vooruitgang kunnen opvolgen. ### Quick start -1. Installeer Docker en Docker Compose op je systeem (zie [Docker](https://docs.docker.com/get-docker/)). -2. Clone de repository. -3. Voer `docker-compose up` uit in de root van de repository. +1. Installeer Docker en Docker Compose op je systeem (zie [Docker](https://docs.docker.com/get-docker/) en [Docker Compose](https://docs.docker.com/compose/)). +2. Clone deze repository. +3. Voer `docker compose up` uit in de root van de repository. ```bash docker compose version git clone https://github.com/SELab-2/Dwengo-1.git cd Dwengo-1 -docker-compose up +docker compose up ``` ### Handmatige installatie -Zie de submappen voor de installatie-instructies van de verschillende services. +Zie de submappen voor de installatie-instructies van de [frontend](./frontend/README.md) en [backend](./backend/README.md). ## Architectuur -``` -hier overzichtsdiagram invoegen -``` +![Architectuur](./docs/architecture/schema.png) -We maken gebruik van ... Meer informatie over deze ontwerpsbeslissingen kan je vinden in de [architectuurdocumentatie](./architectuur). +De tech-stack bestaat uit: + +- **Frontend**: TypeScript + Vue.js + Vuetify +- **Backend**: TypeScript + Node.js + Express.js + TypeORM + PostgreSQL + +Voor meer informatie over de keuze van deze tech-stack, zie [designkeuzes](https://github.com/SELab-2/Dwengo-1/wiki/Design-keuzes). ## Bijdragen aan Dwengo-1 diff --git a/assets/img/dwengo-groen-zwart.png b/assets/img/dwengo-groen-zwart.png new file mode 100644 index 0000000000000000000000000000000000000000..9d83c92f7158de23a045fcf729d9e0f40cc1afa2 GIT binary patch literal 51176 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�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 +image/svg+xml diff --git a/backend/README.md b/backend/README.md new file mode 100644 index 00000000..76bc8eae --- /dev/null +++ b/backend/README.md @@ -0,0 +1,22 @@ +# dwengo-1-backend + +## Project setup + +```shell +npm install +``` + +Setup the environment variables in a `.env` file in the root of the project. You can use the `.env.example` file as a template. + +### Development + +```shell +npm run dev +``` + +### Production + +```shell +npm run build +npm run start +``` diff --git a/docs/architecture/schema.png b/docs/architecture/schema.png new file mode 100644 index 0000000000000000000000000000000000000000..616d896ce5eeb6676b92f0665d998102fd3b542b GIT binary patch literal 107430 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

PLzV_nMcyS{Ln zG|RZv-#d^q>W8;RL-!x#_yD}TG==&3xv1C#0XaFjW8AlT-C2N)l+NMHr7eLEC-y_! zrT>kwoC;Vg0ZOz15|w~(IzOMyb|7@7Mk5H*GyYUfF|uWHfVn-vLHnZUHiMma>ubSu zC}(=eU2*HK=Z`CjE7j^J_LDN_rvKP^yqy`wqX!!{y^0^YH}X%NheE)2FYXi9&CW#P z1#{ENjT74Hd$3<)^+!!drq0?%s_x&(hASk0z!_;P(?1!Av5Ymt!_k6n{QMpAYv)H- zJ_jD-lMSpd$GAa(rDMJ~D0-3|Gi?h+zbh&N3w~>7s;=H~x!aOKNr^}2WB3>eyH8AK z3pH=rCBh3`QGYY{G4?~cPkme%-7+izd^1BhgRFRj_HG%(;Hyqn-8Dl7#}pZ1iVq(K zA(6`XMC~TEo;DD?!Po1b`;N7tY8KQ1M`zynVTr}&KL$RJ%RtN(Ik^cho$1bxg__WL z8_Bq+c*FF`CUTT9(-Py;thR0L#Wr@aw54YX&Ye&6S7g{y@}YCy;$H(2#ktp$3B?>- zby_|s_(7YCb@rW{sTf)vi(;cLWi5*oSFN;Sn@fd-|&^uqH^KW{Bd4e zY}2=h7{Tc1n5!!oew_2zV~e8rIjndWU^Wq(d+Ao~pHu(dstWOOh!@j5t4Ii1s2 zv7nPt-c-Ega=3fRDp~Knnm&dZph9Pj&bfIrXejR^`u7^Xa{hI8a-b-$fLI=DmeU(G zsnu^%z92dZC!{3)LHx8FbZ`{a7;8~>poI4i;`{FF2iOi&qUwgY%@}z0sJhEpdLU!r zfAU}d=|1TB8=tVjO3xBVE37c!81+lALXAf`7}r|9(e*qMt@BB3NqozA=hCGlx_96< zYC4~Aez>iEyM{mm9PZsSc~di-H~Z`MXi{g<<|=zLcY&0aJWMDO`a@YSai}UzNd`1X zh}hwknWs(0RQr1qUekx0X8mpEVOaatSV2FdZ8-gziDJ0a_aY^I7Z(>IIDO)39#I6! z4WdS6#zEs3PkM2?-6exf^UoX0T|^oCFlFb&=$7diR6GXpm!%B+bS>Mg?h z{y}ld+jBgs9OoxzSU-6yedbu7DJ=5lh}C$L)8ISk5ZWZaY&47RJLsqeMDnH9&OXSD z!(MLf{0S8y*B+~`I;?7nnBIeRt#ancOoDkh@|Je5yMyDzS2lQa&H{dj=#33#!Mbti0w6DH=pwkQVqS}GcC~{MvaJV>}95B z-?($7g`{MP)+d_g%aytU^%No4B98abFX|s2c8xJ}xo8*o-FXXF-nB`+&Jby}dv1lI zV55hs#Y}XE1=g34%yJ=qul$KpO%=)+zEcKTVHwI!9dH|Z$6XSEM`(eo{<^NNN2$mZ(^X7hPey15y(xP7{! zD0RNhBG1JrE@_b$0#P~ulFz`A6KHZQ7g2HwJtNN4?W!qxEbn(fMC2Npa;R?TB3zG= zF-tZN%zgg+oigI&u zbNk+r3O)!LT|3j9Zzxw9dkHztOJUoLa4M>NS{?5~OLDxHPr^Q@R}^;$$sJqeS-QzZ zQ8b#iFn1)b$H^&FXr~}zE~V2ExUr8_D-o&X1=4ET0g*jz#|(AGC1ve!xq_n9u@a$%RX$Tknt7H^W%FhHe7|0^;;dXpaqlvA_a*WG-^?&y zgu08y$!(E^*xOa2JC}xIl|WZ2xO0DB8L4!6hx%^Dy=!g`x5z)JnmS~|I*tU|)ZuM? z)5%?PeEdU4-P> zQn1SoeGAoe_g^OH%qb0(ep=<&uYoZ}$GSxj?g?m1x#Jo1dSX+!w9DNQP#gvt*bWcy z+QxOB^9`LoT2tG`t?9@SAU3_O9K4-mp-U_l;^5$*yupNGtnk$h>;(#S-FXwpL6c^N z1Lb-)v9GSI;m*cV_S6Lkj1L1KQ><+UUf&PxRYy(;D_eR7nSsgDiGBXET(zEhB|DWJc``(Wp zTK(Qq0m40s=3DUBYz?Y-kp%W=*v`G-@||q{)SWu``O1j}UBjDEDpw$oh%>+4nHgET zWdHO$joWf`-&u7R^|m25o;Qt`5{M!oA`L$)e>dYnxV|+jC-`G!wHt46L-4W1YqlB~ ztJ3Lq!Um}jEr{G2d@3U+lRFiwHjPQSeh)N#A$;xUdWb$F;cuu3bUnS3B6%}>JuZJ6 zcOPSw$8KTpbXKio*rlXR2tO*6FhMdfauIW^kWsI17viny_s0e(4t%bdctnV3JG!uu z48KY4UHofNzSLkJMCsg~esKk+{PLhpah1csavJvusk^~!91GGW)b1kEuM=>*OA1Bd zWtgj3{(k?t#Oip|hJ_&1$*@4*2>NZB-eX6z}cF&)XxA*J9QmSC?nmr0kd&6`O!KSp9Z`jm!WRihTe`2&C;%0CU@?9Idb@z-d3_CWvII0M;Bm-=JSZVu~rZK zn_Hf)>SvTAoe^H-;*G474SPS6=Zd@tWB&CE{nC`PShhb8$XBc($cv?{!X!oft+AD< zCm_eeSg;uWl^FZ3OL=%7#Jx=M7K-!et}-zDG)$39c*L!2ojRT5|6J%TU)DJ(?e1>N zdl3VV8kzgq6e{`)jR$QKN_tLaIY07T2z?m>A6zV}w)0VtrBt0deP&GCb#YMvX-+hip4FS6hz8Kl$blnIGJuuzsKf6kcK@G37-B zI*pv-5U}2-MFBsP8+Gh;QiMk5#x{ePhf6Fl*3&EamJ;N=bV}*x`#CnqPy4;R!OvH( z!VdKtVLG~%raXvqcJ?hQtTO6>w7&4ai4>9)dw* ze1aC!aN_HlW=gA^W=eCMan?PbgAc(rD&O91_TsfG&{ACd6IigwULTZrqLfBT(5Hvs zpmE@Wb{|}-$(xm;j0z|cUw5UymW2ogaJ|dWi)ohe z(zK8JgU$faG`Pj&0BiH})lHvO-`KZ`-uK^%y@;x8S{zmkm9;cAyx?a?QZfFMTb7fr@%B`;Q zoFG~lGH2OpR~HEAOmd3<-L}}E!bt5D0sI1eI!_|Wwtg(IS;Tt&UToS*_rY(9Y*u35Z7u9tb$zePc(Q(mQ7BMjTJv z3Zo`pC~c{2bHX8>5PF-N5h+#yK2KskH#GRYehwvMJAJ|P&o! z==S6ttb_1;iHqfqL2U_5B+K9$X~`d(@!(x_uWW!fXt2s~=3=!;9t2MG1kN7Ox*%1i z;80pv#}rak<#^v>jRt@OplNUcOaTR(^>YywyuqfqlmnJ-L1p(*byMqF>E z)1o%gED3PJgp>vRhrDqe)eG9QRwOY(zD7!a9=IzPKF)0*!5jLZxpBT%YMPg-q;md$ zXFt=1oBo7QdH<_olXsVxp>t=H4VmaQb*GYJjXO)@C32=LV)mDTkxt=deq`!|ZF1(X z8yN~o5+uEBtLCPh>}+FDtZ6Nem)xlmFz9mIEuGv%`%dqc?jSg$7utyJxt-O+&gaE1BI3EEC&UScOjSd<8lHJd!7pKTw2inNrgG%zDMg(i*At_UnxC(X)&|Zsow_r}Nq?m{S05lJ5F)rD72K%Ql={Wivs zs@pF%ZkkCuf5>ZdKdU5eF52hPt3p;u)mAah1cnW>b|d4#{FmnB?p+U2Cj?AQ>0f99 zI`dTylisCKwppVHNI3;1r*E$$_*56^9n1n^-MsFM1f zwS`$4%0C>urmm5D2@9iwLGsQ3~n$Ea86 z$?QkObnTeAdWrh%N)@_3n)=hMvdyvFhntnue`aPKztq20RF_++vUy);Kif#AcEJ9%-uR47T zqh-bK_4VkkJ0a-j?>C#jCjL0cywKCjM`7q%5KHOUIayP(SzzwOlkFF;xoVz7Z-e6=g9Z(6(Bh)v&UM-Cq*zPD_+30vihNiRL;+C!Yl!4>|nY=okue}v&+a0#00K}eu`Hf0X za*1wp2CF_EPCpNZRs?#QIJy;xiGiiOm8pQ?N2H%bnPbAjJezL-c_NbXXL{GGPTAQ{ zyu8nOW>S&Yft4KG_ng4=P8s$NrT>2NP1TS2DymIQ~d5H*5uhQ?${f0mGv&{na<}^MjoMaAwlVDJet!1;0 zuCBVk_lcN@#AxXO_F$IlSmtl7q9r~1n`gEy!YInmSSPv?`&JhCQi49t_0 zBP#BE`QpDGEk`AiQ-nQ6Ie@9qW$oKfBgI+}mQM(vhC3E)h45zR*=H1B08fK_&6rnE z#xCNr+e)Ug%zn0YNydNM_rRYAs&OF14MvdqoFr;fRa1g;0kFw1)@y)sdMdZ<)9q3_ zEd*S67wol*-~nh1c7&Xq(Y2U+<~*lE3yagfIFN>hutgv=)G4;|w*h`~czF2g%Bm*- z4m>jtYi8|z2w*QDC<|g=@6}t9J;W)hFfcTc5%P<^$9PU;w6>~??RXahz~1a4gWnVG zp!Nu;ti0*=>#^Z)C)hvfNpCYM@QH<()tM#+W_*H)4T3e4NU*{_gQ& z1f|5Npiul^?L)nL!C^j2eKQ{~uC7wuf1~T({s#QsuH@lTG?jJAtFW^TLy*VaKN*{V zI+GAe#o`#xh@!>k1CX2kdq9jCAHW$3LKn57r>2H#rJ9LTsiCFA6aenNXyWuHTRSXr z(ApCY1UU6ykI-%I9{bA^1Y3?n4|~*q5fABh*$t6#}?-I+=v{XqD;;1!o-o! z681pL-H2mh5mAHAJxv{Pj`lhI%R0r9YfV1qGr{gzo2=~I>SCQ{tq4Pa?9S5wWwR4P zitJ~18Nj``WL15q<_63bfjGveYyZGFGiOmdqEgEUZ%gDi32l03zLwTCiUT*Qx4Szv ze$Ej_8O+Ge7E*l~>NqlUVs(S&0S^HH%Q=+~Vk|iP{Y6!4_n{z#gxDML` ze{Kqk+|u8lerb~2mI0b&_3yco?!Bc$&W_H`x*8gJfL-Jy;~se;5RsL!m`6g9yU^Xw z|NL(#_jUZ9j|yls1O0!2`~Ls@(LLb#=MSGY30?Z8y5j=~FR#d=qN1-2U!@g%qS)@M z;XmQVY_$EVgEm*LOmUt5KHRKkXdV=ory)5>lpBk}U@+qKRCMrSsrwHGAXl%9A@kQE z1F$jTSw?h=Yvr(+82}V~{^c_WGj!5$98&Ij_x4;`UJxo|x-)q+97Yq*t24`pwFuBW z7iU77FN#XLc+t3aL6pnTw!QdDQaS{sf~=h^4PKPm7+Hhq80GRCq9(kz3qqD!Z7cDD zPkg2Z0MU`Z?bYofpI?4tk!#ZWK6o=Yjn>*RTo9fhD=Zq2u!vl~cv;A$d;8!b0v@NN z>!}{rBPGeneKK7*^2+S|l&GnhZspc!BUf&5aWP?~@=Tp*9&xVZF%f13%pp}~mlIPB z@ypw5rxiUj3B`cRYPUM?)-JD#8gCDt4Cj@4z?F&4YjjXH(o+&>FPH`AJ2W~y^N9tB;Kn~%#;?^ zjC%fFF#xfzgV~N2#pmJb(WDe6u-nP3*uX!(rzA7u?zy z17>1KzRAURCfm^5*Sz87aSxo9jZKzo4Mjq0zA65ZkQr*UytTEnuN9UDUyoZ$yi3H< z{YP2dfdzD*a6Jp(gjEny|~^KB*Oj6l4y3zo2Av1DXz z{bCU{V+kHkELP#6pl* zw>hJuDQS)#uXm?65!g&w>r`$#f#u#Ay!o-q|G z6_yf96<=VR7!MCJOM&j6Ikv~TQxr;pht&g7kA?>>9i6)EuYSeL+Jw~^SD304X?wrG z;yt}!`lk8MASjoi8dXhA%~dKm7h@;!<5g(9EIe!ir+tgYU&~+~JaTBc|8+BOQP9p; zKtRkAYV*$gsYq`!l4B;CE7=R1g~b|IlDvv830#s!^qi0D5ZWbIn1(v_y9$3l@N#B) znVk&2?wDTbt*tGG>BCp9-n{wHM3+GQsv#jNEtuKX6|fYHB33%pM`A)lZIgY|F9`@l z6~puTt_aPB#F`sCtFI42tf+=knB2v#$n;ycly({Y*sH~&>6kMvPz?h3>d~MLCHm8q zW)NBU%;~{k1q`Nwh0cc$@sfV%yTQTH*Daq5&hoS9AYk+@&a7CzVf*b62<1g(l+5NM zWxcscGdm=c`}bAMP!xWApi%G4z?0^RA1UF%Tjvid`XGi#DaSzG-R*Z(gJB``hlLE8>Vx&(rZYx~*eYQS$vN^Z&1D()$}@bKA}DrOj|uKLGN z9yu%)XZ+8;edx?6F%zoS({!+zfLUJ~@NTt4eEB9b&Jt41bM?qwk-v|e6GGT);64t^ zJ2=Ml*Ob4npg1O1lv3pJF8F2z3SXsClC0Pg*IzZy#w%i6^A7#f;0{|Hdw9Xk{%Yr= z+wBYd*E1R*t4Y`Pn-{UB{enp3b;iyOGBTOWuk1Bvh_t%m<-U#(eei)=Y7M zetbx00|mrll%gx{MljoPXLC7Pa)2jogQe7OhPv0OFhTX6>Hfu0o$2Da_3iLEdfEiR z1A`>FuZeB_dRNpD%%Rll$VV8$;SyJKwWk7D^dx;)EzOMr4)=}4V>Gp4Fjx?kzu$Uf z;D%UJ$M6brv8JH5mWlU#vNTp5IR0WJfV4AM;bJ15ax;x+r;g$Y2;d7ST~a9@Man@S z40hHp2;^W{lXS%<-YrF0KHZJfZgO4a*s)`|`T39FnwrOFiK2EXw5{zKTuLS`TgXc7 zU29V~PbqyCBjrQQDRUz!Ls!4IH}`aRzrW{CYn>FM^k6Uly<)$xZd~bd_OB&ey*b+IaaV5aEQsDM8U1rScwiL0)|}PA2j@Qt7y7i z6P>uxC{b|;3-w$#va_MTJy;Uh*m}*RINh(XcUFq;`x}Y6f$`Fe2NBD_%XhU--82XCAbsi4ez)P zmE|^)LeKX&#Y#laZPiiU)wqq7RQnm}&D>hw&u>rL0?n)Jx}WWf+c0iZ8?o@6%@S;R ze=!*0cdMD>9C}LBU^;}$+&Kcf(cydHP0Tfim1+>%?&ze?QO|KqGWty;aX7kJA*pP( z!=TOIdnviWf5WvraFkAiwwhk%)XE<*Ynxuh_$4;T->8cqeRwb*eCV24-6g2! z$nYOiGam$`D9m%Yg}G20e5-Td4sF_9!GH4mi1)mU-$b}($2*Jqoro_lc@g|U(^1;w zoXXl6N4o|sXZd<-1_GB+R7^_`3sd57kgxM-{#eWJO?SY^YKL}PZ+=3k-chaoJX7T$V1O2bDU~T666c-;Nkx2UbY~(-t*`y`h!ZL|6GP}Hsp3YIQ1)~O% zlxtLV0lYffS75@%AK<(;5QJn1LFpUw8)^x|tIG|QDy#LL#JRWUWU!4m5{tRvH$6x; z4xcTxY6op>)>>93ObRS21jOZ#;?T~UlwQRA`;D1mqf!FkdC~gy{%UGEyGee69O{m1 zN}%13bvnPteYEwj@kaTr$Q0lH2roB%ef_d{-E=76FY2xJvZV;#N^P;_;cy;AHFJ>M zS0ic#awVsumuSF9ZRfg-)yVggyuE@-CPK7MNz`UGjy|jPUvK}sZ-0sV3c5X6N^XZi zb4tcjUz~cGZ54XF+N}u%xP4yIbMw>ma=c*5SruhYPR?pt1k~u0y-prdPFmW!bAmWn zQ%!jnDL1O*Kb+a(XNi&5E~=lMuAvV(6*L7}Hzy`WF5yJARn{K8fg`jNl5Io{GSxN~ zw|=^2AKbKZ#H}lmMmKF;T!J>0z{X z83nW((a3{m)ra@24G`*v%bj8yI25mS6&OVlwUtJnj`AY39FiS>a_|CNYN|U%1oFuO z&lq!%&onFo`)aZa>y(}P3)-HmzFBSJ873EOe~q)7Y$vGnJC1zR5s-3d?bYw^oy?cg zax)(*z89M4{VJC+#jJVLQe7WS*-F>7mxEbdT^8{#)|FOqvqqhCCm`6 z)yW8MPcNKbwL25LaqT9$}a0Y}Qr~4(07r1X@80-mxzKR3c&7aQ4%L4K%~4Zc+5N6 zjY@~8=^6j1@h3?n`aM|0A&kWt!=jRo-@z{5%Is zu9>gi-&OQH=E!p5R+-IF5EtGCwTN{mzy@_~Q_Xx{kHl+dz6Jt$U-I0^IUyhk$S>G3 zlQhlAtMv4nI9bnSHC(jlVP&D27r~{{j`=ktu70^d@rbCXsFdr%$MfFZcU%-wgjhZ_ z;?_`qQESgsTS9{^;GQ~q^lPIsUyo^nE)8;LlJVQEvHHL(Bs#{;ZaN<{z--`N>18oOt*Sc8H6mXWxhPqHa9 z*G8L4(EO6ruRIG;g+jrtJ`z%ZSHb&x5@IyTZ;i`(Y`fBYL|8cebHwV6I!64)R!3f4vfmn+{2}gLxk5_C+kKFm zf9V63tz#!F?uTsq#rcqS{AQ!vdJE1sTIg%vjKMkvqaY)@gdU6~8Xg@ePj)YUe>z_FT|l3zsXt<9fD z&q-D_YP5_wnBeiu$m~ZQOFz^(B&#^HWb(Z}Ls?6hQ^2j063SCm(ol(md8Wz{>a z+}3Ns3qXPuy9$jWUCr>;BOhP|1_nOPyH?%U6|+F9z{IKrYb$tT`OrSd->fN+y?ci2-jx~- z5|a${y`&nipEY2kwQrFcrJl4opr`XA{cyZ_(bw^zPTeYUsL z>G7^qg6ryqz3on?|N76z|3f;!Q2$|@|3hTl6kR_+Ab-?D@88k?jehx$_&^~4Q62x| n)g}y@j4a~#jr;oBVui&&XRmi$cqD39;X_rm?ib$u`}zL@t1i!- literal 0 HcmV?d00001 diff --git a/docs/architecture/schema.py b/docs/architecture/schema.py new file mode 100644 index 00000000..87a59f9a --- /dev/null +++ b/docs/architecture/schema.py @@ -0,0 +1,30 @@ +from diagrams import Cluster, Diagram +from diagrams.custom import Custom +from diagrams.onprem.certificates import LetsEncrypt +from diagrams.onprem.container import Docker +from diagrams.onprem.database import PostgreSQL +from diagrams.onprem.logging import Loki +from diagrams.onprem.monitoring import Grafana +from diagrams.onprem.network import Nginx +from diagrams.programming.framework import Vue +from diagrams.programming.language import Nodejs +from diagrams.programming.flowchart import InputOutput + +with Diagram("Dwengo-1 architectuur", filename="docs/architecture/schema", show=False): + reverse_proxy = Nginx("reverse proxy") + reverse_proxy >> LetsEncrypt("SSL") + + with Cluster("Docker"): + Docker() + + frontend = Vue("/") + backend = Nodejs("/api") + reverse_proxy >> frontend + frontend >> backend >> InputOutput("MikroORM") >> PostgreSQL() + + backend >> Loki("logging") >> Grafana("monitoring") + + with Cluster("Dwengo"): + dwengo = Custom("Dwengo", "../../assets/img/dwengo-groen-zwart.png") + + backend >> dwengo diff --git a/docs/requirements.txt b/docs/requirements.txt new file mode 100644 index 00000000..76c7036b --- /dev/null +++ b/docs/requirements.txt @@ -0,0 +1 @@ +diagrams==0.24.1 diff --git a/frontend/README.md b/frontend/README.md index 6714b3a7..f798f404 100644 --- a/frontend/README.md +++ b/frontend/README.md @@ -6,6 +6,8 @@ This template should help get you started developing with Vue 3 in Vite. [VSCode](https://code.visualstudio.com/) + [Volar](https://marketplace.visualstudio.com/items?itemName=Vue.volar) (and disable Vetur). +Webstorm should work out of the box. + ## Type Support for `.vue` Imports in TS TypeScript cannot handle type information for `.vue` imports by default, so we replace the `tsc` CLI with `vue-tsc` for type checking. In editors, we need [Volar](https://marketplace.visualstudio.com/items?itemName=Vue.volar) to make the TypeScript language service aware of `.vue` types. diff --git a/package.json b/package.json index 59a2e01d..db7f5ba3 100644 --- a/package.json +++ b/package.json @@ -8,6 +8,7 @@ "build": "npm run build --ws", "format": "npm run format --ws", "format-check": "npm run format-check --ws", + "generate-docs": "python3 -m venv .venv && source .venv/bin/activate && pip install -r docs/requirements.txt && python docs/architecture/schema.py", "lint": "npm run lint --ws", "test:unit": "npm run test:unit --ws" }, From 6f4e547c9e84855b2045ed54904166e2cb426202 Mon Sep 17 00:00:00 2001 From: Tibo De Peuter Date: Sun, 23 Feb 2025 22:26:58 +0100 Subject: [PATCH 2/7] docs: Details in CONTRIBUTING Signed-off-by: Tibo De Peuter --- CONTRIBUTING.md | 67 +++++++++++++++++++++++++++++++------------------ 1 file changed, 42 insertions(+), 25 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 83d1f83b..24c7bcd6 100755 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,24 +1,33 @@ # Hoe bijdragen aan Dwengo-1? +Bedankt dat je wil bijdragen aan Dwengo-1! +Hieronder vind je enkele richtlijnen om je op weg te helpen. + +Over het algemeen bestaat de workflow uit de volgende stappen: + +1. [Een issue aanmaken](#issues) +2. [Een branch maken](#workflow) +3. [Code schrijven](#coding-conventions) +4. [Werk committen](#commits) +5. [Een pull request maken](#pull-request) + ## Issues -Maak gebruik van de [label set](https://github.com/SELab-2/Dwengo-1/labels). +Als je een issue aanmaakt is het belangrijk om zo veel mogelijk (relevante) informatie te geven. +Om je op weg te helpen zijn er [templates](.github/ISSUE_TEMPLATE) voorzien. +Gebruik deze om alle nodige informatie te verzamelen. -Voor bug reports: +Gebruik de juiste [labels](https://github.com/SELab-2/Dwengo-1/labels) om te helpen een onderscheid te maken tussen verschillende categorieën issues. -Geef zo veel mogelijk informatie. Als er error berichten zijn, graag in tekst bijvoegen. Geen screenshots van error -messages, enkel van visuele bugs. - -Ken jezelf toe aan een issue als je eraan werkt, zodat iedereen een overzicht heeft van waar aan gewerkt wordt en door -wie. Zo wordt onnodig werk vermeden. +Ken jezelf toe aan een issue als je eraan werkt, zodat er beter een overzicht bewaard kan worden. +Op die manier vermijd je onnodig werk. ## Workflow -We zullen [Gitflow](https://www.atlassian.com/git/tutorials/comparing-workflows/gitflow-workflow) gebruiken +We zullen (verzachte versie van) [Gitflow](https://www.atlassian.com/git/tutorials/comparing-workflows/gitflow-workflow) gebruiken. +Lees [hier](TODO-wiki) meer over deze beslissing. -Lees [hier](wiki) meer over deze beslissing - -Concreet: +Concreet betekent dit dat het project uit de volgende branches bestaat: - `main` - Incl. tags (`v1.2.3`) @@ -28,8 +37,23 @@ Concreet: - `fix/something-#x`: Voor (minder dringende) bug fixes. Bug fixes worden aan een issue gelinkt. - `release/x.y.z`: Release prep branch +## Coding conventions + +- Formatting: [Prettier](https://prettier.io/) +- Linting: Maak gebruik van [ESLint](https://typescript-eslint.io/) of aan de hand van de [ + `npm` commando's](package.json). + +Voel je vrij om zelf commit hooks te installeren, maar we dwingen dit niet af. + ## Commits +Om de geschiedenis van het project overzichtelijk te houden, maken we gebruik van [conventional commits](https://www.conventionalcommits.org/). + + +Concreet + +Dit betekent dat elke commit een duidelijke boodschap moet hebben, die volgens een bepaald formaat is opgesteld. + Maken gebruik van [conventional commits](https://www.conventionalcommits.org/) Lees [hier](wiki) meer over deze beslissing @@ -46,26 +70,19 @@ type options: Als je een commit 'fixt', gebruik dan [ `git commit --fixup`](https://git-scm.com/docs/git-commit#Documentation/git-commit.txt---fixupamendrewordltcommitgt) -Als je een commit niet alleen hebt geschreven, maak dan -een [commit met meerdere auteurs](https://docs.github.com/en/pull-requests/committing-changes-to-your-project/creating-and-editing-commits/creating-a-commit-with-multiple-authors). +Als je een commit niet alleen hebt geschreven, maak dan een [commit met meerdere auteurs](https://docs.github.com/en/pull-requests/committing-changes-to-your-project/creating-and-editing-commits/creating-a-commit-with-multiple-authors). -## Pull request... +## Pull request + +Eens je code hebt geschreven en gecommit, is het tijd om een pull request te maken. +Het is fijn als je meteen ([draft](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-pull-requests#draft-pull-requests)) pull requests maakt, zodat anderen kunnen meekijken en feedback kunnen geven. Als je aan visuele features werkt, voeg dan een screenshot van de omgeving van de feature toe, voor en nadat de feature geïmplementeerd werd. -Start een draft pull request vanaf je een nieuwe feature branch pusht naar de server. - -Policies +Je zult merken dat sommige branches [beschermd](https://docs.github.com/en/github/administering-a-repository/about-protected-branches) zijn. +Dit betekent dat je niet zomaar kan mergen naar deze branches: - naar `main`: kan enkel vanuit `release/x.y.z` - naar `dev`: wordt nagekeken alvorens te mergen - elders: vrije keuze - -## Coding conventions - -- Formatting: [Prettier](https://prettier.io/) -- Linting: Maak gebruik van [ESLint](https://typescript-eslint.io/) of aan de hand van de [ - `npm` commando's](package.json). - -Voel je vrij om zelf commit hooks te installeren, maar we dwingen dit niet af. From c815ed1ebffca21c71809e23c62422df52ba7acb Mon Sep 17 00:00:00 2001 From: Tibo De Peuter Date: Mon, 24 Feb 2025 20:12:46 +0100 Subject: [PATCH 3/7] chore: Voeg PR template toe PR template om duidelijke en uitgebreide PRs aan te moedigen --- .github/PULL_REQUEST_TEMPLATE.md | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 .github/PULL_REQUEST_TEMPLATE.md diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md new file mode 100644 index 00000000..2583e398 --- /dev/null +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -0,0 +1,25 @@ + + +## Context + + + +## Richtlijnen + +Zorg ervoor dat het volgende in orde is voordat je de pull request indient: + +- De code volgt de stijlrichtlijnen van dit project. +- Een zelfreview van de code is uitgevoerd. +- Nieuwe en bestaande unittests slagen lokaal met de wijzigingen. +- De juiste labels zijn ingesteld op de pull request. + +## Screenshots + + + +## Aanvullende Opmerkingen + + + + +- Fixes # From f6ab7d5887f78053853671786f37282fe5d8cbbe Mon Sep 17 00:00:00 2001 From: Tibo De Peuter Date: Mon, 24 Feb 2025 20:26:40 +0100 Subject: [PATCH 4/7] chore: Herwerk richtlijnen --- .github/PULL_REQUEST_TEMPLATE.md | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index 2583e398..e9fb04c6 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -4,22 +4,25 @@ -## Richtlijnen - -Zorg ervoor dat het volgende in orde is voordat je de pull request indient: - -- De code volgt de stijlrichtlijnen van dit project. -- Een zelfreview van de code is uitgevoerd. -- Nieuwe en bestaande unittests slagen lokaal met de wijzigingen. -- De juiste labels zijn ingesteld op de pull request. - ## Screenshots -## Aanvullende Opmerkingen +## Aanvullende opmerkingen - Fixes # + + From c2d82a9eb2a78d8fc98d8e5f98a30f5a322b37f8 Mon Sep 17 00:00:00 2001 From: Tibo De Peuter Date: Mon, 24 Feb 2025 20:36:02 +0100 Subject: [PATCH 5/7] docs: Add links to GH profiles --- README.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index bc1cef46..2514dbb7 100644 --- a/README.md +++ b/README.md @@ -10,10 +10,10 @@ Projectopgave

    -
  • Projectleider: Fransisco Van Langenhove (@Gabriellvl)
  • -
  • Technische lead: Tibo De Peuter (@tdpeuter)
  • -
  • Systeembeheerder: Timo De Meyst (@kloep1)
  • -
  • Customer relations officer: Adriaan Jacquet (@WhisperinCheetah)
  • +
  • Projectleider: Fransisco Van Langenhove (@Gabriellvl)
  • +
  • Technische lead: Tibo De Peuter (@tdpeuter)
  • +
  • Systeembeheerder: Timo De Meyst (@kloep1)
  • +
  • Customer relations officer: Adriaan Jacquet (@WhisperinCheetah)
Dit is de monorepo voor [Dwengo-1](https://sel2-1.ugent.be), een interactief leerplatform waar leerkrachten opdrachten From 12aa4ec1a65af7ec3f7f3f28ae3cec81bb3aa584 Mon Sep 17 00:00:00 2001 From: Tibo De Peuter Date: Mon, 24 Feb 2025 21:16:50 +0100 Subject: [PATCH 6/7] docs: Verduidelijking en juiste links --- CONTRIBUTING.md | 71 ++++++++++++++++++++++++++++++------------------- 1 file changed, 44 insertions(+), 27 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 24c7bcd6..4890521b 100755 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -24,41 +24,44 @@ Op die manier vermijd je onnodig werk. ## Workflow -We zullen (verzachte versie van) [Gitflow](https://www.atlassian.com/git/tutorials/comparing-workflows/gitflow-workflow) gebruiken. -Lees [hier](TODO-wiki) meer over deze beslissing. +Dit project maakt gebruik van (een minder strenge versie van) [Gitflow](https://www.atlassian.com/git/tutorials/comparing-workflows/gitflow-workflow). +Dat betekent dat verschillende branches een verschillende rol hebben. +Nieuwe branches worden aangemaakt vanuit `dev` en worden gemerged naar `dev`. -Concreet betekent dit dat het project uit de volgende branches bestaat: +Een overzicht: -- `main` - - Incl. tags (`v1.2.3`) -- `dev` +- `main`: Hier worden enkel de releases gemerged. Elke merge naar `main` moet een release zijn, aangeduid met een tag (`v1.2.3`). +- `dev`: Jouw branch hoort hiervan af te takken. - `feat/my-feat`: Voor features die uit geen of meer dan 1 issue bestaan - `feat/this-#x`: Voor features die aan een issue gelinkt kunnen worden - `fix/something-#x`: Voor (minder dringende) bug fixes. Bug fixes worden aan een issue gelinkt. -- `release/x.y.z`: Release prep branch +- `release/x.y.z`: Voorbereidingen voor een release. Hier worden enkel bug fixes en hotfixes gemerged. + +Lees [hier](https://github.com/SELab-2/Dwengo-1/wiki/Developmentstrategie-keuzes#gitflow) meer over de beslissing om Gitflow te gebruiken. + +We hebben ervoor gekozen om `main` en `dev` te beschermen. +Zie ook [pull request](#pull-request). ## Coding conventions -- Formatting: [Prettier](https://prettier.io/) -- Linting: Maak gebruik van [ESLint](https://typescript-eslint.io/) of aan de hand van de [ - `npm` commando's](package.json). +Om de code consistent te houden, maken dit project gebruik van enkele tools: -Voel je vrij om zelf commit hooks te installeren, maar we dwingen dit niet af. +- Formatting: [Prettier](https://prettier.io/), zorgt ervoor dat de code consistent geformatteerd is. +- Linting: [ESLint](https://typescript-eslint.io/), zorgt er o.a. voor dat de code geen "slechte" constructies bevat. + +Je kan ze handmatig uitvoeren met `npm run lint` en `npm run format`. + +Deze tools worden niet standaard automatisch uitgevoerd bij een commit. +Automatisch uitvoeren bij een commit kan met [git hooks](https://git-scm.com/docs/githooks). ## Commits -Om de geschiedenis van het project overzichtelijk te houden, maken we gebruik van [conventional commits](https://www.conventionalcommits.org/). +**Conventionele commits** - -Concreet +Dit project maakt gebruik van [conventional commits](https://www.conventionalcommits.org/). Dit betekent dat elke commit een duidelijke boodschap moet hebben, die volgens een bepaald formaat is opgesteld. - -Maken gebruik van [conventional commits](https://www.conventionalcommits.org/) - -Lees [hier](wiki) meer over deze beslissing - -Concreet: +In het kort ziet dat er zo uit: ``` (): @@ -67,8 +70,11 @@ type options: feat, fix, refactor, test, docs, build, ci, chore, ... ``` -Als je een commit 'fixt', gebruik dan [ -`git commit --fixup`](https://git-scm.com/docs/git-commit#Documentation/git-commit.txt---fixupamendrewordltcommitgt) +Lees [hier](https://github.com/SELab-2/Dwengo-1/wiki/Developmentstrategie-keuzes#conventionele-commits) meer over de beslissing om conventionele commits te gebruiken. + +**Andere tips** + +Als je een commit 'fixt', gebruik dan [`git commit --fixup`](https://git-scm.com/docs/git-commit#Documentation/git-commit.txt---fixupamendrewordltcommitgt) Als je een commit niet alleen hebt geschreven, maak dan een [commit met meerdere auteurs](https://docs.github.com/en/pull-requests/committing-changes-to-your-project/creating-and-editing-commits/creating-a-commit-with-multiple-authors). @@ -77,12 +83,23 @@ Als je een commit niet alleen hebt geschreven, maak dan een [commit met meerdere Eens je code hebt geschreven en gecommit, is het tijd om een pull request te maken. Het is fijn als je meteen ([draft](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-pull-requests#draft-pull-requests)) pull requests maakt, zodat anderen kunnen meekijken en feedback kunnen geven. -Als je aan visuele features werkt, voeg dan een screenshot van de omgeving van de feature toe, voor en nadat de feature -geïmplementeerd werd. +Om je op weg te helpen is er een [template](.github/PULL_REQUEST_TEMPLATE.md) voorzien. +Door deze in te vullen, zorg je ervoor dat de reviewer een duidelijk beeld heeft van wat je hebt gedaan. + +Als je aan visuele features werkt, voeg dan een screenshot van de omgeving van de feature toe, voor en na dat de feature geïmplementeerd werd. + +**Branch protection** Je zult merken dat sommige branches [beschermd](https://docs.github.com/en/github/administering-a-repository/about-protected-branches) zijn. Dit betekent dat je niet zomaar kan mergen naar deze branches: -- naar `main`: kan enkel vanuit `release/x.y.z` -- naar `dev`: wordt nagekeken alvorens te mergen -- elders: vrije keuze +- `main`: kan enkel vanuit `release/x.y.z` +- `dev`: wordt nagekeken alvorens te mergen + +Elders kan je vrij mergen. + +Het zou kunnen dat je code bepaalde checks moet doorstaan alvorens te mergen. +Dit kan gaan van een simpele lint check tot een volledige test suite die moet slagen. +Tag gerust een maintainer als je denkt dat je code klaar is om gemerged te worden. + +## Dankjewel! From e28f1405ec807fa3b05a99d663e6375c2f47c4fd Mon Sep 17 00:00:00 2001 From: Tibo De Peuter Date: Tue, 25 Feb 2025 08:15:35 +0100 Subject: [PATCH 7/7] fix: Link naar projectopgave --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 2514dbb7..db5b63a4 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,7 @@ OneDrive Figma - + Projectopgave