From c8eec570da6de1b6da5ca247976a167b5e88fb18 Mon Sep 17 00:00:00 2001 From: Tom Irgang Date: Tue, 15 Aug 2023 22:31:04 +0200 Subject: [PATCH] improve docs --- docs/dev/index.md | 6 +++- docs/dev/objects.md | 42 +++++++++++++++++++++++++ docs/dev/stories.md | 0 docs/dev/uml/objects_appointment.png | Bin 0 -> 7849 bytes docs/dev/uml/objects_appointment.puml | 14 +++++++++ docs/dev/uml/objects_comment.png | Bin 0 -> 6605 bytes docs/dev/uml/objects_comment.puml | 13 ++++++++ docs/dev/uml/objects_consultation.png | Bin 0 -> 9432 bytes docs/dev/uml/objects_consultation.puml | 16 ++++++++++ docs/dev/uml/objects_other.png | Bin 0 -> 16207 bytes docs/dev/uml/objects_other.puml | 19 +++++++++++ docs/dev/uml/test.png | Bin 10338 -> 0 bytes docs/dev/uml/test.puml | 14 --------- docs/dev/uml/users.png | Bin 0 -> 8063 bytes docs/dev/uml/users.puml | 14 +++++++++ docs/dev/users.md | 9 ++++++ mkdocs.yml | 3 ++ 17 files changed, 135 insertions(+), 15 deletions(-) create mode 100644 docs/dev/objects.md create mode 100644 docs/dev/stories.md create mode 100644 docs/dev/uml/objects_appointment.png create mode 100644 docs/dev/uml/objects_appointment.puml create mode 100644 docs/dev/uml/objects_comment.png create mode 100644 docs/dev/uml/objects_comment.puml create mode 100644 docs/dev/uml/objects_consultation.png create mode 100644 docs/dev/uml/objects_consultation.puml create mode 100644 docs/dev/uml/objects_other.png create mode 100644 docs/dev/uml/objects_other.puml delete mode 100644 docs/dev/uml/test.png delete mode 100644 docs/dev/uml/test.puml create mode 100644 docs/dev/uml/users.png create mode 100644 docs/dev/uml/users.puml create mode 100644 docs/dev/users.md diff --git a/docs/dev/index.md b/docs/dev/index.md index f935ca3..31013b3 100644 --- a/docs/dev/index.md +++ b/docs/dev/index.md @@ -1,3 +1,7 @@ # Repapp - developer documentation -![Test image](uml/test.png){ align=left } \ No newline at end of file +The Repapp is a repair assignment booking and management tool. +It tries to support all common workflows happening while organizing a repair café event. +It's build using the Django web framework. + + diff --git a/docs/dev/objects.md b/docs/dev/objects.md new file mode 100644 index 0000000..8f80db3 --- /dev/null +++ b/docs/dev/objects.md @@ -0,0 +1,42 @@ +# Objects + +A *device* is an object owned by a *guest* which has some issue. To get support for fixing the issue, a *guest* provides the information about the *device* and requests a repair *appointment* during a *repair_cafe*. + +In case of ambiguities, a *organizer* or a *repairer* can raise a *consultation* request. This *consultation* request is sent to the *guest* to get the needed information. In addition, a *organizer* or a *repairer* can add an *comment* to a *device*. + +A *repair_cafe* happens at a specific date and location. It's an event which consists of *appointments* of *repairer* with *guests* to fix a *device*. + +To organize a *repair_cafe*, a *organizer* needs to know which *repairer* will attend a *repair_cafe*, to schedule repair *appointments*. + +![Objects](uml/objects_other.png) + +![Appointment](uml/objects_appointment.png) + +![Comment](uml/objects_comment.png) + +![Consultation](uml/objects_consultation.png) + +## Repair_Cafe + +A *repair_cafe* is a event happening at a specific date at a specific location. During a *repair_cafe* *appointments* of *guests* with *repairers* happens to fix broken *devices*. + +Field | Type | Description +------------------------------------------------------------- +location | Char (200) | location of the event +address | Char (200) | address where the event happens +event_date | Date | date when the event happens +repairer | many to many | will attend the event + +## Device + +## Appointment + +## Guest + +## Repairer + +## Organizer + +## Consultation + +## Comment \ No newline at end of file diff --git a/docs/dev/stories.md b/docs/dev/stories.md new file mode 100644 index 0000000..e69de29 diff --git a/docs/dev/uml/objects_appointment.png b/docs/dev/uml/objects_appointment.png new file mode 100644 index 0000000000000000000000000000000000000000..0ff809dd766e531e6d418f270486fcfd9d2a8fed GIT binary patch literal 7849 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 literal 0 HcmV?d00001 diff --git a/docs/dev/uml/objects_appointment.puml b/docs/dev/uml/objects_appointment.puml new file mode 100644 index 0000000..0db3859 --- /dev/null +++ b/docs/dev/uml/objects_appointment.puml @@ -0,0 +1,14 @@ +@startuml + +object Guest +object Repairer +object Organizer +object Device +object Appointment + +Appointment -- Organizer +Appointment o-- Device +Appointment o-- Repairer +Appointment o-- Guest + +@enduml \ No newline at end of file diff --git a/docs/dev/uml/objects_comment.png b/docs/dev/uml/objects_comment.png new file mode 100644 index 0000000000000000000000000000000000000000..6d6b166a06c8b826d8bacb10c6e388c9f9435a31 GIT binary patch literal 6605 zcmcgx^+Qx`(5xW10qI6@m6YxdsU?-}lf zu(`xS%PR+nc{LaWOYzeB;Sz>Ehxj41qY>n%KLz+SziMI@mpg3Oxd} zJh#%;clq~yG;~0XN0Lg6ltU{cjpY8*yWsuYmzJ#DiHl|y_2A-2`674QCO*#RH28fp zC6Bj8Q$FH|BEGq+8m>=U$jbkE)L7{EL6N=4&^M{{XR9&5RoGWt`#}T1dWik(FDTKHGNqfi35+)>-KA{t*AoUI< z)h2QOH960n{@X!X2lyvt*Z%wfcPS_nd=mc0V^=#ILswz6XXW?-;~1)3J{8{iE>(iK z;l*a+yHYtiP2<$pV%Iibaq%7!SPk%c!ICq6GhK*A-kL`UMgRGN6(6s<398QNH{oE^ zn!1m{YRYtY#6y`%ITU>nn9IUJmf9x1`72%HS0KRK`i+wjCxBVLWwc{Ixl-kQaE`j;P z{r;Vn*>9tyxLDj!DGppL=>SH=6VhLP9-)$?I7?s*sYfA5Tr8)5-)xq%l26atuRYP|TP!0R|M4dXGJHaj@1fxK zSXVaCZUvQcikXRgUlz8KJT-z0p6)o0 zcfnt*bUTgoenyG{!lMQ)h*=bZQltLc?>Y&4|v(RLnKHPyx>{ zIJ1L%O9ijDp2H#^0t#E^;8NE!%uk+Zv+HPTY8o0EN=eC#+ivA=X_rWv52zInOe3yf z)GDUvfXW&a1*zjg(NBZ`pPi7)2HJO9fqJRspwLjf`Z(flcw-coauyE^24iQ(-}#c9 z9I34CU>sFfHQrZJzdJHWXQ_Hc3c(9(gR{pM!jVxqYV|AY!N1$Dgasqs{{^0!!E8`D4E2NT;- zbCzD!Qy(lUS@+-?z2AzG@zTeFV09inP3efWg@DlI~%T zGh67jZ}vYc-g_DC^SAozYCVJ% z%KP#~zNq&F-Kp)uPQ%pH)X|;K{mcy9d3~xFA%+wmob#Otz(HT&Qs@9@C^V@|RHQP{ ze?fXziv%D=#l(Dkd`ztU%^BFG0$4rcR_6!APcIB$Oa>vyPpyktx!8VL=EKmT0|?+MFlGjV$@_CxFwB5X1bC?+MkMY@UnUe?i;(XcE)|;`nY3RXSdS zNTKy5@CBsqv`?va68pTzQ@qphy}J$Mv*t^PVFXyUctAD-p%*F-G#cQB4B5fH^6B#Q zVB(ww20k(xu>UBE)l^0|VuA+AD<~Ksx_@#S%?M+X`r9IKyt0M;oD$c(p1S(A_+0OI z^4zPw#HRFpr1;$h>iJ75%~Q~B3#Uz?*;gZ@iPrD?GeXz|wVjF(k^1OAk>5%BdW9uT zEy8FY9FWEMvWWh9hi=I6FU`0gJ_u~>!`p(04h}sJ&%yc=Mf%(Xwhz#;y-+zr487&; z$`-ZxTiJ=z=Z+Jj*^!$e4+ALi_1sL?WZtfi?M^p^nQcNNkjB=UXVq;B#i0O9Gl)1B zns)fdEs=@(deI@nJSl*oOW;M(BeBO8O~ggi!bi+f7`=Lir zf-PR^2M3y-h{eq)e#@d!Mj#oif+O0{5Sn_rmz6YuL!XoJuZ4$klA}6fzO!}& zd)Ytm{{>c0<616p)v^c%{J=ld4DbYz z>NxV^^;@y#%5{!ZG6^)gU<7Y8QV8klejP@bHJ(64VmOR z18~zu*Sy<__3{Tyk0uD+gvLhJM>D_XBZmjN2FzS#Q>-P}Y%K z7#KeglzKN&C|+h;U-+B#B6QqYcGux&ex#oG7uQ7A_clSc!(^!?0@t?F;nlKlrV*2H z-STQvbE;G?lGIhZ9q&URio2F34OE?- zFD}i`#yFtYTSajvK@QIX(0{?-kUe~urp=B*p~PrzxXpxxqf|KWcit>lc`#SdLOOCd zWBCe>%_?HmyKMku0M3IBZ73e)s7X9Y_ui5lp>l^BMIbiT#`~%Ub^U%U$&y78PBU2w-30zYLtpnhujQF zZC*<@09+)mv1qdl2p1>}l-^eFHw=z4CWp_vEn^4>YY}Y)JWl##ILnb9#WZqj7Z9iq#HoZDpWuVfiZlyl~0XUW>>> zDMC$f$Sr9H{1u4+;ho0FkqpX?noM>Pk8jYv;DkJPl}@zAsKZS5FP6gT>Fyr1C*NX3 z3^SX5_Z06dQmwpeF1h|<+;cgxW*D)w+? z)o)RLGX6n*Lg#x8&1n@Bv$l&*{bVe3#2|7n$w63$agB;v2#vF{0#;Ue^16)TVq*G= z5YVl*B(3!i2D^NEs3UMjF>D@_6)-r#U+?*>mrM)Yl`R;$L+$eP8!5abcM0}Tg3O3` zw3c*ynW1wZl9gerJHK$jp-Zi6x@=Wrl>waO-fRq2WAA+?b|enBV%e$Q1`; z-jP*RNkOaihn|;k(cYGfuPu+@{hh-*nA9LP0AL>ba}xJI6jwuJKHk|M4L7^`ST^eF z3P|L-qA@wM-<0BMG6T9mt3sFS3XnSfw>GYx*a_r#`V+vyu<|-nt+*5)w+-8G+Cx}r zzNC;)%!qy7k`D~^n=y?)v4Z&+48aVmwb)F$_o0RxncE_fpFm4sjn2@JQy_%qjr>?n zJ_2=1n+o{~)FgUyOmvlKRh01VQ@ z_YH&%I5p@E+FIubp~4em6i$ISOkoh?P!rQ{$ZdH$)qgJKWt_#}{V6O0$!hO&e>|C1 zk$904w?%TODU-{|UMuQJiA6D(l){~f{CF|j0UW8Qz}u_IGQ9u?zQ;W?fYQ(EmltTv z?eLT$KVCO=-Fm&?UJ=$!CxvW2AY?NyQCsB4Q=!3cdynVg@z|g^VFr+H!8{Cf8(trQ@{?>mxAU72jrU2w$dg z(x{LE{995mGV-x0dbz+DoPMn~nABn=3qikhI*%8V@aw@(U?hbcYU*gZxn5lnn4TW( z=M(*KLSa!zC=$>>i2{leVBK5G3pvb`sR;t(mXKm|$re z@e9u9D#B)z(!k#9YvgJmlwcD_3b9&f(f9z3bF#m;6h&arB@ciq z1~a2^GYr$a^_8IfHkk1@b8|_e9l`}8!4d>KH8YCR_@?G{P%n`HRgRd1HZkcG>K)QTW&@<;1!j32p6<6DzI+Ui+tu;2%(?v8L$cnt6!L3QP_XzfSeZ zw{m6cIcqLUXu)=`9nr1e&#>cJKA-rcu1 zJ?yRgVXU&x$0nq))x*ow$Hrq(9qug3qwuQSG46shY}Bbk7s}mG4SKFA=Q|{~ZEoUb zQ+jD_i}yY+N<`w00cxDEL5HHn6nvj2$hQnMNZcGoj$Y(STL_Fjdf~jCQ!C#Y9~hHU z>8YmuD18%yR-Esd961>dCIp@2o>12%Imua!SVfUm6m@cOA_q9e>dwSc`f6bj%qRwZ zgviKYinWw3H{Qs?LP~rQljsU>IhMFDJ0y$oIsMw|J-qyxdhiphr5g^kI~(Tj0ip*S z;)psO0T`TDOxQ2l$2_MzB@##E13}NTS`R00`hERg6#5rNx=nYtJ9JLv#V@HfYe&n(wCEFDPqSVo;yh3D7i`pobQ9fV#;HVNVR08 zE_kiLo`3l{af&3lN+`=Jcp-M*Gw?D~ex9X9{0Ac6L-(5}_Y`i18_99;=Y3&%^BlqS zCr!AUKQ?Iexev(dHA{vzK<)ct#1J3(K|Z(cgO;=hTUotzdIX8kX5`_UY#Nb}pxy;_ znF=J?t7KkC_fvYj>!jNETvUHp+lkYecs<4jcff+0MNzRXqA14Yy;^9OZS%~bie;d!OR|%fP_7|Rvd&~tp&`xaY94!-RPLm-&*ML z3+AR=3)iv6cMlE@=H{|)c)L|!e7Ig#Cv2Ucx9g0#d;YSKP$I3@p3#0Ghly{+u+nl4 zRsTJp?c&=viAg&T843enQ+;r4CXwr<@uG0~NUzVc?H>MHwG-{hb8~a=Y99%cOpw*Y zFy2xU2ftyD@9ixNNS(jCxq)U46LtTzzbs9pwWA3L8qMW^1p95TuT(bpT7D)c2@ zPV*EG?`U(RNW{%{qIk9`Ta_Le?}{!YLE(FCXETtp2J~sm;u00KWZDDKc8*5}2Os;} zs<5)xzI>s`Y-(LpCoInRfp&Yao+{9rB;?1=tkzh0auo+o4ParUek2WVNsG@}CkeoL zS!rczZO+HZKaMQU@#WEg8^~;3j+8mChYg6+!Q&^B{loR{@5BlUGV&g%qlqnE$)#qd zFFkmHiF)t8J5@z~J6t-@b`$AxkUvBUSzUQGQ*NG?wW_|AR&i`?W7Bhee(UTE=}We$ z_d0!5hl=d$?1&Cv{88$2J)wP@=+H<7y4pTopGXm_FZaIe4J62UvL1}Fak|naGnW6t`EU3SjzqmZzWU;>`rdk}o3C^Qqp-F6>fx!@YGKvio3QE_T<>>i<%gX+E7DvY88*RUo?An0=+aN55f#3cz+-JrN6J!?qX6D{og_T{W_wJ_BMv9T%7( ztSL#p^?EU!b||{Dpd<4Zq7j<_!sSq{vGG4@_Vd{k!ngXc-p`g#IAQ38@b?eyAl7Hq z)t&of5HChddMVgHP@Ea?H%2r*Mw$MeU9u?+)t;ex94kyZXfInMD5%avW+j2w4-9r$ z3C##-n%gBOh`k?95i4-pM+m*`H(PmHf*Ma0gII}>kTqDt2H~WsAMBkk4lGz}>WTxW znM#Q``JXVOc6P+mr`3`K!|Go9zyD}AO{H~e+&YqDv~a4bdKOG)b9N!=`>^Bkdtc1L zZmqr}D;51N5w!*o-Cy6{-Bs-`4>@c;QS&`sE7`aPlScL*SqF+{;yXsmqF^qHdNNzI zy4o`zY4IXP%S=VoPesZXccF&eAWfr> z*fcZgZH4_e8UEF(E%}tX6Qn0c@p~4Yo}<|+uUqV%CG7$exS4e+e?21lhD;mBCeq0kT4DOw!p?B>zSD1petMiAJG3l`TC|nx6dz7LAje2i1q!(Yk_*dMVWV?Ek2Ji zVCE5~AJ&pjKh9uO=klu362v((NksTKZbZGLr69-x04hzYDb7#~ZG$y1Kf(S_Dfw$m`u{8Pm)$$O zTWWEm&pagTp8T(R_TR2}h^+J{W10K{t8{w}4J z1%6(kc(6ds1*qU3g>uX7TJdHXZhl!AmZ{N&BTZS^Pnvna==Cf{5abRX!~qI$kY%TA z2Iv(+Gf#U#6lnGpyp*Zz>Q^@~MJY^WU}otmL|l-T8%jz_?2eDvKH%_bqnQ(QhOjaw z5YJHd10=H9c@Wf#<7|*?HdI}o`#;}CR*5;?f?mq{B98N5C5>S4;fAV#0qvBMM$3Qi mh|EtiSK=2O%U|$@n!C|y36m|D3ix9MO-W8wwpiNO|GxmIgrw&H literal 0 HcmV?d00001 diff --git a/docs/dev/uml/objects_comment.puml b/docs/dev/uml/objects_comment.puml new file mode 100644 index 0000000..42b7b7d --- /dev/null +++ b/docs/dev/uml/objects_comment.puml @@ -0,0 +1,13 @@ +@startuml + +object Repairer +object Organizer +object Device +object Comment + +Comment *-- Organizer +Comment *-- Repairer +Comment *-- Device +Comment -- Comment + +@enduml \ No newline at end of file diff --git a/docs/dev/uml/objects_consultation.png b/docs/dev/uml/objects_consultation.png new file mode 100644 index 0000000000000000000000000000000000000000..002d44410ed2559076951036c95409fffadf5c10 GIT binary patch literal 9432 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 Jht#Lw{{juMPk8_U literal 0 HcmV?d00001 diff --git a/docs/dev/uml/objects_consultation.puml b/docs/dev/uml/objects_consultation.puml new file mode 100644 index 0000000..95b4b3d --- /dev/null +++ b/docs/dev/uml/objects_consultation.puml @@ -0,0 +1,16 @@ +@startuml + +object Guest +object Repairer +object Organizer +object Device +object Comment +object Consultation + +Consultation *-- Organizer +Consultation *-- Repairer +Consultation *-- Device +Consultation *-- Guest +Consultation -- Comment + +@enduml \ No newline at end of file diff --git a/docs/dev/uml/objects_other.png b/docs/dev/uml/objects_other.png new file mode 100644 index 0000000000000000000000000000000000000000..34f59f1a27fceacf3522a9bc1a4cd912fa3bc486 GIT binary patch literal 16207 zcmc(GWn9%;w=PHuQX(zgjUXZ2As`^#-Cc_YK~hS(M7p~q7L7=UbS+YP(aj?6pZ)HA z&e`{#@7E84{^pu%%n{ERb39{4D1VT_KqE$jgM-76la>4k2M0d^{CuDcNU z!RRKX>}GC8Vd6z$<>uzZ&(7{-XYAnSZg0nC>S&L{@$NOS zi<`BYmfJu74+jryTM(|c1S!B%&77DOgrxhsY@QBNW2k}Mq zP(&@dGE;64ccbPqL~PLbhIU!OyLa>~Y*?d7YqyE@hfuQ4B!3eNQ}paLwxEp=qB~yW z;U#K+e9jS{H2!`DY?`1BLipbDP)3oO2U0Og%JkFN){2P44rW_09b-?T3}^=V&%{D^ zqt^LQ!Nc0t9}Xjp{NDz{5I<5L1Y$T39mFg_qX+c`0yo!3j%pHzx=*_chT||2T_^ew zL#Z#(U;Y?Moh@!Hhl3L`mXj1y^E5cfe6EM54(n5?n_A{Y!c%b`l+^>!qbkwH?@!a>^i_m-zGC*8$#Fhd0YU zj+Pd;vW;sd?*~joJ9B0YV495%W9_Gdk%xyO^1NT`*LqM4Iv$GZvw9ikFP0AfY;P0b zfY1Tj1ZMCxV(tL2olm<%P;;?l>&Iph(^E4cCU@C3cHGv92;ry27) zvv}VaS3jC55Gi>w;g6qZb~RN9ad2>0US7^_<=75+&OUF5noIL^6slTu4R!YlpR4U+ z7u)@cOaaXor2L)Z$4EXt8R_W^E%$3ZB*ul$>o$^@x4C(i^Y4g=mO-E`X=x#!%e%0O zgZhaHCzBgxK4+8266=l+nf$*WRVKDZGri7tJSP0pUh=Gj4MPL6W~ZEs7I*aBOD>C6buGdd z$RYNN?fG}6zoK5C3m9m6(_$ z+sYHtg2@(Ni-Gj@^aO>3jJq?ElBE8JHs9XEt_DUhvhOS`Bqk@@ie2R7cD_>H?_M%8 zZkM>YoHpZ7D-@(?YkOf>G`RV+d`%%>fTaG|{_gW5hf;ch-I_Cn#lk?h8!$F^AmDG+ zLu_|=5$koezC{XN_uWYJgDY(?SN#?@WCVWqJ;Z?B%ZrPHb<_|C$oGQ5nwp{_rAOY^ z8>(oShKYK@>P8}XLvI(8z-DjG7G8$dMixI$)DM=dgnmrUA~!Rc0GI9&CmMQNGYFm0 zE)*3SWDjy26j*|loj}VsJ1Ua$L#%ugDQdd8oo24vqjwjYDApZIw2^7E$sCFLl8QiV z(4Y;n&B>6D@PX{OUR@qNTKtM?6g9TB&2wB9G&enCgDg+DP`NwIcAKovRLC=m>@=jL zs7gpEfPQpjW;WOJ4JJW;N?!Tjd;9ntAwZPgpWa=Yq9grV0}O27t}dBn&mM)l^My~J zQ98J}NEY&B8l5+!Vb{>2MRMU*=eg=Yz==}Wv*fd)F;MvsRYxoJvxo%e5Zf78V_eJ$ zhF2ab+#!c$RqZ=#zx^SV|JNy4YRk$QbH4|1|8pz`aAFRW%I29l0VPg4lvtJ$B2D^_ z`hw#j!}l@S0=ITkpUG7~ILiQT$TG}J<-IT`SR)1WoA39-$B6x+-m$G=_}≪rdTgf;v%u@E>z$LqGoWJ&5Khod1hFV)F&S7pdSr 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 literal 0 HcmV?d00001 diff --git a/docs/dev/uml/objects_other.puml b/docs/dev/uml/objects_other.puml new file mode 100644 index 0000000..2688d34 --- /dev/null +++ b/docs/dev/uml/objects_other.puml @@ -0,0 +1,19 @@ +@startuml + +object Guest +object Organizer +object Repairer +object Device +object Appointment +object Repair_Cafe + +Repair_Cafe *-- "happens during" Appointment +Repair_Cafe -- "organizes" Organizer +Repair_Cafe -- "attends" Repairer +Repair_Cafe -- "visits" Guest +Repair_Cafe -- "is fixed" Device + +Guest -- Organizer +Guest o-- Device + +@enduml \ No newline at end of file diff --git a/docs/dev/uml/test.png b/docs/dev/uml/test.png deleted file mode 100644 index 50383a7fe3431339372a4867edb3cda612b56d75..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10338 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 literal 0 HcmV?d00001 diff --git a/docs/dev/uml/users.puml b/docs/dev/uml/users.puml new file mode 100644 index 0000000..7fc9a09 --- /dev/null +++ b/docs/dev/uml/users.puml @@ -0,0 +1,14 @@ +@startuml + +object User +object Guest +object Member +object Organizer +object Repairer + +User <|-- Guest +User <|-- Member +Member <|-- Organizer +Member <|-- Repairer + +@enduml \ No newline at end of file diff --git a/docs/dev/users.md b/docs/dev/users.md new file mode 100644 index 0000000..e76cade --- /dev/null +++ b/docs/dev/users.md @@ -0,0 +1,9 @@ +# Users + +Repapp distinguishes two user categories. + +A *guest* is a owner of an device. The *guest* is booking a repair appointment to get support from a repair café member to fix his device. + +A *member* can be an *organizer* or a *repairer*. A *organizer* is taking care of arranging the repair assignments, and needs to access the private contact data of a guest to do this job. A *repairer* is supporting the *guest* in fixing his device. The *repairer* only needs the details of the device in advance, but not the private contact data of the guest. + +![Users](uml/users.png) \ No newline at end of file diff --git a/mkdocs.yml b/mkdocs.yml index 9a81e06..2a4f373 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -9,6 +9,9 @@ nav: - Daten-Modell: 'models.md' - 'Developer documentation': - Overview: 'dev/index.md' + - Users: 'dev/users.md' + - Objects: 'dev/objects.md' + - Stories: 'dev/stories.md' - 'Repair-Café & Makespace': - Repair-Café: https://www.repaircafe-hilpoltstein.de - Makespace: https://makes-hacks-hip.de