Skip to content

devmichalek/TerminalTeams

Repository files navigation

ExampleConversation

Usage

Application runs inside Linux Terminal Emulator to:

  • find users on LAN,
  • chat with other people on LAN

TerminalTeamsCommunication

The tmux terminal multiplexer was used to create program interface.

Assumptions

Application was written with the following assumptions:

  • each username is unique per PC's network interface
  • each user in the LAN has the same local time on the system
  • only one user can run an application per IP address interface
  • no centralized server
  • no support for IPv6 and TLS
  • terminal emulator window resizing is not supported
  • ASCII set is the only supported set of characters
  • messages are ephemeral, no storage

Installation

cmake -B build
cmake --build build --parallel 4
cmake --install build --prefix install

Used frameworks, tools and concepts

Debugging

Use Visual Studio Code (with C/C++ Extension Pack extension) to debug unit tests. Specify -DCMAKE_BUILD_TYPE=Debug to generate trace and log files in /tmp directory on runtime.

Test strategy

Application was tested using:

  • Unit tests,
  • Integration tests - so called auto tests,
  • E2E tests - using up to three docker containers and virtual networks,
  • Manual tests - using up to three VMs and virtual networks

Future extensions and support

  • support for other character encodings
  • support for IPv6 and TLS
  • messages rollback after shutdown based on trusted peer (requires TLS)
  • utils unit tests
  • engine auto tests

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published