Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/pandh4cker/corochat
Whatsapp-Like Application, Chat room
https://github.com/pandh4cker/corochat
chat chat-application chat-room chatroom design-patterns java11 java11-maven javafx javafx-11 javafx-application javafx-desktop-apps jbcrypt junit-5 maven maven-pom mavenw mvc-architecture ojdbc oracle-db singleton-pattern
Last synced: 3 days ago
JSON representation
Whatsapp-Like Application, Chat room
- Host: GitHub
- URL: https://github.com/pandh4cker/corochat
- Owner: PandH4cker
- Created: 2020-04-19T15:54:43.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2022-05-20T21:38:47.000Z (over 2 years ago)
- Last Synced: 2024-08-11T11:46:16.569Z (3 months ago)
- Topics: chat, chat-application, chat-room, chatroom, design-patterns, java11, java11-maven, javafx, javafx-11, javafx-application, javafx-desktop-apps, jbcrypt, junit-5, maven, maven-pom, mavenw, mvc-architecture, ojdbc, oracle-db, singleton-pattern
- Language: Java
- Homepage:
- Size: 60.3 MB
- Stars: 1
- Watchers: 4
- Forks: 2
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# CoroChat
---
## Authors:
[Raphael Dray](www.linkedin.com/in/raphaeldray), [Thierry Khamphousone](www.linkedin.com/in/tkhamphousone)
##### Diane Martin, Alexandre De Sevin, Eythan Dahan, Boris Houessou
---
> This program is a desktop application.
> It integrates the client and the server which are communicating each other through HTTP Routes.
> The client fetches and posts data from/to the server which returns JSON-Encoded responses.
> The client is a Whatsapp-Like application.
> The project was carried out using the scrum method.> It's written in __Java programming language including some libraries like so:__
+ [JDBC Oracle DB](https://www.oracle.com/fr/database/technologies/appdev/jdbc.html)
+ [Java FX 11](https://openjfx.io/)
+ [JUnit 5](https://junit.org/junit5/)
+ [Animate FX](https://typhon0.github.io/AnimateFX/)
+ [JBcrypt](https://www.mindrot.org/projects/jBCrypt/)
+ [Gson](https://github.com/google/gson)---
## Note:
> To be able to launch the LoginView, you must configure javaFX
> Go to: Run > Edit configuration > LoginView > VM option
>
> Inside the VM option text zone in IntellJ, add the location of the javaFX library as the example below:--module-path
/Path/To/javafx-sdk-11.0.2/lib
--add-modules
javafx.controls,javafx.fxml---
## Presentation:
How does CoroChat desktop app works ?
We chose to show an use case where three users will connect and chat together.
> Thierry Khamphousone : Yulypso
> Raphaël Dray : MrrRaph
> Felicia Ionascu : FeliciaIonascu---
### Main menu
Here is the main menu where users can sign in or go to sign up panel.---
### Sign up
Thierry would like to access the CoroChat room. Firstly, he has to sign up.> Check:
> first name: cannot contains number
> last name: cannot contains number
> email: email format without capital letters
> pseudo: Cannot start with a number
> password: must contains at least 1 lowercase letter, 1 uppercase letter, 1 number and 1 special characterPress "Get started to sign up".
If an user tries to create an account with an existing email or pseudo, a pop up appears to alert the user.
> Email already exists.
> Pseudo already exists.
Data are stored in the Oracle Database.
> 3 lines has been added for our three users
> Password are secure thanks to the blowfish encryption---
### Connect from the login view
For an existing account, the user can connect on the CoroChat room from the Login View thanks to his email and password.> If an user with the same email is already connected a pop up appears to alert the user.
---
### CoroChat Room
Our three users are now connected on the CoroChat room. They will now try to communicate through the interface.
> FeliciaIonascu starts by sending a message.
> Then Yulypso and MrrRaph reply.
> You can use emoticon to communicate your feeling like MrrRaph!
>
> FeliciaIonascu wrote something wrong by mistake: "OrientEEEE" and now she is trying to delete the message.Here we can find out that the message has been correctly deleted from the database.
---
### Disconnect
Now the users would like to disconnect from the CoroChat room.> to disconnect, each user has to click on the top right button.
> to leave the app, each user has to click on the top left red button.
> to reduce the screen, each user has to click on the top yellow button.After this, disconnected users are back to the Login panel.
---
### Logger
Within our project source code, we added a logger to log every information, warning or errors.
Here are some examples.> logger in the server INFO
> INFO: information about what happened> logger in the client INFO and WARNING
> INFO: information about what happened
> WARGNIN: Client error> logger in the client INFO, WARNING and ERROR
> INFO: information about what happened
> WARNING: Client error
> ERROR: Databse error---
### Technical debt+ We could not implement the .jar executable from the mvnw script, so we provided it with the IntellJ build.
---
### UML Class Diagram
---
## Last Release Version: 1.0.0
### Changelog:
> #### Version 1.0.0
> Added JavaDoc in files directory
> Added JavaFx into lib directory
> Added client and server artifacts
> Added UML Diagram in the README.md
> Added bash script to run client and server
---
> #### Version 0.0.8
> Refactored modules between client and server.
---
> #### Version 0.0.7
> Added Unit Tests.
---
> #### Version 0.0.6
> Added Logger interface with its implementation for logging information as well as in console and in a file stored on the server/client.
---
> #### Version 0.0.5
> Added JavaDoc inside all the classes
---
> #### Version 0.0.4
> Added client commands for deleting messages.
> Added popup for informing the user when error on the login view.
> Added the Message model for storing messages in the database.
> Added MessageRepository to the AbstractCorochatDatabase.
> Added Dao and its helpers for communicating with the message table.
> Added the button over our own message for deleting them.
> Added methods inside the chat controller for interacting with the other users in case of connecting, deleting, sending actions.
---
> #### Version 0.0.3
> Refactored design colors from linear gradient violet to darkblue.
> Added support for OS validations.
> Added second view ChatView and its ChatController for performing action on the Chat view.
> Refactored LoginController and added connection between the server and the view.
> Refactored MultiThreadedServer class.
> Refactored classes in the data package.
> Added new Index for handling pseudo duplication in the database.
---
> #### Version 0.0.2
> Added UserDao interface containing abstract sql methods to interact with the DB.
> Added DataUserName class containing the names of the user columns and the table name.
> Added AbstractCorochatDatabase defining abstract dao method and connecting the server to the Oracle DB by the Singleton design pattern.
> Added UserRepository in order to interact asynchronously with the Oracle DB for the user table.
> Implemented UserDao and AbstractCorochatDatabase:
> * UserDaoImpl implements UserDao sql methods to interact with the Oracle DB user table.
> * CorochatDatabase extends AbstractCorochatDatabase with a Singleton design pattern and use himself as an implementation for instantiating a database.
---
> #### Version 0.0.1
> Added LoginView fxml created with SceneBuilder 2.0, the design of the Login view.
> Added Utils to handle email validation and password complexity and helpers for JavaFX.
> Added UserModel to instantiate it in further.
> Added LoginView JavaFX java class screen.
> Added LoginController to handle actions on the LoginView.