PROJECT: T.A.rence
Hi there, I’m Ellie. I am currently pursuing a double major in Real Estate and Computer Science at National University of Singapore (NUS).
I love to build practical applications that can help with our day-to-day activities.
Overview
T.A.rence is a class management system for teaching assistants in NUS. Given that many students in NUS serve as TAs and take up multiple
classes in 1 semester, this application will allow for a smoother management process. T.A.rence is designed to be a simple and intuitive
application that allows users to interact by typing the commands using the Command Line Interface. In addition, T.A.rence also comes with a
clean Graphical User Interface (GUI) that presents information in an organized manner.
Summary of contributions
Major Enhancement: added GUI enhancement and GUI commands
All GUI enhancements and displays shown in T.A.rence, list, displayAttendance, displayAssignmentScore, listAssignment, changeTab
-
Summary of the features:
-
Allows the user to generate graphs and view the various information such as students, tutorials, modules, attendance and assignments to be displayed in a easy-to-understand form.
-
Summarizes data such as assignment scores into multiple formats (graph and table) to allow different ways of understanding the data.
-
Commands such as changeTab also allows the user to change the view of T.A.rence purely using the command line
-
-
Justification:
-
These features compresses the large and complex data pool stored within T.A.rence to be observed by the user in easily understandable formats.
-
-
Highlights:
-
This enhancement affects existing commands and commands to be added in the future. Given the large variety of data structures used to store information in T.A.rence, an in-depth analysis of display formats and design alternatives were considered in the process.
-
The implementation too was challenging as it required to work with a variety of data structures, so as to maintain the efficiency and effectiveness of data processing.
-
Given the many layers of information contained within T.A.rence, information had to carefully extracted without compromising other related systems.
-
-
Credits:
-
Attendance table generation code was adapted from the following link: {https://stackoverflow.com/questions/41771098/how-to-plot-a-simple-double-matrix-into-tableview-in-javafx}
-
-
Minor enhancement:
-
Implemented the find command to allow users to find students based on their name
-
Implemented shortcut format for addStudentCommand to allow users to add students into tutorials based on their index instead of having to type out both the tutorial and module name.
-
-
Code contributed:
-
[Commits] [Pull Requests] [RepoSense Code Contribution Dashboard]
-
Other contributions:
-
Project management:
-
Managed releases
v1.1
,v1.2
,v1.2.1
,v1.3
andv1.4
(3 releases) on GitHub
-
-
Enhancements to existing features:
-
Performed surgical refactoring of the original Address Book (Level 3) codebase to fit our requirements (example: PRs #2, #11, #12)
-
Wrote additional tests for existing features to increase coverage from 65.5% to 69.7% (Pull requests #33)
-
-
Documentation:
-
Community:
-
Reported bugs and suggestions for other teams in the class (examples: https://github.com/Ellieyee/ped/issues)
-
-
Tools:
-
Contributions to the User Guide
Given below are sections I contributed to the User Guide. They showcase my ability to write documentation targeting end-users. |
Deleting a Module : deleteModule
Deletes an existing module from T.A.rence, based on it’s module list index.
Format: deleteModule INDEX
.
Examples:
-
deleteModule 1
Alternatively, you can use the module code to specify the module to be deleted.
The format will be:
Command synonyms: |
Deleting a Tutorial : deleteTutorial
Deletes an existing tutorial from T.A.rence, based on it’s tutorial list index.
Format: deleteTutorial INDEX
Examples:
-
deleteTutorial 1
Alternatively, You can use the module code and tutorial name to specify the tutorial to be deleted.
If there are multiple tutorials with the same name, you will need to specify the module code.
Command synonyms: |
Display Tutorial Class' Test Results : displayAssignmentScore
Allows user to display overall results for an exam or assignment. This can be in the form of a graph or table,
Format: displayAssignmentScore
i/TUTORIAL_INDEX n/ASSIGNMENT_NAME f/DISPLAY_FORMAT`.
Example:
-
displayAssignmentScore
i/1 n/Lab01 f/graph -
displayAssignmentScore
i/1 n/Lab01 f/table
Command synonyms: |
Display tutorial class assignments : displayAssignments
Allows user to list out existing assignments in a tutorial.
Format: displayAssignments `TUTORIAL_INDEX
.
Example:
-
displayAssignments
1
Command synonyms: |
Display Tutorial Class' Attendance : displayAttendance
Allows user to display overall attendance for a class.
Full Format: displayAttendance m/MOD_CODE tn/TUTORIAL_NAME
Shortcut Format: displayAttendance i/TUTORIAL_INDEX
Example:
-
displayAttendance
m/CS1010 tn/Lab Session -
displayAttendance
i/1
Command Synonyms: |
Contributions to the Developer Guide
Given below are sections I contributed to the Developer Guide. They showcase my ability to write technical documentation and the technical depth of my contributions to the project. |
UI component
API : Ui.java
The UI consists of a MainWindow
that is made up of parts e.g.CommandBox
, ResultDisplay
, PersonListPanel
, StatusBarFooter
etc. All these, including the MainWindow
, inherit from the abstract UiPart
class.
The UI
component uses JavaFx UI framework. The layout of these UI parts are defined in matching .fxml
files that are in the src/main/resources/view
folder. For example, the layout of the MainWindow
is specified in MainWindow.fxml
The UI
component,
-
Executes user commands using the
Logic
component. -
Listens for changes to
Model
data so that the UI can be updated with the modified data.
list feature
The list
command lets T.A.rence display all students or students from a specific tutorial.
Implementation
The list
command can include no additional input, or the index of the tutorial. When the user executes the list
command, the following steps are taken by the application:
-
The CommandParser determines the format of user input. If not input is provided, all students are displayed.
-
When the
list
class is invoked, it will perform the following actions before displaying the output to the user: -
Obtains a list of tutorials from the model and filters through the students which belong to the indicated tutorial of choice.
Below is an activity diagram shows the process of invoking the list
command.
The sequence diagram below shows the interaction with the Logic components as described above.