From c1e8c80bd8de184db383fb1595fba7c7a39a2028 Mon Sep 17 00:00:00 2001 From: CANCI0 Date: Sun, 28 Apr 2024 13:07:14 +0200 Subject: [PATCH] Arreglados diagramas de estado --- docs/images/05-Level1.png | Bin 0 -> 33230 bytes docs/images/05-Level1.svg | 4 ---- docs/images/06-friends.png | Bin 0 -> 23041 bytes docs/images/06-friends.svg | 4 ---- docs/images/06-groups.png | Bin 0 -> 23646 bytes docs/images/06-groups.svg | 4 ---- docs/images/06-history.png | Bin 0 -> 23508 bytes docs/images/06-history.svg | 4 ---- docs/images/06-ranking.png | Bin 0 -> 23416 bytes docs/images/06-ranking.svg | 4 ---- docs/images/06-stats.png | Bin 0 -> 23135 bytes docs/images/06-stats.svg | 4 ---- docs/images/06-users.png | Bin 0 -> 23657 bytes docs/images/06-users.svg | 4 ---- docs/images/WIQ-logo.png | Bin 0 -> 2856 bytes docs/index.adoc | 16 +--------------- docs/src/01_introduction_and_goals.adoc | 2 +- docs/src/05_building_block_view.adoc | 7 +------ docs/src/06_runtime_view.adoc | 12 ++++++------ 19 files changed, 9 insertions(+), 56 deletions(-) create mode 100644 docs/images/05-Level1.png delete mode 100644 docs/images/05-Level1.svg create mode 100644 docs/images/06-friends.png delete mode 100644 docs/images/06-friends.svg create mode 100644 docs/images/06-groups.png delete mode 100644 docs/images/06-groups.svg create mode 100644 docs/images/06-history.png delete mode 100644 docs/images/06-history.svg create mode 100644 docs/images/06-ranking.png delete mode 100644 docs/images/06-ranking.svg create mode 100644 docs/images/06-stats.png delete mode 100644 docs/images/06-stats.svg create mode 100644 docs/images/06-users.png delete mode 100644 docs/images/06-users.svg create mode 100644 docs/images/WIQ-logo.png diff --git a/docs/images/05-Level1.png b/docs/images/05-Level1.png new file mode 100644 index 0000000000000000000000000000000000000000..1a44e7e8f5b3af2eda1b3b487fadd2244678cbf3 GIT binary patch literal 33230 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 - - -
Webapp
Webapp
MongoDB
MongoDB
Wikidata
Wikidata
Gateway service
Gateway servi...
Question service
Question serv...
Stats service%3CmxGraphModel%3E%3Croot%3E%3CmxCell%20id%3D%220%22%2F%3E%3CmxCell%20id%3D%221%22%20parent%3D%220%22%2F%3E%3CmxCell%20id%3D%222%22%20value%3D%22Webapp%22%20style%3D%22shape%3Dmodule%3Balign%3Dleft%3BspacingLeft%3D20%3Balign%3Dcenter%3BverticalAlign%3Dtop%3BwhiteSpace%3Dwrap%3Bhtml%3D1%3B%22%20vertex%3D%221%22%20parent%3D%221%22%3E%3CmxGeometry%20x%3D%22435%22%20y%3D%22420%22%20width%3D%22100%22%20height%3D%2250%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3C%2Froot%3E%3C%2FmxGraphModel%3E
Stats service...
User service
User service
Auth service

Auth service
Grafana
Grafana
Prometheus
Prometheus
Whitebox WIQ
Whitebox WIQ
User

