Skip to content

Implementation of Client-Server multichat with registration, chatrooms, messages history

Notifications You must be signed in to change notification settings

dpoliwhi/Multi_User_Chat

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

drawing

Multi-user Chat

Implementation of a full-scale, multi-user chat with registration, chatrooms and message history

The app allows you to start the server, connect multiple clients in different chatrooms and chating

Architecture

The general architecture of the program is based on the Client-Server pattern, every client starts in multithreads mode and has a console interface.


Technologies

  • The application is coded in Java 8, run with Spring Boot, configurated with Spring Annotations;
  • Users, Messages and Chatrooms are stored in DataBase PostgreSQL;
  • Work with DB implemented through Jpa Hibernate;
  • Project assembly implemented on Maven;
  • Clients starts in asynchronous multithreads mode;

Registration

drawing

The app allows you to create new account or enter in existing account.
Every password is encoded with PasswordEncoder from Spring Security.


Chatrooms

drawing

After registration every user can choose the existing chatroom and join to other clients in this chat or can create his own chatroom.


Chatting

drawing drawing

Every user can see only messages from current chat and send messages to this chat


Message history

drawing

If user was in current chatroom and chatted with friends already, after sign in he get the latest 30 messages from this chat


Run programm

To run the server you need to specify a specific port and run the server program with arguments like this:

--port=8000

To run each client you need specify arguments like this:

--server-port=8000

About

Implementation of Client-Server multichat with registration, chatrooms, messages history

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages