From abef330bd72a8614f64bddfce51fb63b4fdd9f8c Mon Sep 17 00:00:00 2001 From: Debucquoy Anthony <d.tonitch@gmail.com> Date: Fri, 15 Dec 2023 14:36:44 +0100 Subject: [PATCH] class diagram messaging extension (#13) Co-authored-by: Anthony Debucquoy <debucquoy.anthony@gmail.com> Reviewed-on: https://git.herisson.ovh/PGL/Clyde/pulls/13 Reviewed-by: Maxime <231026@umons.ac.be> --- Documents/proto/messaging_extension/Makefile | 3 +- Documents/proto/messaging_extension/class.uml | 86 +++++++++++++++++++ 2 files changed, 88 insertions(+), 1 deletion(-) create mode 100644 Documents/proto/messaging_extension/class.uml diff --git a/Documents/proto/messaging_extension/Makefile b/Documents/proto/messaging_extension/Makefile index 8bd79dc..7ba3e31 100644 --- a/Documents/proto/messaging_extension/Makefile +++ b/Documents/proto/messaging_extension/Makefile @@ -11,7 +11,7 @@ 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 @@ -25,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<User> + invite(User) + sendMessage(User, String) + } + Discussion *-- Message +} + +package Forums { + class Forum{ + name: String + Owner: Teacher + Registered: ArrayList<User> + {static} createForum(Course): Forum + createTopic(String): Topic + createPoll(String, PollType, ArrayList<Option>): Poll + } + class Topic{ + subject: String + author: Teacher + content: String + answer(User, String): Answer + lock(Boolean) + } + class Answer{ + author: User + content: String + anonymous: Boolean + remove() + } + class Poll{ + options: ArrayList<Option> + type: PollType + answer(User, Option): Vote + addOption(Option) + } + class Option{ + name: String + } + class Vote{ + voter: User + } + enum PollType { + ALLOW_NEW_OPTIONS + ALLOW_MULTIPLE_CHOICE + } + note "Change the behaviour of poll" as N + + Forum *-l- Topic + Topic *-l- Answer + + Topic <|-d- Poll + Poll *-l- Option + Option "1..*" -d-x Vote + Poll *-- Vote + + Poll -- PollType + PollType .r. N + +} + +package Appointments{ + class Appointment{ + date: Date + teacher: Teacher + student: Student + {static} Appointment(Student, Teacher, Date) + accept() + refuse() + propose(Date) + export(): File + } +} + +Appointments -[hidden]d- Messages +@enduml