From 1ccc65a9e7e800b3342b72aed1996307bde84cfe Mon Sep 17 00:00:00 2001 From: Gulliver Date: Sun, 20 Jun 2021 13:48:08 +0200 Subject: [PATCH 1/4] data model adapted to split between user and profile --- doc/source/architecture/erdmodel.plantuml.txt | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/doc/source/architecture/erdmodel.plantuml.txt b/doc/source/architecture/erdmodel.plantuml.txt index e7ffce5..b172e1d 100644 --- a/doc/source/architecture/erdmodel.plantuml.txt +++ b/doc/source/architecture/erdmodel.plantuml.txt @@ -10,13 +10,23 @@ entity "user" as user { *id : number <> -- *nickname : text(25) + *created: datetime + *updated: datetime +} + +entity user_profile { + *id : number <> + *userid + -- pronouns : text(25) fullname: text(100) volunteerwork: text(4000) freetext: text(4000) + *profile_visible: bool *created: datetime *updated: datetime } +user ||-o{ user_profile : user_has_profile entity user_address { *id : number <> From a28bf9676d6ed397e574daadff3640f05edf7fbe Mon Sep 17 00:00:00 2001 From: Lukas Grossberger Date: Sat, 26 Jun 2021 23:28:48 +0200 Subject: [PATCH 2/4] update instructions for build dependencies * typo in sphinx plantuml package name * make python and system dependencies explicit --- README.md | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 93e6e0c..b41eec5 100644 --- a/README.md +++ b/README.md @@ -24,10 +24,13 @@ TBD ## Building -building the ki-doku depends on python, sphinx, -sphinx-contrib-plantuml und plantuml. +Building the ki-doku depends on the following Python packages: +* `sphinx` +* `sphinxcontrib-plantuml` -building/ using the ki-backend depends on python and flask. +as well as the system dependency `plantuml`, which you can get e.g. with `apt install plantuml` + +Building/using the ki-backend depends on python and flask, see the repo's environment specification for details. ## Roadmap From 10002757ab762d0e5dfc4ab7b9da8e97c57cae56 Mon Sep 17 00:00:00 2001 From: Gulliver Date: Sun, 20 Jun 2021 13:48:08 +0200 Subject: [PATCH 3/4] data model adapted to split between user and profile --- doc/source/architecture/erdmodel.plantuml.txt | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/doc/source/architecture/erdmodel.plantuml.txt b/doc/source/architecture/erdmodel.plantuml.txt index e7ffce5..b172e1d 100644 --- a/doc/source/architecture/erdmodel.plantuml.txt +++ b/doc/source/architecture/erdmodel.plantuml.txt @@ -10,13 +10,23 @@ entity "user" as user { *id : number <> -- *nickname : text(25) + *created: datetime + *updated: datetime +} + +entity user_profile { + *id : number <> + *userid + -- pronouns : text(25) fullname: text(100) volunteerwork: text(4000) freetext: text(4000) + *profile_visible: bool *created: datetime *updated: datetime } +user ||-o{ user_profile : user_has_profile entity user_address { *id : number <> From b5e49346eeec1e33e2e6d0e20a0b00fa6a8869e4 Mon Sep 17 00:00:00 2001 From: Gulliver Date: Thu, 1 Jul 2021 09:16:14 +0200 Subject: [PATCH 4/4] profile_visible -> visible moved skill, experience, search_topic into tag and tag_type entity moved relations from user to new profile entity --- doc/source/architecture/erdmodel.plantuml.txt | 104 +++++++++--------- 1 file changed, 55 insertions(+), 49 deletions(-) diff --git a/doc/source/architecture/erdmodel.plantuml.txt b/doc/source/architecture/erdmodel.plantuml.txt index b172e1d..b257dbc 100644 --- a/doc/source/architecture/erdmodel.plantuml.txt +++ b/doc/source/architecture/erdmodel.plantuml.txt @@ -9,28 +9,52 @@ skinparam linetype ortho entity "user" as user { *id : number <> -- - *nickname : text(25) - *created: datetime - *updated: datetime + *auth_id : text(50) +' *created: datetime +' *updated: datetime } -entity user_profile { +entity tag { *id : number <> - *userid + *tag_type_id +-- + *name: text +} + +entity tag_type { + *id : number <> +-- + *name: text +} + +tag_type ||--o{ tag + +entity profile { + *id : number <> + *user_id -- + *nick_name : text(25) pronouns : text(25) fullname: text(100) volunteerwork: text(4000) freetext: text(4000) - *profile_visible: bool + visible: bool *created: datetime *updated: datetime } -user ||-o{ user_profile : user_has_profile +user ||-o{ profile : user_has_profile -entity user_address { +entity token { *id : number <> - *userid + *user_id + -- + *token : text(36) +} +user ||-o{ token : user_has_token + +entity profile_address { + *id : number <> + *profile_id -- street: text(25) house_number: text(10) @@ -39,52 +63,40 @@ entity user_address { city: text(25) country: text(25) } -user ||-o{ user_address : user_has_address +profile ||-o{ profile_address : profile_has_address -entity user_skill { -*user_id: id +entity profile_skill { +*profile_id: id *skill_id: id -- -level: number +*level: number } -entity user_language { -*user_id: id +entity profile_language { +*profile_id: id *language_id: id -- level: number } -entity skill { +entity profile_experience { *id : number <> --- - *name: text(25) -} - -entity user_experience { - *id : number <> - *user_id + *profile_id -- description start: date end: date } -entity user_experience_experience { - *user_experience_id +entity profile_experience_experience { + *profile_experience_id *experience_id } -user ||--o{ user_experience : user_has_experience -user_experience ||--o{ user_experience_experience : user_experience_is_tagged_with - -entity experience { - *id : number <> - -- - *name: text(25) -} -user_experience_experience }o--|| experience +profile ||--o{ profile_experience : user_has_experience +profile_experience ||--o{ profile_experience_experience : user_experience_is_tagged_with +profile_experience_experience }o--|| tag entity user_search_topic { *user_id @@ -92,20 +104,14 @@ entity user_search_topic { -- } -entity user_contact { +entity profile_contact { *id : number <> - *user_id + *profile_id *contact_type_id -- *content: text(200) } -entity topic { - *id : number <> --- - *name: text -} - entity language { *id : number <> -- @@ -118,16 +124,16 @@ entity contact_type { *name: text(25) } -user ||--o{ user_skill : user_has_skills -user_skill ||--o{ skill +profile ||--o{ profile_skill : user_has_skills +profile_skill ||--o{ tag -user ||--o{ user_language : user_speaks_language -user_language||--{ language +profile ||--o{ profile_language : user_speaks_language +profile_language||--{ language user ||--o{ user_search_topic -user_search_topic ||--o{ topic +user_search_topic ||--o{ tag -user ||-o{ user_contact -user_contact ||-o{ contact_type +profile ||-o{ profile_contact +profile_contact ||-o{ contact_type @enduml