@startuml

left to right direction

:Student: as s
:Teacher: as t

package "Messagerie"{

(Answer topics) as at
(Ask appointment) as aa
(Create Discussion) as cd
(Create Forum) as cf
(Manage appointment) 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) : << extends >> \n [refuse]

}

@enduml