Skip to content

Client-Server chat app that translate (without reasoning) messages based on chosen languages via a simple map

Notifications You must be signed in to change notification settings

Graffioh/chatlingo

Repository files navigation

chatlingo

DISCLAIMER: This is a toy project

Client-Server chat app implemented with sockets and a TCP connection.

Enter in a room, and chat with others, but there is a catch, based on the room your messages will be translated!

The translation is really basic, because it was not the purpose of this project, the vocabulary is implemented with an hash table to ensure O(1) time complexity for search operations.

User authentication via a simple .txt file.

Everything is multi-threaded, so rooms, multiple clients and inactivity detection mechanism.

Features

  • User authentication
  • 2 Chat rooms (English -> Italian and viceversa)
  • Full room queue and inactivity kick with FIFO order

How to run

Without docker compose

  • Run b.sh (it will compile and run the server)
  • Open a new terminal window
  • Run /client/c (as many as you want)

With docker compose

  • Run docker-compose up server
  • Open a new terminal window for every client that you want to connect
  • For every client run docker-compose run client

Demo

chatlingo-demo2-speed.mp4

About

Client-Server chat app that translate (without reasoning) messages based on chosen languages via a simple map

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published