Po Hsien's Project Portfolio Page
Project: StudMap
StudMap is a lightweight desktop application that addresses your needs of managing the student records across multiple spreadsheets. Using a CLI (Command Line Interface) approach, we mitigates the need for teaching assistants to navigate throught convoluted menus and buttons when keeping track of the administrative details for the students. It is written in Java with the GUI implemented using JavaFX.
Given below are my contributions to the project.
-
Code contributed: RepoSense link
- New Feature:
tag
anduntag
- What it does: The
tag
features allow users to append tags to the student, while theuntag
commands allows the user to remove specific tags from the students - Justification: The user (teaching assistants) might be required to keep track of the students, as such, he or she might want to differentiate the students using tags. However, some might require multiple tags to track different aspects of the student. For example, one might want to tag a student as required to attend 2 separate remedial classes. In this case, the two tags might not be added or remove at the same time. With the
tag
anduntag
commands, this provide the user with more fine-grained control over the taggin process of the student. - Highlights: In the original addressbook, the tagging features is combined with the
edit
feature for modifying the records of a student. Appending tags was troublesome as theedit
command overwrites pre-existing tags. Hence, I have built upon the existingtag
attribute to create thetag
features that allows cumulative addition for the tags. I have also introduced the mass operation feature for adding the tags. This mass operations was further improved by Sheyuan to be more general and extensible to other features as wel.
- What it does: The
- New Feature:
grade
andungrade
- What it does: By using the
grade
, the user (teaching assistants) can create records of assignment for the student and toggle between the supported status for assignment grading. The user can also use theungrade
command to remove records of the assignments completely. - Justification: The user may have several assignments to mark from various students which he or she needs to keep track of. By introducing this feature, the user can record down the grading status for the assignments which serves to remind the user on which assignments he or she has not yet graded, allowing them to have a clearer view for their assignment grading process.
- Highlights: To implement the feature, I have also created the
Assignment
attribute for students. By using thegrade
, the teaching assistants can create records of assignment for the student and toggle between the supported status for assignment grading. The teaching assitant can also remove entries of the assignment using theungrade
command.
- What it does: By using the
- Documentation:
- Provided the necessary documentation for the
tag
,untag
,grade
andungrade
feaatures for both the User Guide and Developer Guide.#165 - Refactored the Developer Guide for the
edit
,tag
,mark
,grade
such that they are grouped under theEditStudent
features. These commands all servers similar purpose of editing specific attributes of the student. They also have very similar code structure as they are inheriting from theEditStudentCommand
interface. By grouping these features together, it makes the documentation of implementation details for these commands to be more concise and readible. #102 - Refactored develop guide to reflect the change from addressbook to studmap. Update the various UML diagrams to reference StudMap and modify class diagrams for the
model
component based on current implementation. #99
- Provided the necessary documentation for the
- Project management:
- Review functional PRs for
v1.3
- Updating demo screenshot on project notes for
v1.3
- Review and merge various documentation PRs for
v1.4
- Review functional PRs for