A little Mailing client-server system, fully developed on Java!
Not really good looking ( I'm bad on "frontending" :( )
The entire application is divided in 3 modules: client/
, server/
and common/
.
The code inside the first two is structured following the Model View Controller(MVC) design pattern.
In client/
,
- Model: contains the Mail list of the currently logged in user, recovered from the server
- Controller(s): handles the different GUIs (show current mail list, write new mail, show a single mail)
In server/
:
- Model (
Mailboxes.java
): handles the Mailboxes of the various users. - Controller (
ServerLogController.java
): to handle the incoming connections and the interaction with the Logging view
The common/ module contains what must be known either to the client and the server:
- Mail: how a mail is composed
- Request: how a request is composed
- Response: how a response is composed
- Requester: the only class which is responsible to interact with the server, by forging properly formatted Requests and handling the Responses. The multithreaded aspect is handled by using the
concurrent
module offered by JavaFX (ScheduledService
,Service
andTask
). - Mailboxes: holds the core of the server side application, particularly enforcing encapsulation by hiding the
Mailbox.java
class
- Model View Controller (MVC)
- Observer-Observable
- Singleton
- JavaFX
- OpenCSV
- SceneBuilder