Harmony is a network-based application that functions as both a chat server and a chat client. The server can accept multiple connections from clients. The client is GUI based built using JavaFX. We found this project to be enjoyable because we were able to apply concepts learned from the class (e.g. - socket programming, multithreading, etc.) to a project that interested us. Inspiration for this project came heavily from Discord, which is an extremely popular communication platform that we use very frequently
- Minimalistic & responsive UI
- Per client message color and message font
- Command system (/list, /msg , /time, /date, /ping, /quit)
- Clone the repository
- Run ChatServer.java
- Run ChatClient.java (run multiple times for multiple clients)
- Matt Lefebvre
- Kevin Zhao
- Kurose, James and Ross, Keith. Computer Networking: A Top-Down Approach, 7th ed
- https://docs.oracle.com/javafx/2/layout/builtin_layouts.htm
- https://docs.oracle.com/javase/8/javafx/api/javafx/scene/control/TextField.html
- https://docs.oracle.com/javase/8/javafx/api/javafx/scene/control/Label.html
- https://docs.oracle.com/javafx/2/threads/jfxpub-threads.htm
- https://stackoverflow.com/questions/44419437/how-to-get-view-to-fill-remaining-width-in-jav
- https://docs.oracle.com/javase/8/javafx/api/javafx/scene/control/ListView.html
- https://reflectoring.io/processing-files-using-java-8-streams/
- https://stackoverflow.com/questions/31531059/how-to-remove-close-button-from-tabs-in-javafx/31531171
- https://stackoverflow.com/questions/3422390/retrieve-only-static-fields-declared-in-java-class
- https://stackoverflow.com/questions/2836646/java-serializable-object-to-byte-array
- https://www.geeksforgeeks.org/serialization-in-java/
- https://docs.oracle.com/javase/7/docs/api/java/io/ObjectOutputStream.html
- https://docs.oracle.com/javase/7/docs/api/java/io/ObjectInputStream.html
- https://docs.oracle.com/javase/7/docs/api/java/lang/System.html#arraycopy(java.lang.Object,%20int,%20java.lang.Object,%20int,%20int)