Skip to content

A little Mailing client-server system, fully developed on Java!

Notifications You must be signed in to change notification settings

stefanodevenuto/MailingSystem

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

29 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Mailing System

A little Mailing client-server system, fully developed on Java!

GUI

Not really good looking ( I'm bad on "frontending" :( )

Client

Client View

Server

Server View

Architecture

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

Most important classes

  • 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 and Task).
  • Mailboxes: holds the core of the server side application, particularly enforcing encapsulation by hiding the Mailbox.java class

Pattern Used

  • Model View Controller (MVC)
  • Observer-Observable
  • Singleton

Technologies used

  • JavaFX
  • OpenCSV
  • SceneBuilder

About

A little Mailing client-server system, fully developed on Java!

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published