The purpose of this project was to learn network programming, handling multi-clients, implementing a communication protocol. You can create teams, in those teams, you can create channels, in those channels, you can create threads and you can reply to thoses threads.
make- This will run the server on the specified port.
./my_teams_server <PORT>- This will run the clients, you must specify the server IP address and port.
./my_teams_cli <IP> <PORT>I made this project with 1 teammate:
/help: show help/login[“user_name”]: set the user_name used by client/logout: disconnect the client from the server/users: get the list of all users that exist on the domain/user[“user_uuid”]: get information about a user/send[“user_uuid”][“message_body”]: send a message to a user/messages[“user_uuid”]:list all messages exchange with an user/subscribe [“team_uuid”]: subscribe to the event of a team and its sub directories (enable reception of all events from a team)/subscribed?[“team_uuid”]: list all subscribed teams or list all users subscribed to a team/unsubscribe[“team_uuid”]: unsubscribe from a team/use?[“team_uuid”]?[“channel_uuid”]?[“thread_uuid”]: use specify a context team/channel/thread/create: based on what is being used create the sub resource (see below)/list: based on what is being used list all the sub resources (see below)/info: based on what is being used list the current (see below)
When the context is not defined (/use):
/create[“team_name”][“team_description”]: create a new team
When team_uuid is defined (/use “team_uuid”):
/create[“channel_name”][“channel_description”]: create a new channel
When team_uuid and channel_uuid are defined (/use “team_uuid” “channel_uuid”):
/create[“thread_title”][“thread_message”]: create a new thread
When team_uuid, channel_uuid and thread_uuid are defined (/use “team_uuid” “channel_uuid” “thread_uuid”):
/create[“comment_body”]: create a new reply
Check my portfolio for more informations on this project.