commit a4ad435432901d6006c68869ca447f7a3b60aa81
Author: Debucquoy <debucqquoy.anthony@gmail.com>
Date:   Tue Nov 21 16:04:18 2023 +0100

    First use_case proto

diff --git a/Documents/proto/messaging_extension/Makefile b/Documents/proto/messaging_extension/Makefile
new file mode 100644
index 0000000..99759d4
--- /dev/null
+++ b/Documents/proto/messaging_extension/Makefile
@@ -0,0 +1,26 @@
+.PHONY: all clean run
+
+all: extension_messagerie.pdf
+
+%.pdf: %.tex
+	pdflatex $<
+
+extension_messagerie.pdf:use_case_messagerie.tex extension_messagerie.bbl extension_messagerie.tex 
+	pdflatex extension_messagerie.tex
+
+use_case_messagerie.tex: use_case_messagerie.uml
+	plantuml -tlatex:nopreamble use_case_messagerie.uml
+
+extension_messagerie.bbl: extension_messagerie.bcf
+	biber extension_messagerie
+
+extension_messagerie.bcf:
+	pdflatex extension_messagerie.tex
+
+clean:
+	latexmk -C
+	rm -f use_case_messagerie.tex
+	rm -f extension_messagerie.{bbl,run.xml}
+
+run: extension_messagerie.pdf
+	xdg-open $<
diff --git a/Documents/proto/messaging_extension/README.md b/Documents/proto/messaging_extension/README.md
new file mode 100644
index 0000000..02b66a4
--- /dev/null
+++ b/Documents/proto/messaging_extension/README.md
@@ -0,0 +1,16 @@
+# Proto messaging extension
+
+This is a prototype document for the use case.
+
+## Build
+
+these utilies should be installed on your machine.
+- pdflatex
+- plantuml
+- bibtex
+
+To view the document you should run :
+
+```
+$ make run
+```
diff --git a/Documents/proto/messaging_extension/extension_messagerie.tex b/Documents/proto/messaging_extension/extension_messagerie.tex
new file mode 100644
index 0000000..16d8fe0
--- /dev/null
+++ b/Documents/proto/messaging_extension/extension_messagerie.tex
@@ -0,0 +1,98 @@
+\documentclass{article}
+
+\usepackage[utf8]{inputenc}
+\usepackage[T1]{fontenc}
+\usepackage{amsmath, amsfonts, amssymb, amsthm}
+\usepackage{tikz}
+\usepackage{biblatex}
+
+\author{Debucquoy Anthony}
+\title{Extension messagerie}
+
+\addbibresource{references.bib}
+
+\begin{document}
+
+\section{Use case diagram}
+
+
+\begin{figure}
+\resizebox{345pt}{!}{
+	\input{./use_case_messagerie.tex}
+}
+\caption{Use Case Diagram of the messaging extension}
+\label{fig:useCase:msg_ext} 
+\end{figure}
+
+In the diagram Figure~\ref{fig:useCase:msg_ext},
+the <<extend>> definition is not pulled from the "Genie logiciel" course
+of the University of Mons (UMONS). It is in fact the definition from
+the Dan Pilone's pocket reference \cite{Pilone2006-fn}.
+
+\subsection{Answer topic}
+
+The user should be able to answer to a topic created by a teacher.
+This answer will depend on the type of topic. The answer could be a selection on a poll,
+a private answer (which mean that the answer is not visible to the other users except to the professor).
+The answer could finally be a basic answer to the topic and be visible to other users browsing the topic.
+
+\subsection{Create discutions}
+
+The user can select multiple users and group them into a discussion.
+In this discussion, users will be able to exchange messages readable by
+every other members of the discussion
+
+\subsubsection{Send messages}
+
+Allow the creation of a message in a discussion.
+The text sent to others shall be received by other users
+and these users shall be notified of this message by the notification
+system.
+
+\subsection{Ask appointment}
+
+A student can ask for an appointment to a teacher.
+In this request, the student will have to give a date, a time
+and a subject he want to propose to the teacher.
+
+\subsubsection{Export to calendar}
+
+When an appointment is made. The program can export the event
+to an open format that can be read by calendar software to add
+the event to the user's calendar.
+
+\subsection{Manage appointment}
+
+When a teacher received an appointment, he is able to
+validate, deny or propose a new appointment schedule to the
+student.
+
+\subsubsection{Propose new appointment}
+
+If the teacher can't attend to an appointment because of his
+schedule, he can make a new time proposal and send it to
+the student. The student then receive a notification of
+the proposed modifications.
+
+\subsection{Create forum}
+
+The teacher can create a new forum under a specific course
+The new forum will then make every student of this course
+follow the forum and its topic.
+
+\subsubsection{Post topics}
+
+The teacher can post a new topic inside a forum to let 
+the student know of something specific or to ask a question to
+them.
+
+\subsubsection{Post poll}
+
+When posting a topic to a forum, the teacher can choose to
+make the post as a poll. In that case, student will have to vote
+for one of the options or if allowed by the teacher, create a new option.
+
+\printbibliography
+
+\end{document}
+
diff --git a/Documents/proto/messaging_extension/references.bib b/Documents/proto/messaging_extension/references.bib
new file mode 100644
index 0000000..2f50877
--- /dev/null
+++ b/Documents/proto/messaging_extension/references.bib
@@ -0,0 +1,9 @@
+@BOOK{Pilone2006-fn,
+  title     = "{UML} 2.0 Pocket Reference",
+  author    = "Pilone, Dan",
+  publisher = "O'Reilly Media",
+  month     =  mar,
+  year      =  2006,
+  address   = "Sebastopol, CA",
+  language  = "en"
+}
diff --git a/Documents/proto/messaging_extension/use_case_messagerie.uml b/Documents/proto/messaging_extension/use_case_messagerie.uml
new file mode 100644
index 0000000..d0d4b8b
--- /dev/null
+++ b/Documents/proto/messaging_extension/use_case_messagerie.uml
@@ -0,0 +1,39 @@
+@startuml
+
+left to right direction
+
+:Student: as s
+:Teacher: as t
+
+
+package "Messagerie"{
+
+(Answer topics) as at
+(Ask appointement) as aa
+(Create Discution) as cd
+(Create Forum) as cf
+(Manage appointement) as ma
+
+s -- at
+s -- aa
+s -- cd
+
+t -- cd
+t -- cf
+t -- ma
+
+(Export to calendar) as etc
+
+aa <-- etc : << extend >>
+ma <-- etc : << extend >>
+
+(Post topics) as pt
+cf <-- pt : << include >>
+pt <|-- (Post poll)
+cd <-- (Send messages) : << include >>
+
+ma <-- (Propose new appointment) : << exlude>> \n [refuse]
+
+}
+
+@enduml