Download File
Transcript
Field Training Application IST 311 Team 2 Ankit Jain Tommy Demarco Alex Curtis Daniel Campbell Baldwin Luk Implementation Class Diagram View Classes TraineeProgressUI SkillEditUI ManagerMenuUI -parentMenuCntl -parentSkillList -parentTrainerList -parentTraineeList -parentChecklistList -trainerModel -traineeModel -checklistModel -skillModel -masterSkillModel -currentlySelectedTrainer -currentlySelectedChecklist -checklistDescription -skillDetails +refreshSkillTabText() +refreshChecklistTabText() +refreshChecklistList() +refreshSkillList() +refreshTrainerList() +refreshTraineeList() +refreshMasterSkillList() ChecklistEditUI ArchiveViewUI CertificationAddUI TrainingAdminMenuUI FeedbackViewUI -parentTrainingAdminCntl -traineeIndex -feedbackModel -feedbackTextArea +refreshList() +getTrainee() +generateTitleText() +getFeedbackText() -parentTrainingAdminCntl -theTrainingAdmin -theTraineeList -traineeModel -traineelist +viewButtonActionPerformed() +getTraineeName() LoginUI -parentLoginCntl -jPasswordField1 -jTextField1 -parentChecklistEditCntl -skillsModel -incModel -theInputedName -theInputedDetails -index -theInputedSkills -checklistDescription -checklistName -includedSkills -skills +refreshSkillList() -parentArchiveViewCntl -archiveModel -archiveList +refreshList() +getTraineeName() +getTrainerText() +refreshText() CertificationUI -theTrainer -checklistModel -parentCertificationCntl -checklistList -theTrainer -parentCertificationCntl -certificationModel -certificationDescription -certificationListFrame +refreshList() SkillAddUI -addSkillButton -cancelButton -parentSkillAddCntl -skillDetails -skillDetailsLabel -skillDetailsScrollPane -skillName -skillNameLabel -titleLabel +addSkillButtonActionPerformed() +cancelButtonActionPerformed() +initComponents() ChecklistAddUI -parentChecklistAddCntl -skillsModel -incModel -checklistDescription -checklistName -includedSkills -skills +refreshSkillList() -editSkillButton -cancelButton -parentSkillEditCntl -skillDetails -skillDetailsLabel -skillDetailsScrollPane -skillName -skillNameLabel -titleLabel -theInputedDetails -theInputedName -index +editSkillButtonActionPerformed() +cancelButtonActionPerformed() +initComponents() -addChecklistButton -bindingGroup -cancelButton -checklistListFrame -checklistModel -decreaseSkillButton -increaseSkillButton -parentTraineeProgressCntl -skillListFrame -skillModel -theTrainee -traineeLevels +addChecklistButtonActionPerformed() +cancelButtonActionPerformed() +checklistListFrameMouseReleased() +decreaseSkillButtonActionPerformed() +deleteChecklistButtonActionPerformed() +getSkillLevelText() +increaseSkillButtonActionPerformed() +initComponents() +refreshChecklists() +refreshSkills() +refreshText() +setTrainerMode() +skillListFrameMouseReleased() TraineeEventUI TraineeEventAddUI TraineeProgressAddChecklistUI -addButton -cancelButton -checklistList -checklistModel -checklistScrollPanel -parentTraineeProgressCntl -theTrainee +addButtonActionPerformed() +cancelButtonActionPerformed() +initComponents() TrainerMenuUI -trainerListFrame -parentTrainerMenuCntl -traineeModel +viewProgressButtonActionPerformed() +viewEvalButtonActionPerformed() -addButton -addSkillButton -backButton -call -callRadio -eventDetails -eventName -includedModel -includedSkills -parentTraineeEventCntl -removeSkillButton -skills -skillsModel +addButtonActionPerformed() +addSkillButtonActionPerformed() +backButtonActionPerformed() +callRadioMouseReleased() +initComponents () +refreshSkillsList() +removeSkillButtonActionPerformed() -backButton -createButton -deleteButton -editButton -eventDescription -eventListFrame -eventModel -parentTraineeEventCntl -skillList -theTrainee +backButtonActionPerformed() +createButtonActionPerformed() +deleteButtonActionPerformed() +editButtonActionPerformed() +eventListFrameMouseReleased() +getDetailDisplay() +getNameDisplay() +initComponents() +refreshSkillList() +setTrainerMode() TraineeEventEditUI -call -editIndex -eventDetails -eventName -includedModel -includedList -inputedDetails -inputedName -inputedSkills -parentTraineeEventCntl -skills -skillsModel +addSkillButtonActionPerformed() +backButtonActionPerformed() +callRadioMouseReleased() +editButtonActionPerformed() +initComponents() +refreshIncludedList() +refreshSkillsList() +removeSkillButtonActionPerformed() TraineeMenuUI -eventsButton -feedbackButton -parentTraineeMenuCntl -theTrainee +eventsButtonActionPerformed() +feedbackButtonActionPerformed() +initComponents() Controller Classes CertificationCntl -theTrainer -theCertificationUI -parentMenuCntl +add() +deselect() +delete() +setCertifiedStatus() +getCertifiedStatus() +setAlertStatus() +getTrainer() +getChecklists() +openAddUI() ArchiveViewCntl -parentMenuCntl -theArchiveViewUI +getArchive() SkillAddCntl ChecklistEditCntl ChecklistAddCntl -parentManagerMenuCntl -parentSkillList -theChecklistEditUI +getSkillList() +editChecklist() +refresh() -parentManagerMenuCntl -parentSkillList -theChecklistAddUI +getSkillList() +addChecklist() +refresh() -parentManagerMenuCntl -parentSkillList -theSkillAddUI +addSkill() +refresh() TraineeEventCntl -loginType -parentTraineeMenuCntl -parentTrainerMenuCntl -theTrainee -theTraineeEventUI +addEvent() +deleteEvent() +editEvent() +getTrainee() +getTraineeIndex() +openAddUI() +openEditUI() +refresh() SkillEditCntl -parentManagerMenuCntl -parentSkillList -theSkillEditUI +editSkill() +refresh() TraineeProgressCntl -loginType -parentManagerMenuCntl -parentTrainerMenuCntl -theChecklistList -theTrainee -theTraineeProgressUI +addChecklist() +decreaseSkill() +delete() +getChecklistList() +getTrainee() +increaseSkill() +openAddChecklist() FeedbackCntl -theTrainee -parentMenuCntl -theFeedbackUI +openAddFeedbackUI() +openEditFeedbackUI() +addFeedback() +editFeedback() +refreshList() +deleteFeedback() ManagerMenuCntl -theMenuUI -theParentLoginCntl -theSkillList -theTraineeList -theTrainerList -theChecklistList -theSelectedIndex +refreshMasterSkillList() +refreshSkillTabText() +refreshChecklistList() +addCertification() +archive() +addTrainee() +deleteCertification() +deleteChecklist() +deleteTraineeChecklist() +setCertifiedStatus() +setAlertStatus() +increaseSkill() +decreaseSkill() +deselect() +getChecklistList() +getSkillList() +getTraineeList() +getTrainerList() +openCertificationUI() +openTraineeProgressUI() +openMenuUI() +closeMenuUI() +openEditSkillUI() +openAddSkillUI() +openAddChecklistUI() +openEditChecklistUI() +openArchive() TrainingAdminMenuCntl -theAdmin -theTraineeList -parentLoginCntl -theMenuUI -theSelectedIndex +getAdmin() +getTrainees() +openFeedbackViewUI() TrainerMenuCntl -theTrainerIndex -theTrainer -theTrainerList -theTraineeList -parentLoginCntl -theMenuUI -theSelectedIndex +getTrainer() +getTraineeList() +getTraineeIndex() +openTraineeIndex() +openTraineeEvalUI() +increaseSkill() +decreaseSkill() TraineeMenuCntl -parentLoginCntl -theMenuUI -theSelectedIndex -theTrainee -theTraineeIndex -theTrainee -theTraineeIndex -theTraineeList -theTrainerList +addEvent() +addFeedback() +deleteEvent() +deleteFeedback() +editEvent() +editFeedback() +getTrainee() +getTraineeIndex() +openEvalUI() +openFeedback() LoginCntl -currentUserList -theLoginUI -theModelFactory +requestAuthenticate() +login() +openTrainerMenuCntl() +openTraineeMenuCntl() +openManagerMenuCntl() +openAdminMenuCntl() ModelFactory -theAdminList -theArchivedList -theChecklistList -theManagerList -theSkillList -theTraineeList -theTrainerList +initTrainees() +initTrainers() +refreshFiles() Model Classes TraineeList TrainerList -listOfTrainees -listOfTraineesFileName +add() +addTestEvents() +addTestFeedback() +addTestLevels() +archive() +createTest() +getTrainee() +getTrainees() +isEmpty() +printTraineeList() +readTraineeListFile() +size() +writeTraineeListFile() ChecklistList -listOfChecklists -listOfChecklistsFileName +readChecklistFile() +writeChecklistFile() +printChecklistList() +createTestChecklists() +getChecklist() +size() +addChecklist() +editChecklist() +removeChecklist() TrainingManagerList TrainingAdminList -listOfAdmins -listOfAdminsFileName +readAdminListFile() +writeAdminListFile() +printAdminListFile() +createTestAdminList() +getAdmin() +getAdmins() TrainingAdmin -listOfManagers -listOfManagersFileName +readManagerListFile() +writeManagerListFile() +printManagerListFile() +createTestManagerList() +getManager() +getManagers() -listOfTrainers -listOfTrainersFileName +readTrainerList() +writeTrainerList() +writeTrainerListFile() +printTrainerList() +createTestTrainerList() +addTestCertifications() +getTrainer() +getTrainers() +size() +isEmpty() +addTestTrainees() TrainingManager Trainer Trainee Checklist -theSkillChecklist -theChecklistName -theChecklistDescription +getSkill() +getChecklistDescription() +getChecklistName() +getSkillChecklist() +size() -listOfCertifications -listOfTrainees +addCertifications() +getCertifications() +getCertifiedStatus() +getTrainees() +removeCertification() +setAlertStatus() +setCertifiedStatus() -evalList -feedbackList -skillLevels -theTrainer +addChecklist() +addEvent() +addFeedback() +deleteFeedback() +editEvent() +editFeedback() +getEvents() +getFeedback() +getLevels() +getTrainer() +removeChecklist() +setTrainer() User -userName -password -userType +setUserName() +getUserName() +getPassword() +getUserType() SkillList -listOfSkills -listOfSkillsFileName +addSkill() +createTestList() +delete() +editSkill() +getSkill() +printSkillList() +readSkillListFile() +returnSkillList() +size() +writeSkillListFile() SkillLevelList -listOfLevels +add() +decreaseSkill() +getChecklist() +getSkillLevel() +increaseSkill() +isEmpty() +remove() +size() Skill SkillLevel -skillDetails -skillName +getDetails() +getSkillName() +setDetails() +setSkillName() -skillLevel -theChecklist +decrease() +getChecklist() +getSkillLevel() +getSkillName() +increase() TraineeEventList -listOfEvents FeedbackList -listOfFeedback +add() +set() +isEmpty() +size() +get() +remove() Feedback +getText() +add() +remove() +setCertifiedStatus() +setAlertStatus() +getCertifiedStatus() +size() +get() +isEmpty() +add() +get() +isEmpty() +remove() +set() +size() UserList TraineeEvent -feedbackText CertificationList -listOfCertifications -applicableSkills -eventDetails -eventName -eventType +addSkill() +getDetails() +getName() +getSkills() +getType() -listOfTrainers -listOfTrainees -listOfManagers -listOfAdmins -listOfUsers -listOfUsersFileName +readUserListFile() +writeUserListFile() +printUserList() +createTestUserList() +getUser() +getTrainees() +getTrainers() Certification -theTrainer -theChecklist -certified -sendAlert +setAlertStatus() +getDescription() +getName() +getTrainer() +getChecklist() +getCertifiedStatus() +setCertifiedStatus() +getAlertSent() +sendRecertificationAlert() +alertRecieved() Due to the size of the diagram, it has been uploaded in the folder as well. FeedbackUI FeedbackEditUI -parentFeedbackCntl -feedbackIndex -inputedText -feedbackText -theTraine -parentFeedbackCntl -feedbackModel -feedbackTextLabel +refreshList() +getFeedbackText() FeedbackAddUI -parentFeedbackCntl -feedbackText System Activity Diagram Trainee View Control Model LoginCntl Open LoginUI Start FTO app Authenticate User Enter User Name & Password [Authenticated] [Not Authenticate] MainMenuUI Open MainMenuUI Close FTO Display Main Menu Option Make Menu Selection MainMenuCntl [Log Skill Event] SkillEvent Open LogSkillEventUI LogSkillEventUI Display Log Skill Event UI Record Skill Event Add Skill Event [View Skill Event] Open SkillEventUI SkillEventUI Retrieve SkillEvent Display Skill Event Open FeedBackUI FeedbackUI Feedback Display Feedback Input Box Enter Feedback Record Feedback The trainee has skill event(s) to log The trainee wish to view skill event The trainee want to input feedback(s) This activity diagram shows the overall process of a trainee using our FTO application. The trainee will start the application and will be presented with the login user interface, controlled by the LoginCntl class. If the user provides valid login credentials, he or she will be presented with the Trainee Main Menu. If the user cannot provide valid login credentials, the FTO application will close. There are three options in the main menu for a trainee. He or she can either log a skill event, view a skill event, or provide feedback. The main menu controller will open will open up the log sill event user interface if that option is selected. From here the trainee has the ability to add the event description. When he or she hits submit, the model SkillEvent class will store the data and the process is complete. Selecting view skill event will simply open the skill even user interface and the model SkillEvent class will be called upon to present a selected event. Finally, if the trainee selects offering feedback in the main menu, the main menu controller will open the feedback user interface. The trainee will then submit the text he or she chooses to write and it will be stored in the model Feedback class. Note: It is assumed that the trainee desires to either log a skill event, view a skill event, or provide feedback. Revised Sequence Diagram Create Checklist Sequence Diagram Daniel Campbell FTO aTrainingManager aSkillChecklistCntl aSkillChecklistUI aSkillChecklist aSkill main() ChecklistCntl() ChecklistUI() createChecklist() Checklist() displayChecklist() addSkill() retrieveSkill() addSkilltoList() refreshDisplay() verifyChecklist() getChecklist() finalizeChecklist() This sequence diagram details the Create Checklist Use Case. From the main FTO menu, the user can choose to call the Skill Checklist Controller, which will bring up the Skill Checklist UI. From here, the user may choose to create a Checklist. The UI will request a new Checklist object and display it. From here the user can choose to add skills to this checklist. The UI passes this message to the Checklist, which will add the skill to the list and refresh the display. The User can then finally verify the checklist, which will retrieve the Checklist and “finalize it” by saving the data and prompting the user to double check and ensure everything is correct. Login UI State Diagram Alexander Curtis Group 2 / FTOLaunch [UNPW Format Satisfied] / enableSubmit DataEntered Initialize User Input UN/PW Ready UN/PW Format Check SubmitPressed [not authenticated $$ tries <=3] / tries++ Authenticating [authenticated] / closeWindow,notifyCont [not authenticated && tries >=4] / QuitApp This state diagram represents the state of logging in. When it is ready the first thing that happens is the user is prompted for a username and password. After the username and password is entered it will continue onto authenticating. If it does not authenticate it will go back to the login prompt and the user will have 2 more tries. If it does not authenticate on the third try it will quit the application. When the application does authenticate it, it will continue onto the main menu. Trainee UI State Diagram Tommy Demarco Team 2 Trainee UI State Diagram [User Logged In / displayMainMenuUI] Main Menu Displaying [Trainee User Selected] / displayTraineeUI Trainee UI Displaying / closeApplication [Cancel Action] Editing Trainee Data [Input Accepted] / SaveData Closing Program [Input Data] Saving Changes Assumptions: -Trainee has properly logged in -Trainee can make minimal changes, primarily on training status -Easy access to saving data and quitting the program are readily available This diagram depicts the process of logging in as a trainee user. Once credentials have been entered through the login window and the user is authenticated, the trainee UI will be displayed. At this point, data, such as skill completion, can be edited and saved. As always, there is an option to cancel and return to a previous step. Once all edits have been completed and saved, the program can be terminated. Training Manager UI State Diagram Daniel Campbell Team 2 TrainingManagerUI State Diagram [User Logged In] / displayMainMenuUI() Main Menu Displaying Employee Tab Pressed / displayEmployeeUI() Edit Button Pressed / displayEmployeeEditUI() Delete Button Pressed / displayVerificationWindow() Employee UI Displaying Cancel Button Pressed / closeEmployeeEditUI() Cancel Button Pressed / closeVerificationWindow() EmployeeEditUI Displaying VerifyDeleteWindow Displaying User Inputs Data Exit Program Selected / closeApplication() [Valid Input Data] / enableSubmit() Verify Delete Button Pressed / archiveData() / closeEmployeeEditUI() / closeVerificationWindow() Checking Data Input Archiving Data Submit Button Pressed / saveData() / removeData() Closing Program Saving Data Removing Data Assumptions: -User has logged in (the initial state) -Other forms within the Training Manager UI (program and skill) will follow this same type of chart -The Add form for any of the forms (employee/program/skill) will all follow the same pattern as the edit functions -The exit program option is also available from the Main Menu state, but for the sake of clarity and neatness it was not included in this diagram This state diagram details the various states of the TrainingManagerUI. Upon logging in and reaching the Main Menu, the user will have the option of selecting either the Employee, Program, or Skill tabs, which will bring up their corresponding UI’s. Each of these 3 will function essentially the same, so for clarity only the Employee UI was modeled. When the user enters the employee UI, they will have the option to add, edit, or delete an employee. Add and edit will both function the same, so only Edit was modeled. The user can input data into the Edit UI, which will then check the data to ensure it is valid, or close the UI and return the Employee tab. Upon the input of valid data, the user has the option to submit the data. The data will then be saved and the UI will be closed. The Delete button will open a verification window asking the user to verify that they do in fact want to delete the user. The user can either close this window, or verify the deletion. Upon verification, the system will archive the data elsewhere for security purposes and remove the data from the system, finally closing the UI and returning the Employee tab. Each UI, including the Main Menu, will have an exit option which will close the program, leading to the end state. Capture Trainee Feedback State Diagram User Case: Capture Trainee Feedback Class: FeedbackUI Opening FeedBack UI Input Feeback Selected [Data Saved] / Display Input Box Displaying Feedback Input Box Feedback Input Finished [Data Saved] / Save Feedback Clear out Feedback Input Box [Data Saved] / Reset Feedback Input Box Feedback Saved [Data Saved] / Redirect to Main Menu Saving Feedback Redirecting User Back to Main Menu User is authenticated and is logged into the system User has permission to access feedback UI This state diagram represent State FTO would be in when a user is trying to input feedback into the system, saving it and then display back to all user types for future reference. For example, when a trainee first goes into the FeedbackUI, It will display past feedback, if any, and also an input box for new feedbacks. After he/she is done with the new feedbacks, he/she will click save and it will save to FTO and redirect user back to the main menu after it has successfully been saved. LogEventUI State Diagram LogEventUI State Diagram Ankit Jain User Logged In / display MainMenuUI MainMenuUI Displaying Trainee selected / display TraineeUI TraineeUI Displaying Log skill selected / display LogEventUI LogEventUI Displaying Cancel selected [warning message ignored] / display LogEventUI Enter Event Data Add Event selected / LogEventControler called Data Saving / LogEventr called This diagram shows the various states of the process for logging a skill event. Only a trainee can log a skill event so this model only applies to that type of user. The initial state for the diagram shows that the user is logged in and is shown the trainee’s user interface. In this menu, he or she will select the “Log Skill” option. This will open up a new user interface, the class LogEventUI. From here, the trainee will enter the information pertinent to the skill. If the user presses cancel, a warning message would pop up and upon dismissing it, the log event user interface would be displayed again. If the user clicks “Add Event” the data will be saved and the LogEvent class will be called. Minimal User Manual Starting the Program After downloading the zip file of our deliverable, place it in a convenient directory to find, i.e. the desktop. Unzip the folder to the same directory. Open NetBeans, click File, Open Project, then locate the unzipped file TestIO. Open that, then select run to launch the program. Logging In Welcome to the Field Training Application! To begin use, you must first authenticate yourself by logging into our interface. At this point, there are 4 user types you can log in as. Usernames are case sensitive. Admin Manager Trainer0 (Through Trainer3) Trainee0 (Through Trainee19) The password for all users is password. Main Menus After a successful login, the main menu will launch, which will vary depending on your user type. Admin Main Menu – a list of all the trainees are displayed. The view feedback button shows a trainer’s feedback given to him or her by the trainees. Manager Main Menu – Three tabs are shown: Employees, Skill Checklists, and Skills. The Employees tab shows each trainer’s set of trainees. The user can then view each trainer’s certifications. By default all trainers have Ambulance Skills. From the certification window, the manager can add to a trainer’s certifications from the existing list. Managers can also delete certifications, revoke them, and send an alert for recertification. Back in the Main Menu under the Employees tab, the manager can view Trainee progress by selecting the trainee and clicking View Progress. That will display a new window in which individual skill levels can be modified. The manager has the ability to increase and decrease the level for that skill. The manager can also add or delete a checklist, which changes what skills are displayed for a trainee. Trainees can be promoted when they are selected by the manager, and he presses “Promote Trainee”. This adds the trainee to a list of promoted trainees known as archived trainees (note: once a trainee is promoted, that account cannot be used for future login). This list can be seen when the manager clicks View Archived Trainees. Also, the skills checklist is visible which has all of the skills that a trainee can have. There is a checklist category on the right that must be chosen to show specific skills. Within those checklists there are the specific skills that trainees can have. The manager also has access to adding and editing the checklists. Once “Add a Checklist” has been chosen, the manager has the option to make a name, description, and add skills from an existing skills list. Once the skills have been added they will be visible in the checklist menu. The edit checklist option is the essentially the same as adding a checklist but all of the information is already filled in. The manager can then go through and change anything that they would like including adding and removing more skills. If a skill is added or removed it will be updated when the window is closed. The “Delete Checklist” will delete an entire checklist. (Do no delete a checklist that is in use by a trainee or trainer, it could cause problems.) The skills tab is just a list of all of the skills and descriptions that are available to add to a checklist. From here the manager is able add, delete, and edit each individual skill.(Do not delete a skill if being used by a checklist.) Trainer Main Menu – The only thing that a trainer can view is the information about their own trainee’s. From the list of their trainee’s they can view their progress and increase the skill level of a trainee. This is similar to the managers view progress except they cannot add and delete a skill checklist. Also from the main menu the trainer can view events that their trainees have logged. There are two different types of events, shift and call. The shift is the regular time they the trainee has worked and is denoted by an S to the left of the name. The call is when the trainee gets called into the field for an emergency and is denoted by a C to the left of the name. Under these two different types of events the trainee is able to display skills that they may have implemented during that event. To the right of the event names is a basic description of the event. Trainee Main Menu – When they click view events, a view event menu will show up allowing trainees to create new even, editing and deleting existing event. When click on create new event, trainee can create an event by adding skills from addable skills to included skills. The included skills will be added along will event name and details. The only skills a trainee allows to add are the ones the trainee has on his/her own skill checklist. There is a call event button in the add an event menu where if clicked, it will become a call event as oppose to shift event if not clicked. Edited event allow trainee to edit an existing event with the same option when a trainee is creating an event. There is a delete event button which will remove the event from the list when selected (note: there will be a confirmation and ask trainee if he/she wants to remove the selected event from the list). There will be a feedback button at the trainee main menu where the trainees can input their feedback for the respective trainers. There will be a list showing all existing feedback, and there will be 1 feedback pre-generated for trainees. When add feedback button is selected, a text field will appear for trainees to input their feedbacks. Once they finish, they can select add feedback and it will save the feedback to the list. Edit feedback button allow user to edit existing feedback from the list. Delete feedback will remove the selected feedback from the list and ask the trainees for confirmation if they wish to remove the select event from the feedback list. All core data will be saved to the system, and if will resume back to the previous state when user re log in. If a situation present where a system reset is needed, one would need to go to the directory and select all SER type files and deleted them. When you restart the application, it will give user multiple errors for files not existing. However, the application should still run. If log in after system reset, everything show generated back to the default state.