implement application project - (Java project)

Job ID: 30752619

Budget: $30 – $250 USD

Overview:
There is a contract between AOU training center and a famous company to train the employees
of the company. Each department in the company will offer some sessions for its employees to
register in.
In this TMA, it is required to help the head of AOU training center implement application to
keep track of the sessions and employees registered in.
Requirements:
After a quick meeting with the head of AOU training center, you got the following information:
 It is required to store the whole data (all sessions of all departments) in one collection.
 Each session has a unique title, a lecturer and will be given to a specific department.
Employees could be added or removed from a session within a given limit for the maximum
number of employees who could register in the same session (where this limit is fixed and
unified for all sessions). Furthermore, there are other attributes (add at least one attribute
from your choice).
 Each lecturer has a unique ID, a name and other attributes (add at least 3 attributes from
your choice). He/she could give more than one session.
 Each employee has a unique ID, a name and cannot register in a session not given to his/her
department.
Moreover, you have been informed that the following operations happen frequently:
 Creating a new session
 Adding an employee to a specified session
 Removing an employee from a specified session
 Retrieving the average number of employees per session of a certain department
 Displaying all sessions in a format similar to the following:
department1: sessionTitle1, sessionTitle2, …, lastSessionTitle
department2: sessionTitle1, sessionTitle2, …, lastSessionTitle

where departments and sessions are sorted in ascending order
 Saving all the sessions into a text file
Analysis:
Q1: There are common attributes and methods between employees and lecturers. What is the
best choice for designing and writing the codes of these two classes? Explain your answer.
Q2: Draw a simple class diagram showing only relationships between the classes.
3
Implementation:
After analyzing the given requirements, implement the required application:
 with Object Oriented Programming style
 following the rules of good programming style (e.g. adding comments, etc.)
 using only the material covered in M251 (and its prerequisites)
Hints:
 For each class, it is required to implement constructors, setters, getters, toString() method,
and any other necessary method
 If the user tries to do an operation that could violate the state of objects, the operation
should be ignored and the application should display an error message (e.g. adding an
employee to the same session twice, etc.)
 Checking equality of any 2 objects should be done via the equals() method
 There is a class that will do the main job of keep tracking of the sessions as follows:
o It has one collection to store the whole data (all sessions of all departments)
o It has static methods, one for each operation happens frequently
o For each adding or removing operation, a message should be displayed to the user to
explain the status of the operation (i.e. if it was successful or not)
Testing:
After implementing the required classes, design and implement a testing class to test them as
follows:
 Create at least 7 sessions for at least 3 departments and add them to the collection that
stores the whole data then add and remove some employees from them.
 Try to violate the state of the objects and show that your code prevents all violations.
 Show that the other operations that happen frequently are working fine.
 At the end, the whole data should be saved into a text file and this file should be saved
automatically inside the folder contains your Java project.