Jiang Zhimeng's Project Portfolio Page
Project: myStudent
MyStudents helps tuition center admins manage details of the students, tutors and classes. It is optimized for CLI users so that frequent tasks can be done faster by typing in commands. MyStudent is a brown-field project evolved based on AB3. Compared to AB3 that only manipulates one type of entity Person
, myStudent needs to manipulate three
types of entities: Student
, Tutor
and TuitionClass
. To adapt to the three different entities, myStudent has made enhancements to the existing structure and commands of AB3. Additionally, myStudent has also implemented some new commands and new GUI features.
Given below are my contributions to the project.
- Code contributed:
- Project management:
- In charge of the
Ui
. - Set up the team Organisation and Repository.
- Managed release v1.3.1.
- In charge of the
- New features implemented:
- Introduced the enum class
ListType
inModel
which keeps track of the current list type #49.- This feature is crucial for our project, since myStudent monitors three types of entities:
Student
,Tutor
andTuitionClass
. Most of the commands such the delete command and the show command needs to refer to or modify the current list type. The introduction ofListType
marks an evolution from a single type of entity in AB3 to multiple types of entities in myStudent.
- This feature is crucial for our project, since myStudent monitors three types of entities:
- Implemented the
show command
which displays the descriptions of the specifiedStudent
orTutor
#103.- The description of the
Student
andTutor
is not shown in the list panel. Theshow command
displays the description of the specifiedStudent
orTutor
in a separate description panel. - The
show command
is closely related toUi
as it makes use of theSelecetionModel
ofListView
in JavaFX.
- The description of the
- Implemented clickable list tabs #81.
- The user can click at the list tabs to switch to a different list, which supplements the
list command
.
- The user can click at the list tabs to switch to a different list, which supplements the
- Implemented clickable person cards #122.
- The user can click at the
student card
ortutor card
to display the description of thestudent
ortutor
, which supplements theshow command
.
- The user can click at the
- Implemented different themes for the GUI. The user is able to change the color scheme #122.
- Introduced the enum class
- Enhancements to existing features:
- Modified the
list command
#49.- The previous
list command
in AB3 is only for one type of entityPerson
. To suite the multuple types of entities in myStudent, the modifiedlist command
allows the user to display one of the three different lists, thestudent list
,tutor list
orclass list
.
- The previous
- Modified the
delete command
#62.- The previous
delete command
in AB3 is only for one type of entity. The modifieddelete command
deletes one of the three entities depending on the current list, which is one of the three lists:student list
,tutor list
andclass list
.
- The previous
- Modified the
CommandResult
class. Introduced enum classCommandType
to account for the type of the command that is executed #103.- The previous
CommandResult
allows theUi
to handle thehelp command
and theexit command
. The modifiedCommandResult
class allows theUi
to handle moreUi
changes for more command types.
- The previous
- Helped in making the
Person
class abstract #107.- The
Person
class in AB3 is concrete. In the earlier stage of our project, we accommodated our codes toPerson
class as we did not wish to break the pre-existing functionalities of AB3, which leads to dependencies of thePerson
class in theLogic
,Storage
andUi
. In latter stage we decided to makePerson
class abstract, before which the dependencies need to be cleaned.
- The
- Modified the
- Documentation:
- User Guide:
- Added all diagrams for the User Guide.
- Added the Layout section.
- Added documentation for the show command.
- Added documentation for the Troubleshooting section.
- Developer Guide:
- Added documentation for the list type feature.
- Added the sequence diagram for the
list command
in the list type feature. - Updated the class diagram of the
Ui
. - Updated the sequence diagram for the
delete command
in theLogic
.
- User Guide:
- Community: