Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/victorharri-chal/teams

👋 A network project in C whose goal was to reproduce how the application Microsoft Teams works. One of the last project of my 2nd year at Epitech
https://github.com/victorharri-chal/teams

c client-server epitech network second-year-project socket-programming

Last synced: 15 days ago
JSON representation

👋 A network project in C whose goal was to reproduce how the application Microsoft Teams works. One of the last project of my 2nd year at Epitech

Awesome Lists containing this project

README

        

# Teams

## A network project based on the Microsoft Teams application

The purpose of this project was to reproduce how Teams is working and to learn socket-programming.
This network project made us learn about mutli-clients handling or communication protocol implementation.

With our Teams, you can communicate with other users; create teams, channels, threads and replies; subscribe to specific teams you want to have events from and many others features.

## Usage
``` zsh
make
```

- Open a terminal and execute this command in order to run the server on the specified port.
``` zsh
./my_teams_server
```
- Open one other terminal (or many others) and execute this command in order to run a client on the specified IP adress and port.
``` zsh
./my_teams_cli
```
I made this project with 1 teammate :
- [Simon LeFourn](https://github.com/simlf)

## Features
- ``` /help ``` : show help
- ``` /login ["username"] ``` : log yourself to teams
- ``` /logout ``` : disconnect yourself from the server
- ``` /users ``` : display the list of all users using teams currently
- ``` /user ["user_uuid"] ``` : display information about a specific user
- ``` /send ["user_uuid"] ["message_body"] ``` : send a message to a specific user
- ``` /messages ["user_uuid"] ``` : display the list of all exchanges with a user
- ``` /subscribe ["team_uuid"] ``` : subscribe to the events if a team and its sub directories
- ``` /unsubscribe ["team_uuid"] ``` : unsubscribe from a specific team
- ``` /use ["team_uuid"] | ["channel_uuid"] | ["thread_uuid"] ``` : user specify context team/channel/thread
- ``` /create ["team_name"] ["team_description"] ``` : create a new team, you can do it only at root
- ``` /create ["channel_name"] ["channel_description"] ``` : create a new channel, you can do it only in a team
- ``` /create ["thread_name"] ["thread_description"] ``` : create a new thread, you can do it only in a channel
- ``` /create ["reply_body"] ``` : create a new reply, you can do it only in a thread
- ``` /info ``` : depending on context : root, team, channel, thread