Co-authored-by: Anthony Debucquoy <debucquoy.anthony@gmail.com> Reviewed-on: PGL/Clyde#13 Reviewed-by: Maxime <231026@umons.ac.be>
		
			
				
	
	
		
			87 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			87 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
@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
 |