diff --git a/Documents/proto/general/openapi.yaml b/Documents/proto/general/openapi.yaml index 381b210..2160d74 100644 --- a/Documents/proto/general/openapi.yaml +++ b/Documents/proto/general/openapi.yaml @@ -652,7 +652,7 @@ paths: name: type required: false schema: - $ref: '#components/schemas/Roles' + $ref: '#/components/schemas/Roles' responses: '200': description: OK @@ -1519,6 +1519,7 @@ paths: summary: get a list of article's data tags: - Users + - Guest - Ext (scientific articles) responses: '200': diff --git a/Documents/proto/messaging_extension/ERD.md b/Documents/proto/messaging_extension/ERD.md new file mode 100644 index 0000000..0a4108c --- /dev/null +++ b/Documents/proto/messaging_extension/ERD.md @@ -0,0 +1,87 @@ +# Entity relational diagram + +## Messaging extension + +```mermaid +%%{init: { "er": {"fontSize": 25, "stroke": "black" }}}%% +erDiagram + +%% General +Users + +%% Messages +Discussions{ + Integer id PK + String name +} + +Messages{ + Integer id PK + Integer response FK "Messages" + String content +} + +Discussions ||--o{ Messages: "" +Discussions ||--o{ Users: "" + +Messages o|--o{ Messages: "answers" + +%% Forums +Forums{ + Integer id PK + String name + Integer course FK "Course" +} + +Topics{ + Integer id PK + String subject + String content + Boolean locked +} +Answers{ + Integer id PK + String content + Boolean anonymous + TimeStamp creation_time +} + +Polls{ + Integer id PK + enum PollType +} +Options{ + Integer id PK + String name +} + +Forums ||--o{ Users: "Registered" +Forums ||--|| Teacher: "Owner" +Forums ||--o{ Topics: "" +Forums ||--o{ Polls: "" + +Topics ||--|| Teacher: "Author" +Topics ||--|| Users: "Author" +Topics ||--o{ Answers: "" + +Polls ||--o{ Options: "" + +Options ||--o{ Votes : "" + +Votes }o--|| Users: "Voter" + + +%% Appointments +Teacher +Appointments{ + Integer id PK + Integer teacher FK "Teacher" + TIME sent_time + enum Status +} + +Appointments ||--|| Users: "" + +``` + +Debucquoy Anthony diff --git a/Documents/proto/messaging_extension/Makefile b/Documents/proto/messaging_extension/Makefile index cf0e6b4..7ba3e31 100644 --- a/Documents/proto/messaging_extension/Makefile +++ b/Documents/proto/messaging_extension/Makefile @@ -11,8 +11,9 @@ extension_messagerie.pdf:use_case_messagerie.tex extension_messagerie.bbl extens use_case_messagerie.tex: use_case_messagerie.uml plantuml -tlatex:nopreamble use_case_messagerie.uml -image: use_case_messagerie.uml interaction_diagram.uml +image: use_case_messagerie.uml interaction_diagram.uml class.uml plantuml $^ + mmdc -i ERD.md -o ERD.png extension_messagerie.bbl: extension_messagerie.bcf biber extension_messagerie @@ -24,6 +25,7 @@ clean: latexmk -C rm -f use_case_messagerie.tex rm -f extension_messagerie.{bbl,run.xml} + rm -f class.tex run: extension_messagerie.pdf xdg-open $< diff --git a/Documents/proto/messaging_extension/class.uml b/Documents/proto/messaging_extension/class.uml new file mode 100644 index 0000000..48ef5b9 --- /dev/null +++ b/Documents/proto/messaging_extension/class.uml @@ -0,0 +1,86 @@ +@startuml +title Class diagram for Messaging extension + +package Messages { + class Message{ + content: String + response: Message + respond(User, String) + } + class Discussion{ + name: String + users: ArrayList + invite(User) + sendMessage(User, String) + } + Discussion *-- Message +} + +package Forums { + class Forum{ + name: String + Owner: Teacher + Registered: ArrayList + {static} createForum(Course): Forum + createTopic(String): Topic + createPoll(String, PollType, ArrayList