User
Text
Text
Text
Text
interacts
interacts
Text is not SVG - cannot display
\ No newline at end of file diff --git a/docs/images/06-friends.png b/docs/images/06-friends.png new file mode 100644 index 0000000000000000000000000000000000000000..118dd1e808da5862ec254ed767419f80f8cf7b81 GIT binary patch literal 23041 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 - - -
User
User
Webap%3CmxGraphModel%3E%3Croot%3E%3CmxCell%20id%3D%220%22%2F%3E%3CmxCell%20id%3D%221%22%20parent%3D%220%22%2F%3E%3CmxCell%20id%3D%222%22%20value%3D%22User%22%20style%3D%22shape%3DumlLifeline%3Bperimeter%3DlifelinePerimeter%3BwhiteSpace%3Dwrap%3Bhtml%3D1%3Bcontainer%3D1%3BdropTarget%3D0%3Bcollapsible%3D0%3BrecursiveResize%3D0%3BoutlineConnect%3D0%3BportConstraint%3Deastwest%3BnewEdgeStyle%3D%7B%26quot%3Bcurved%26quot%3B%3A0%2C%26quot%3Brounded%26quot%3B%3A0%7D%3B%22%20vertex%3D%221%22%20parent%3D%221%22%3E%3CmxGeometry%20width%3D%22130%22%20height%3D%22870%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3C%2Froot%3E%3C%2FmxGraphModel%3Ep
Webap%3CmxGra...
Gateway service
Gateway servi...
presses ranking button
presses ranking button
Friends successfuly retrieved. 
Friends is shown.
Friends successfuly retrieved....
fetch('/friends')
fetch('/friends...
axios.post('/friends')
axios.post('/fr...
friends response (JSON)
friends response (JSON)
response
response
User service
User service
Text is not SVG - cannot display
\ No newline at end of file diff --git a/docs/images/06-groups.png b/docs/images/06-groups.png new file mode 100644 index 0000000000000000000000000000000000000000..8330cd13cdc8d0a42a895c3d1fc750b58700a2ab GIT binary patch literal 23646 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 - - -
User
User
Webap%3CmxGraphModel%3E%3Croot%3E%3CmxCell%20id%3D%220%22%2F%3E%3CmxCell%20id%3D%221%22%20parent%3D%220%22%2F%3E%3CmxCell%20id%3D%222%22%20value%3D%22User%22%20style%3D%22shape%3DumlLifeline%3Bperimeter%3DlifelinePerimeter%3BwhiteSpace%3Dwrap%3Bhtml%3D1%3Bcontainer%3D1%3BdropTarget%3D0%3Bcollapsible%3D0%3BrecursiveResize%3D0%3BoutlineConnect%3D0%3BportConstraint%3Deastwest%3BnewEdgeStyle%3D%7B%26quot%3Bcurved%26quot%3B%3A0%2C%26quot%3Brounded%26quot%3B%3A0%7D%3B%22%20vertex%3D%221%22%20parent%3D%221%22%3E%3CmxGeometry%20width%3D%22130%22%20height%3D%22870%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3C%2Froot%3E%3C%2FmxGraphModel%3Ep
Webap%3CmxGra...
Gateway service
Gateway servi...
presses users button
presses users button
Group list successfuly retrieved. 
Group list is shown.
Group list successfuly retrieved....
fetch('/group/list')
fetch('/group/l...
axios.post('/group/list')
axios.post('/gr...
friends response (JSON)
friends response (JSON)
response
response
User service
User service
Text is not SVG - cannot display
\ No newline at end of file diff --git a/docs/images/06-history.png b/docs/images/06-history.png new file mode 100644 index 0000000000000000000000000000000000000000..bab6ab480f700fbaf976ab89942e9d26c702992e GIT binary patch literal 23508 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 On{y~KKB6})v-B?(VZ<;1 literal 0 HcmV?d00001 diff --git a/docs/images/06-history.svg b/docs/images/06-history.svg deleted file mode 100644 index ddca3b3e..00000000 --- a/docs/images/06-history.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - -
User
User
Webap%3CmxGraphModel%3E%3Croot%3E%3CmxCell%20id%3D%220%22%2F%3E%3CmxCell%20id%3D%221%22%20parent%3D%220%22%2F%3E%3CmxCell%20id%3D%222%22%20value%3D%22User%22%20style%3D%22shape%3DumlLifeline%3Bperimeter%3DlifelinePerimeter%3BwhiteSpace%3Dwrap%3Bhtml%3D1%3Bcontainer%3D1%3BdropTarget%3D0%3Bcollapsible%3D0%3BrecursiveResize%3D0%3BoutlineConnect%3D0%3BportConstraint%3Deastwest%3BnewEdgeStyle%3D%7B%26quot%3Bcurved%26quot%3B%3A0%2C%26quot%3Brounded%26quot%3B%3A0%7D%3B%22%20vertex%3D%221%22%20parent%3D%221%22%3E%3CmxGeometry%20width%3D%22130%22%20height%3D%22870%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3C%2Froot%3E%3C%2FmxGraphModel%3Ep
Webap%3CmxGra...
Gateway service
Gateway servi...
presses a gamemode button
presses a gamemode button
User stats successfuly retrieved. 
Stats view is shown
User stats successfuly retrieved....
fetch('/userInfo')
fetch('/userInf...
axios.post('/userInfo')
axios.post('/us...
history response (JSON)
history response (JSON)
response
response
Stats service
Stats service
Text is not SVG - cannot display
\ No newline at end of file diff --git a/docs/images/06-ranking.png b/docs/images/06-ranking.png new file mode 100644 index 0000000000000000000000000000000000000000..afa5998494a2ea613dfc99c02c9f0565ce4a0138 GIT binary patch literal 23416 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
w@~ zy1^g4WILHNWz_|>b2l-Fk18he=75qB*%lMn_)EoHFGquK4anb~I57ODV)^1%1*0d8 z!wZgKg_zwCEiDHS|2`wf_H3z-TmUmpAme?Ff13B+Rd!1F0$Gh#Y+nL77(WuovGUAd zpG6@jtL-&WCyhm(JYso@vmlP80tLzGldcUS?eZUU%&UFOei{}}>&NEnTJtGV%NNA0 zGr&|%r6Oy?LLZTz8POpc35suuCkGKU5E%90hP`!acLI0G28baAed9a5@ z|VG!IfVCB=+k-(b2irof8Nx8o(U6JqBl_VOTQT zCwZDcF~!;Yq4`jBWVO9%3}VG25FP2yT?IA2A#y>6cstS$7#z}19U5B33=I2c(-7<+ zA$~I^079`D^leAc$C=+sG{%FhL|dpl{|0uslWfmryJPY|7r=tYOefiC-pBEh7jSaQ zJ+>`Wmbr@+ijM*6Q6N|*fRc{M)wo)a|C7>Y_;tlHB|z&8=^+O)v^nDkM{XE_=^GxU z1A7!lz7PPWPei{6{{SPg04e-%jqNSOJgESMG+tLpC3)!!W+*iFFhs?GB1=5L2IwS> z+AsMRfHcbuM3~xG7G#SHSqxsFb|4EfeOtjhDd)z*f0^RA!iPs7gi%4JXqNrZ2$&Mt z(b6u5;sRdG-Yx~I)J14sycO>q|8c_1UsSp?FNy`&LIN2#dh|)l_@#u&0f>b{NjM~hh`v`2BTo;)>>&qbu^avz0wSy_&j{~>JvKAdb z2B=cSA3SUL)e2Pu+2VHnh09@0~-DzbeOB{)+K;IORi=qKIED>|2ydS zvhbG{A1Ad_fiO&}bt!UF@caq-r+(pCd^(>O4aN{cyrF_65R4I@L1?s<<)8t9&G2_< zJlkph04Nd~keaq$DrpHCoVtOUmbQ0@f&$Y6vGh5IJlexx!e7Yz@Jow+2v~G8z`vXu z>=`jqQ11k(Q)yd=jm73dmMj_4@f$M-q1K+=|LQaP_}&-m9xAHory=p0EjO z4V$;Q0Z)Dk%}n^yyV5`8tNoWWd|OIi1MI3GB*)1yE&5dB)byWmJ7d&PZLk4 z<>Ce0OvwtU=|yUgfrx=Yv#~~icuore_0~ID94OgkorK^_I-dP7K#k)dvwCuj2$t9Q zPtc!;iw0Fwlp?eORTiE0w173A0Ad%jU9^gz8v_~7cqhuU6T$kCW!xSW%dJ0+M&HCh zkq#X>0}7l@LeR)lz0)Fp&yDiRuOeMQhU96IY)PuEV%eqB!Gwmv)CQt6BAFkN84)1F zKl`{3oJX-jGpo9kXAcKbrwE|%{RKG_2qO|UAdO$D4$ts|hmjd!ArJ-bVv_$FsQb|a~e&M<|)?f=+KnT%0^M!#G z!}Es~Gu@!nJ<5LqA|Yhi@iZXvula?p0qK$?a3YP%3MPTrC|?GJ2F0@DHo&+#!OT?T zo&sA?5+-9KP(i2lF2w+-J5KgU7W7ll)6jKzZ0~}v3kL@*kn98Ai>!CoK#E94T4^J8 zz;DQLzciBq70|^9dPEauIz$CEP_B?M)~*kn-v-tb4bAK2ZIl<-*B1cs3Or0_ z4#EEE&Pb?MXNSXR$V`RCHVY3z^Irfzxz2Snz=X+i!yIkrxkwN)M99T#I*VtQNdw0W zz(|Uww&(6ym8FrD2@m1@z3KI-NpK1xK{80XPupb+vZ4G3Tn7D0JTLx?(se+qUvx@L0ByAj0)`r{Twrm)%pSnt-P7)i5$}{r zTS^@?oDnr9S;v&M4=U+h>$iRnNvKMgEFfE%qAX%w2~_ zR;HkPToceUZ9sayKVrz9A|8*-)MmT4g<|zxiR7t5rdW;?I}a?G@@0V&CI>H*M9qqt z#$2Aa*(163Z4njwKL-yFy(e$+5N(HGfJJiK~+ zz)weRZGNLZWW5z#l0H<#SkWTSIAbkej;Y{sM69xAOGiw6d}KdW##qRgqwuK}S$8BR z*{Rhl4ZBPue2M{nJsuqL0LFECtigXZL1Y1W7~mVoqVL-T=w>CK8pfu5iLvB;T#MrL z6~mUM#&c9ieZ%wML-xFPcDr7(b8qwaB$U;~j1$+k?<0@A^mo&lv7&3rE}UI7s&kgF z@6+RzmBL!f4~xxvJ#zkTr``Idp-3*RZ+Y~?%`>Gf{39J7`*(`3$+wu^LQkds?j{yp z^m@E}m=az|Zrj1fh8_Vq@I`=9^0ytiziGPKR=l}`2+y_zJ%gcW1^3MW0;D6YoPOl;Q8|+74=Hdh1k5(Ir@n zI#s*O(M?XldyBi5wehi)9al1)UVX$lw90*!;ZI5W=+yj`=m}VQj|1Lv9Z~289kUD%+8IyDHj_lS?+!C&6gn6 zAESO)@1W1$T&B7@&Liq)ulXG<2hIGwSlLx3MbJc8TjX@7B(TkmZZ5Y-%l7W{q-aoX z&#C~oHcIC1wBJRPa;uUQa9TIWgVS;@J%FN;63YkmuQQ(6!}zP+(;SO5ElRhTCO@wj z61*ryB3~SOtWmR9R_x!34Zu&AP1H8Fppqk|d~|$-Ux&=Op6-jN*pMeMRqgJ14f*0Z z(2+7Pw|#Wb8x_R&ts0M$u#a z!stnI^5yzG?%^wbH)%4t8r+x_2WTS#)SKqOL&pr4Xy@E^6f>rXN)jm&DGkc<<;gzm zx*Uf3C;r0biSb9uj*cwu==Lo$xhht&|J?%4eh~Af4cYZ}gB&%MbtRb4^$NF#iaEN6 zeZC_m`WX8o%BE0oG`_vPF6Vm^)_^O6k+3Qd zke{X{NJiwyhtd0_&AbX><&8nU7@&AKQ+AsEY!h#iR^45VlYRG>rre;3dF7mczj@_? zog+Q^(}9UH8Bq`OrNsk#M`b=;|88OxbH)!+47C*8XM|x7pfIlY<(?!Ug&wfj-p5Fz zW~PseA^Y1?ogsTG9?@63oiNKC;{kPnGSs~(DpIB*X=RjNz(H5Waq)G_t`)nU@@oF3@q56`~V+o0+B!}o&kW#Wr%VWm#cDv zbbJdYn;%)V_d4f=>U0!HPN#n5)c)OCKwvPw3f(MWp357wY-XrchirCd?tR-CKNxba zX_wf_7cx)7VM*_(yJ5HJ>DPGtEhSCy!`8XxgQ`1SCBj-EK;Q%26Bo_ixqU?72!O+rgqq10XHYg=YfY|bFVrt1b`9I(?Mw*Rh{NFATggn^|9Q2IR=+H z2KPBsI@cC6Z2ZjrKF(p3rSu+MJV2R~ za)3Pg0zbSjGk9zE#PIV>60H5_Ndq@}NG7YZCOz>aDKnWYm%0O&{UgVwrmaig4XuYT zA&$l-6hvQ=aQChiX!%PdNm8IxCFu_75P~OJ0P>vWxm9je(mqLi?oS&s`V)Ziky@UN zxxEqFeRDs6)0O5ygy;VIH9Qlo_~+oD^@w@5q$}U;B@(2sxlTl!EwQRgyjj;bHP|Hk z&9@}o?baO;B4JW{zR3O|R*MZtYg-IoL*PHis72D-8}gKuHPoyi?l=38$1PkkEvEVA zRwI3?WN2k<8E$~8TlRdejmk|o-O2BcCdh?P-r3cn(~i^l#6$rj-*JTsPc{EqB>}*M z;dJ`I8;+85PK#UD3xL7ti9<{_kEV#3pSsmCZtZ-T0s9u0uX=OG+= z7z$Lq6kLeXt5EdUamaTbU3d}cLs&03MrvpUd5ysl{?b#OVm3e|Hz5b*m+o|~f?YIU zD{I(gyUhZ(OHOuG*5z3@iYKm`Z_8S6abs~QixB_GA_gp zL_WMuX0H8aEQeM>u!-r85b{gH&SL&=h z4ylH5`Y23^@kZM8d$?YM-h=kz&5*K^Z$;9{xF<8Mf1KqC>uEqua3ST)tMuM%tyshz z4x4Dk1>i@$GXzQl%r#Jq=ZM>jO|E-C6Pu(#7#>x|Uin>`0>jQFvrFF2(OW2I&8BC9 z!K(9(Ynh%8GLvg%`}$S~OFfgQuCLI{VyEj+YqwR*Y*kcc=64#U`>GOiU8T6x%(SX& z4(@MBux}sU>#*LoDs+79;;FNB{P;wzX6Et_JmT8AVs18?bxAmbuf_Ae4F|XS1=(l0 zt+S4D_lo(d6i1zF68jSGbTy8sB$^LS4`%hNux*`Haru_Pqp|h;v>ZlGRsU_$)zoCe zzUx5*!l1c$;*<|}vwS=sRhZWPbDkc9n5?af4@iwKf>}ZP-#Jum!L*bC$W1N}4+KO$ z?A;mAoq8JWY(8)c6>WW-s#L5$X!g4mgQ$fBL0$LAfg!)Zm=KfBG<7i5X$gEJ6hlbec0pU^sUm2K;-RXt@A$i$`S-i*8J z(0_%|b@!U3=g+@ZctEutwCcRh74sH!bAgf`)6E+0u$Fc^V{H0Y{6ebQk!AxrHABq2 z@_rekMUq391y^undUf`QQvM`ya4)KjSdz?tIHPRxXI4Mo7adjA1)FueqKzNlmf|-S z-r>N#E2>UN=~xXnoi~b6CnLHF-?;N>Y@am3-p$#%ny;@|I7`EvYrcA!5P2%f&h7Fp z`{x#Psb21G|Kjrc0P63inyTvkS^W@)y(O&byR5B=Sk*O9)LT8n&AK;`dFy9T;ES=) z1AXr&h~pzEf=&Hr)BsYFL{@MxZ*3n5UT+c2#g1j=y0}&R4t2JEc;)e)PZsT&?0I?i z$f}Qxu_{#xObX3HqB6)Yo3RjWrI?BzURZW-UVoK2?5?3aF+6A8 zc=ZJDC!gudUIECgGWWEJRFpK4PqEPOloAjlp2I$^i$9ko;lC}2Ty3kvCdmi2#7`ib z?=zZNjD7S~aW+14Zqh}fT+u0a=N;1=@@=GtY=1;{Oj9QBo?HDeGlQ)&MMv0ogYMN8 zjeA^|^;B#7w6^QfX;o}n8Br^;&646)Z}o_!ap~*);`?{7Rp^(lFYJPbmKq3lBiA>I zJ@*`ZLfRMRoj0>b)+(0QtF%t2dWx6kO6HAmeu}7~UTI5s%1@-u0ac+*iQ6(9|(53MQ7DrTTb_ss$;XQl*=5zDRiMRw&Xw zw;{iRo*JbJ_KbPgh_~{HZ|P06w4iAdmdap9dn+dytpgL(3v8B|B4`x71k4r^VttJc}`u24Nz2u}}G1ELrKugG6 zC$P8b)r3~?Sk6wBWR|UNKQ>GiD36)rL61_k^*61Cg?>{Da!z`=T23s}D~Nqn+_yfZ z+|Zyv-&JsgQ1S-1Vs$Ff$9z+qGzxo4|%y%8uW&LqWWba(g5vjvM%+{-P@% z-d{dy5Jy%*?44GD67>TpiO(Aqvb7NTzqG5#cQ-*wTUr89JAxvo>7Qz5j5r96d)#MW zz&**r%#j~Qdj6>S|F=%8!}?4X8e?O>q1`=9Dejbbix(M%R~rj1LWK94v~(?~+Z_fnkCFUIFIq}wDB_*+xLT|d z#ctdhf-l>x%f8Tb-1iHrwi1T%b{=n-TPK}g35>-8MJme$XvekF*bxEH#`(Je?na=s z4s~ztreB?O^C-&sfJL?1_om?Ka{2(*zO~JzfWhQ;n4@oyU%L_?-mgwpT#iUxBrDyz zHd5S9Jj2wJ9mSa9&xdV{{aa(ZpaG~m_r!gPLH>)|k9k~UFWJaVT-=?Bo!yUgys`MC zGv6$zu2?O}^PhI2X&|0W)_Zn-U^XU|dY6aOi$pK)66wK^g0M31HkErm=Uxw^3F=Q7 z-A@{?VT$RUtrQ>ZZOR_9x_T#Sw_4i%MqlM7I9cF%iFo^|#_%g0y0%xbC!+=ryseHL zM&plc;mA=))}}(49UGsi{1@0tkG-3Tj}XlIfi1%vU!Z zUSllFW{!KqY)@r|_2=9)+WuEw8!FU2*@P(|iET~h_=h+ja6;f^yYzcgQ>NyGAny4~ zZzWSm;yAU9u7DeezNBL!<9UxL`3;JG*IAGC#)85dDM+Ap>c^4J#R^-HR(uoeUE%2R&bqkcvV--pdGVZ(SW zHltJ_>b}!is`+w@bfZO}K^D}6uP=!80Ox)Kq*f*sj29o~0V!0#9N!C@Ub9F=6gn@} zuT=K3_y6pR9R93$PQ3Ca&nMbOH7b_C7JGv%554qFq6W%+7tqzP87gOE z)q2Pd3d(!MYo9Y23Z0YYLIkd|U2Udfc{_+?!s7a4I^kznb($S_U2^?{^Mw=cj93{; zFpOer2RnNjgZw*#O|Ig5HH|ztLT^5a*I#E9ZAdQT zl&?sW>fKNvLePDn=|vjt&o%A6+^h=OuA0ir3}#7tD|N77IGJHQdp9xo{+DE3_Q3m4 ze2ZU=u=!m{1>FytM@#jb{jm^5VKGu@13jstP_DHQc@iAl$UBr&8=`O=9tO1Q_hbp* z!IgL5ip5S)o;qAl5Y_isD{L(x(1-?f1XF+&O*;T0Db(b^YHVn*+ZVFiH?_aFxZj%+ zNGkSOL$ZXh&igJvJ1Ie2qC%47d?E6!IVpIU^a@H~O@?tO1@B8u6 zbYOifn#X(Jkg5y1d#VV1lA4wt+8|5`Vmgo+$mGe|gTN%xWN!blJG~Yu9}CSmT`T4< zNO~hJ*Bs&ly!V}kn=VVx1qw_JISs5Lb@2aQ&%c2j@9of*I+mg@4G!AlrlD)r{U1I7 zJVJ_IXSgYCAdJ*Z??E;jwAV_~U6By1cMW}L3ew=PUwJ~mWMJEXjUTDf76pvFazIsmU7U} z!V69@$FcybKE?sg(%XHL2RVrn`SC;@PVo8fY9;hn%yEEP(EAqt{l%E{uR4RY9q)k) zWBlM?KTYz9+WR<4Dq|}qd3!GoOxQ0#oYiU*4&s{-c;Ns(s*4Zq1x|x| zO+EgL-yoG7XdD&Kk?NLzAQk+jRs#ySP@4E3v$~EX$4HUSlGi}%6?pZ6HYG0>XeJt9 zNw7-wz*?z(Ir5f)`y2m{*}xL-f`iz<3Miq(2v*8pZ9a%X$MoZ*mOW4mp>KQ_E`b2= zXEe477mCYB&W|8wo( zpxxwd+^0wXUU>>&qR`p7BDbrO)c=0z!vFD72<(G+u|q9)L&3NozCC@08vf%D3SHo7 zIdd3B2PQ|4xi%hkivdh51-zl5iIas?C^iH;ssG9yw2#RDAwC58ebPaDF1pf2r+d1F zh%_DWo{d|q9d6A12IQf0btvop=@lWbztb@_)G#9D_J5B3zXd%raFE{F`iIt7J$UYP zdZ1+pCz%_J27%_hSQ{<}Lmz5~%{~UfEP2U7vmt!m|h@aGq{(tJY){v&c zFzn{afvGJk%T_JJ+bq&7nV06Y4Re|^T4cJ?G&BDgl$NRGjb$rIyVzySOUm-n2qUDF zvYF6@Fcm=}ETVD~1(TMAM%MG4vztQy#<%U9_q^BdJm2%a0Pl2LC@$rvF?@=tkD9H* z8c}}7M^j}T;63=6^SMQuT)0yu9*-ibY%&Xm<3dTloDYmC9Wtj!^N}^eah=m?`JN0G zRq0gvpnzXkkxrU_8MJ*W!n#M9s0R1TX73 z=QYJnoT2t&P6PL7+n67-!X2JJa((bH%hfzUqE{12fKPi5(Qg)|Lr6tkvkQPU~ z{L|5|;B2sqFlzOCC&wEZEEIwnM+E5D7Fwuz6&E8T|M&saO(Fi;x;urf!MKJ|g{kit z=N-xH8`^Wu7zS`1E>dGpBv*)oQUz2{RJM8@2yK>5%EFf>^<5mV6WcPC&Cmh|HPcG-ASP&|(`CxEI77ka?t?s3PczV@Y3*ESV+Gde zNRqDS3&$l<&p3%IFv_L&zzd~*4u<;O&)6Xn(H&B4b=pe80|TZz<-xeK3!7FR(_X7U{WY)k%Y_Zo1a8lX}OJ_qUEE3@$OprF)$quz~ht)7!~ zIkhcl8_U&SKYQX;cGD1>Yhw{rJZ6r8NKD543?2!VvqDy)Xsps0mI}z+%sWKx97gmW_km5uJSAMWr`7ufbrl%PM|dF_)~vNsEi;%4TUly?$d z(mPB!%5=(Ai_y=a+v0os*m;%S)s}W#jlsKNc1QTCli&%;y#&9K6mhYCaHFDkqFiMl z^d|UzRtRhY`pL~ML-|Kg`7N<~TD@y2t~t()p;vQ@DbG2qhI;sKX=c5)~M+fZFN1?bH_KZ(3yKB-Sxj{PFS>noN= z%D>s?2^4ca2ZN!va&oPs0_eN)KmahTD - - -
User
User
Webap%3CmxGraphModel%3E%3Croot%3E%3CmxCell%20id%3D%220%22%2F%3E%3CmxCell%20id%3D%221%22%20parent%3D%220%22%2F%3E%3CmxCell%20id%3D%222%22%20value%3D%22User%22%20style%3D%22shape%3DumlLifeline%3Bperimeter%3DlifelinePerimeter%3BwhiteSpace%3Dwrap%3Bhtml%3D1%3Bcontainer%3D1%3BdropTarget%3D0%3Bcollapsible%3D0%3BrecursiveResize%3D0%3BoutlineConnect%3D0%3BportConstraint%3Deastwest%3BnewEdgeStyle%3D%7B%26quot%3Bcurved%26quot%3B%3A0%2C%26quot%3Brounded%26quot%3B%3A0%7D%3B%22%20vertex%3D%221%22%20parent%3D%221%22%3E%3CmxGeometry%20width%3D%22130%22%20height%3D%22870%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3C%2Froot%3E%3C%2FmxGraphModel%3Ep
Webap%3CmxGra...
Gateway service
Gateway servi...
presses a gamemode button
presses a gamemode button
Ranking successfuly retrieved. 
Ranking is shown.
Ranking successfuly retrieved....
fetch('/ranking')
fetch('/ranking...
axios.post('/ranking')
axios.post('/ra...
ranking response (JSON)
ranking response (JSON)
response
response
Stats service
Stats service
Text is not SVG - cannot display
\ No newline at end of file diff --git a/docs/images/06-stats.png b/docs/images/06-stats.png new file mode 100644 index 0000000000000000000000000000000000000000..df8ef661dc7aadfda29b69d3f2cfe0a8265dc10e GIT binary patch literal 23135 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 f8V2%%|I8k{?k1Wq?zsj$IGVxJ)z4*}Q$iB}&v - - -
User
User
Webap%3CmxGraphModel%3E%3Croot%3E%3CmxCell%20id%3D%220%22%2F%3E%3CmxCell%20id%3D%221%22%20parent%3D%220%22%2F%3E%3CmxCell%20id%3D%222%22%20value%3D%22User%22%20style%3D%22shape%3DumlLifeline%3Bperimeter%3DlifelinePerimeter%3BwhiteSpace%3Dwrap%3Bhtml%3D1%3Bcontainer%3D1%3BdropTarget%3D0%3Bcollapsible%3D0%3BrecursiveResize%3D0%3BoutlineConnect%3D0%3BportConstraint%3Deastwest%3BnewEdgeStyle%3D%7B%26quot%3Bcurved%26quot%3B%3A0%2C%26quot%3Brounded%26quot%3B%3A0%7D%3B%22%20vertex%3D%221%22%20parent%3D%221%22%3E%3CmxGeometry%20width%3D%22130%22%20height%3D%22870%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3C%2Froot%3E%3C%2FmxGraphModel%3Ep
Webap%3CmxGra...
Gateway service
Gateway servi...
presses a gamemode button
presses a gamemode button
User stats successfuly retrieved. 
Stats view is shown
User stats successfuly retrieved....
fetch('/stats')
fetch('/stats')
axios.post('/stats')
axios.post('/st...
stasts response (JSON)
stasts response (JSON)
response
response
Stats service
Stats service
Text is not SVG - cannot display
\ No newline at end of file diff --git a/docs/images/06-users.png b/docs/images/06-users.png new file mode 100644 index 0000000000000000000000000000000000000000..58592795ea98614e26112550c49df8f4e5867801 GIT binary patch literal 23657 zcmdSBXIPV4&^8)Egdi=5(gXq`pwgsQsVXW8c6t*Lln&AfB!aM!rXV2FZHUrrAU#Nl zbPxrk7XfLZNlOU%RuXjY{hsgL=kGaxyu3n^XRS3e_uO;OtVEtS)Mwqzw;KY1u%143 z{2~NGUj%{BWy2Z3D<&^ZzCj>DkkiL?F8k5V4;sb(_?WW3gvFi=Z15>WMWnPs=vgXe zue58T2LkMeM=ja*c-;NYV)3rIB2?zSH+>=N*C%Tzx=NuFXV`h;mm{;b@5fcKUUs++ ztJgxFktD@GxR4x6MrcFmVE_2XQG4WzHgfs^6fT5@{No=1x}=1Ezf(Jli4N+_*>zl; zt!(=U2jow9ym%|Nbn(Q5OyAuT$te{m(^#_dq45{{30B zHYXI;EA}GN@W8(o3V#WmoA8|8xO4-X8xDbXLGz^SouXF8wP1)xTsA0MREnm&9~Z`x zt~+_WoBLZjyYeY}an)e^V15^K^z2jT;3bKbamRkB1=4;c$~pz9-_JEdIFvfPM+@ql zQaST8p6Q~ZwlIv3`l`lO)0RqKF{DTT`_`E8B(Ae~*GJ8!$&$J_i202|wX*AXF0-D8 zW5Ow~im_MAX~h;xVOK9GRc|D2dc1d`D~Nl$DYYbmP5S;iRysxK3jJQ)EL+N}jkSd> zaZg>C-BAx)W&W`^gDrTG{o1Ri24bhaLGB_PO(;uVUi|;klJk5~K?_4xUqV(E3EP%; z*OvmO-`ii=hc|INRxO}@?h<_NAUFaB%Q1bl)H`DVOF5la42QzBYbht55J5X}lPSW+ zPuFAvUw;z9gydCHIF_3d0qf=E$vBzif${E6Zs6EmW=;79bdR8!oKBz8p$P5Qly8v# z{SD)UjqTuhX&E=ms^OVT?(FW6g*ydgulb=W@AM$o-n*m#W_xM9%A1y^Dn1i-#O2=R z=d<*;tJNiI-!r!^6CE7Z7K^WQ-x*wyeMZ3b;JJpL%zest(^6Fm8+UI(K?I3%J@&0D6Ty$K z9tzb?rF!1g|2myR)tWDSl`Si`jabropRzoZ!xE+@WNY!S`n_3e)@Jj|QKX-)RcTII z3`2PjMth}Mv3UPC@@WFA9VHXN?27ufu*Z8Sdn)*U+0&aMdI|dL1LtCDx>2mc%hK2; zxowYX^O>g75>jwQ8Fr@6yS>~-9si03> zmw)GZpa$k2pOoXUS&@rUFY+pXYV9_-N)mzfAg&MByS{QV3j1#Oexd9~Uqw~5C`Q?5 z^?RYy#<6}SobdT_O4zX^Zd~EDAsO+k>>48DaT}LD%e_U#NvC9?0?#%`n3)yd3J1hW78y^FsYXzS`@1nJ5@B^@+`q z&!%g+@o_v!@OAZYWckZcU+akByWW_!3AJFJOK*c$orV@i4GS(+;XS5&S-*R4b^m1Y z7CN7a9b0{1Is0b4F#wU7M|zEHCh$6UE^u-}=ft(0DlFu5oZcG=z`sfsb+0}kKOgZG zu_~zT-$=s@>`RevoK2B1ZeDTP{3a(zz+fLkove_W&i6_dUTFQ?ovm0UYBCo~@SZvl ze3UEr<0K(z?qzt1F#GDzph9@ZOkBB-oAn^0ZewawB=X0;YX#HBz5Ceov(zy4v$Yq| zgQtQ!7ZQ|GS&JI24|%CroJ+_ zuW{H;=&U7@bZ45|$G0+~e)#Tbq}t#ZpYC&(N5NayIt{nSOoIB~Y&0J*{b(68?nEGD zq(-i8WjJL%MZ7enBmtkDBoNhu8${{2$-*=}GVdQLB{II5Nt= zHRp_&<7(S^VQ3;#oEOFM69NR5wpMN-k72 z379O^$}e$uT|-H<)IScExE*l>@$w91scL_g8o?5JN4Qjc(f-r16G6C_)gkxSc}e4= zj7zoZt;e4)*?OSHPilKEh(Pl~f`2+Ws{}QCcGucRlv#*sc)Qg3#9C5e&p8VL{7ebiYNaEWh1)+Q^LuMkckTPcI7=_OlQb1;4gqGWr3fVp4jvoD$ zV&ChxKO-3_r|NBS=+K>KDz}$M{W4cfP)jPl3v$k|≺zmo;49%F7!`6I=QBW)#R_ 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 - - -
User
User
Webap%3CmxGraphModel%3E%3Croot%3E%3CmxCell%20id%3D%220%22%2F%3E%3CmxCell%20id%3D%221%22%20parent%3D%220%22%2F%3E%3CmxCell%20id%3D%222%22%20value%3D%22User%22%20style%3D%22shape%3DumlLifeline%3Bperimeter%3DlifelinePerimeter%3BwhiteSpace%3Dwrap%3Bhtml%3D1%3Bcontainer%3D1%3BdropTarget%3D0%3Bcollapsible%3D0%3BrecursiveResize%3D0%3BoutlineConnect%3D0%3BportConstraint%3Deastwest%3BnewEdgeStyle%3D%7B%26quot%3Bcurved%26quot%3B%3A0%2C%26quot%3Brounded%26quot%3B%3A0%7D%3B%22%20vertex%3D%221%22%20parent%3D%221%22%3E%3CmxGeometry%20width%3D%22130%22%20height%3D%22870%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3C%2Froot%3E%3C%2FmxGraphModel%3Ep
Webap%3CmxGra...
Gateway service
Gateway servi...
presses friends button
presses friends button
Non-friend users successfuly retrieved. 
Non-friend users is shown.
Non-friend users successfuly retrieved....
fetch('/users/search')
fetch('/users/s...
axios.post('/users/search')
axios.post('/us...
friends response (JSON)
friends response (JSON)
response
response
User service
User service
Text is not SVG - cannot display
\ No newline at end of file diff --git a/docs/images/WIQ-logo.png b/docs/images/WIQ-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..d9b9282fbca0c9b5091c3fadbbf4a5bcafba48b3 GIT binary patch literal 2856 zcmV+@3)l3CP)Kn$^$0I?At5C{n&B$mVmA%qa{0lpyM19Z=%p_3NUkuE|RMRY(qk`7wh zQradRBwe&5v_?33K4W?qIY%`3CWQAi?;P-$=NqBU~ZW)O_g)sXKm)#pMU;G z2CE~!S2FE7cFer>)oOF~lu4@YVk0{T!0u^lH4A#W&6%O0lB!)$SJX2NojYfqTe^g5 z06Gbsm6Og64VkCfzog{ANN=oKnIp!0w{M@hY{EEI&g&~znDZV9qYb8=M~|9E7R)mM zgAI-<NRzjjXr6SxC71k)%C zi5MDF6P`k*e)~JAya}F+>7k9!@fw~=7l+}mqzBJ^|hEpZJ%E#9%cGN4p2p~K(> z7^Sb9I@$CbKAh6W!$S%?jM_S+&K^7W{7Ma_9lz`h>fb0Z?LU6p+}+kn+1R#0$ua=- z?Y_Oiwlg14U}B$YG%nT|K809yi?BaE*ZJGRPy7Sn~bY!Ug73 zBv#f4FwNS$iSn3s`!N&SaNvMJ5Yv}%7h#2G7PlwY{Z{AdEZz$}C@|rREJ;SZ2yr7O z^`1Ow?r5E1&Y8pp5p4k3WzCa_4$Lsk#K}s62_606+V5!~T|aF~ zb{wzk&>@50+qR39Us$#@E2v3>i480w$ zT_wTv+rWUiZ6+5606AV3nHWTk{O^bOJ?aVB+rAI)^wYtEOtlw$hX&K>!9fFZXA2FL znHZ2(AIR{_%a=vvvAl^P-^}n_5=@BggzV?uufk)bx4}`r{wg%1`N>1`}$G zc@kSGhRbN44lyf`Q@dVYS>rh@$p=uhR0>QW`52;o?Q!pcQ-NERNZXGbp@+Lz@HV7N z5|~(y0}lqz6H6KggQoxy)K>Tfzh}Qf~W|lijjOdJ838dCN>Dng8Tx* zDi_*AY}<#SE4H{KFtJ-jG$UwJb(vW)Llk%u2zDqTh-w?iS7z4~OMyvykVMCv<*ASz za>iQ&Oe~iadC6d6zyL);i>4Zhclj3FytV~KIF>X@a>lELw&+S7c3uKZ z+7K^Z2{{e}G$OI>xV>eD={t3bRv{Tos977PV2BVg*1`)uPr=N75SVlm^ShK83)>0! zUMSUIaxB9d#Mi-^i}iU5MxKv1X|tw~_jH;&a#@3E#1!5_mS@tY_Ts8-A`R(Gn;4>-8b|rRfvMrM zIe{U=N8D|^S^zOL1B6UQp3POX5C*$QEbT>J0!$3Zq#fl;K>v>6#Q zv(n^AjEVuCfZS)4(7h61V(kXo#W-Y0NA3Qay?dx5@-7F}>c!`kz{IRTOB7Wbb{Mk9 z$ivg5EoSBz3dSl0CZ-+YopLs*g*qM+Cv0hvx?{QRoj?~aKKPIn$36$ zhBrZuM!s_lRT4~$-K3-Mn$=&beOroYhQC`0OsGMNXu}{M z{jfIrUZfOHp~=H~(z}W)PbHRO)ly(WedsK7ngAx2kM@Crd)sEwCyc~4$SZ?MTWf=n zo?X%&eUplibX&1dSvzTh*cNzNsB?s*hw6{rFA1jpGkB54+@PMW{y3_HBTG4H>+f@crO5DU%9M`FyqN+UKLb7X=&~<4r<-BJA z56cr@EQ%fv$FXr7A5VSjT-D*UGMHd^*2q3E<#-C_9Gp)U?)esyL*Q}mv+cz9*tE5; zFKGy}+vUEv0)g5GX1CFYE$zBc#tSg2yq>TKn6#<5tF(Qc<0%-PX3LOr)gWLazy#2x zoVJy=l+LjZSM{yDMZlD@-sBnq!OYae@HAHruB$FjGzv`MHWN3jPvTF$_T}EI`YIji zzan6QF|?qhuc5h~B9}MC7LvsvvAj`Wf=uw7u>ce%E1&mt$C^!lRs>9trY)EFz*NOk zupKLML0mBts*+fl_+C!JLy32FgA0k?qme_Ny}Khvcl@Rpn6!mlpHZrKid3G)EF^12 zY&4ieK3>%I;GEf`3MkCvs=n8<7?`vzCO$A#c^a5wOtwsBAz3;zl#dpeARl1^yx0pb zfw$Yy$T9#mzk4ek$8zmd3{0q4+e2glL*ZpZ>uQ80-C>bx-)z|C!tvY0000