From 186285eaf6af17c855b40fb4eda2cb0fae4593f1 Mon Sep 17 00:00:00 2001 From: ouafabulous Date: Wed, 14 May 2025 22:33:21 +0200 Subject: [PATCH] UML class diagram for IRC server design --- diagram.puml | 81 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 81 insertions(+) create mode 100644 diagram.puml diff --git a/diagram.puml b/diagram.puml new file mode 100644 index 0000000..b54b12a --- /dev/null +++ b/diagram.puml @@ -0,0 +1,81 @@ +@startuml + +' ======================== +' CLASS: Server +' ======================== +class Server { + - _port : int + - _password : string + - _clients : List + - _socket_id : int + - _fd : int + + + showInfo() : void + + getPort() : int +} + +' ======================== +' CLASS: Client +' ======================== +class Client { + - _id : int + - _name : string + - _registered : bool + - _channels : List + - _banned : List + + + getId() : int + + getName() : string + + isRegistered() : bool + + joinChannel(channel : Channel) : void + + leaveChannel(channel : Channel) : void + + sendMessage(to : Client, message : string) : void +} + +' ======================== +' CLASS: Channel +' ======================== +class Channel { + - _name : string + - _password : string + - _owner : Client + - _operators : List + - _socket_id : int + - _topic : string + + + getName() : string + + setTopic(newTopic : string) : void + + addOperator(client : Client) : void + + removeOperator(client : Client) : void +} + +' ======================== +' CLASS: Commandes +' ======================== +class Commandes { + - _form_user : Client + - _to_user : Client + - _channel : Channel + + + MODE() : void + + KICK() : void + + INVITE() : void + + TOPIC() : void + + JOIN() : void + + PRIVMSG() : void + + LIST() : void + + PASS() : void + + NICK() : void + + USERNAME() : void +} + +' ======================== +' RELATIONS +' ======================== + +Server "1" o-- "*" Client : _clients +Client "1" o-- "*" Channel : _channels +Channel "1" *-- "1" Client : _owner +Channel "1" o-- "*" Client : _operators + +@enduml \ No newline at end of file