- Name: Micha Briskman Email: [email protected] Id:
- Name: Shlomo Gulayev Email: [email protected] Id:
Our program aims to build a program like Messenger, where logged users can chat with other registered users.
First the user needs to sign up to the program.
Then, he needs to login to the program with the password and username
he registered.
Then, the user is redirected to a page called "chatRooms" where a table of all the registered users are displayed to him.
The user can choose which other user he wants to chat with.
Then is redirected to the chatPage with that user.
We added an admin role. Only the Admin user can remove other registered users.
(The admin sees that possibility in chatRoom page).
Removing the user also removes the messages the user wrote and received.
The program has 3 controllers, one for the registered users, the second is for sending the messages and the third one
for rest api for the users.
The program has 2 repositories: userRepository and messageRepository.
We used JPA - mySQL database to store all the registered users, and all the messages.
We used bcrypt to encrypt the users passwords.
We used thymeleaf view engine.
We used bean configuration.
We used an interceptor that handles the sessions and redirecting pages if a user is logged into the site or not.
All of the logic is in server side (validations and extra), except the long pulling in chatPage.
We used thread safe (synchronize) to store the data.
The chatPage is SPA (not redirecting to another page when sending a message).
The tables are created in JPA - mySQL when running the program.
To login with an admin user enter the username "Admin" (capital letter 'A'), and any password.
There are no duplications in the userName.
Password must be at least 6 characters long
Password must contain at least one letter and one number