PROJECT: Professor Assistant Console (PAC)
Overview
Pac is a event scheduler which helps to keep track of events. Attendance and performance of students can be tracked under each event. The user interacts with it using a Command Line Interface (CLI). It is written in Java, and has about 8k lines of code (LOC).
Summary of Contribution
Major Enhancement 1: added the ability to create an Event
-
What it does: It allows the user to add, edit and delete an event, which records its name, date, time and venue. A user can also link a list of students to any event to keep track of their attendance and performance in that event.
-
Justification:
name,date,time,venueare important details of an event. Recording attendance and performance is essential to the relevance of this application for a professor. -
Highlight: This is the backbone of the scheduler. All other features of this app, in one way or another, are linked to an
Event.
Major Enhancement 2: implemented EventParser
-
What it does: It breaks down a
Event-related command to return the appropriateCommandobject. -
Justification: This allows invalid user inputs to be identified, hence properly handled and shown to the user.
-
Highlight:
EventParseris essential for allEvent-related commands to work. Other developers can add/modify existingEvent-related command without worrying about parsing.
Major Enhancement 3: implemented the control flow of the application
-
What it does: It decides how the application starts up, and shuts down. This involves
Interpreter, which decides the command category and its type from a user input. -
Highlight: All developers need to understand how an user input leads to its response.
Minor Enhancement: added the ability to load/save existing data
Code contributed: here
Other contributions
Testing
I have written unit tests for Event, EventParser and Interpreter.
I have also written text-based UI test to test Event-related operations, such
as add, delete, edit and list.
I have also written manual testing instructions for Event and Storage.
Documentation
I have written in the User Guide and Developer Guide all the features/enhancements I have mentioned above.
Besides that, I have also written descriptions and drawn diagrams for Architecture, Command, Storage, Event (class) and Event (sequence).