Nodojo General Functional Requirements
Here is a brief bullet list of requirements for nodojo
- messages beginning with ‘/’ are server commands
- /help – show available commands
- /motd – show message of the day
- /join <channel> joins or subscribes to a room of the specified name
- /part <channel> leaves or unsubscribes from a room of the specified name
- /who <user> show information of the specified user (username, connection time, last message time, room subscriptions)
- /topic [channel] [text] set the topic of the specified room
- /list list of existing rooms with the number of users in the room
- /msg <user> sends a private message to user
- /nick <new user> sets your name to new user name
- the message of the day can be set in a text or config file
- when connecting to the server, the client must provide a username for the user
- username must be globally unique
- if the submitted username is already in use, the connection is terminated with an error message
- usernames must be alphanumeric, beginning with an alpha, and 32 characters or less
- during initial connection, the client receives the message of the day
- during initial connection, the client receives the help message
- the client can get a list of available rooms
- the client can join an any room
- if the client joins a room that doesn’t exist, it is created
- when a room has zero users, it is destroyed.
- a client can be in any number of room at the same time
- room names must be alphanumeric, beginning with an alpha, and 32 characters or less
- room names are designated by a ‘#’ pre-pended to the name
- when a client joins a room, they subscribe to all messages and notices sent to that room
- when a client joins a room, they get list of all other room subscriber’s usernames
- while a client is subscribed to a room, it is notified of all joins and parts of other subscribers
- while a client is subscribed to a room, it is notified if a subscriber changes it’s user nick
- messages come from users/clients, and contain the text of the message and the intended room to receive the message
- when sending messages to clients message contain the text of the message, the indended room to receive the message, and the username of the client that sent the message.
- clients must be subscribed to the room to send a message to the room
- notices are server-originated messages sent to the client, like help text, and not from a user
It’s very IRC-like