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
ListTypeinModelwhich keeps track of the current list type #49.- This feature is crucial for our project, since myStudent monitors three types of entities:
Student,TutorandTuitionClass. Most of the commands such the delete command and the show command needs to refer to or modify the current list type. The introduction ofListTypemarks 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 commandwhich displays the descriptions of the specifiedStudentorTutor#103.- The description of the
StudentandTutoris not shown in the list panel. Theshow commanddisplays the description of the specifiedStudentorTutorin a separate description panel. - The
show commandis closely related toUias it makes use of theSelecetionModelofListViewin 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 cardortutor cardto display the description of thestudentortutor, 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 commandin AB3 is only for one type of entityPerson. To suite the multuple types of entities in myStudent, the modifiedlist commandallows the user to display one of the three different lists, thestudent list,tutor listorclass list.
- The previous
- Modified the
delete command#62.- The previous
delete commandin AB3 is only for one type of entity. The modifieddelete commanddeletes one of the three entities depending on the current list, which is one of the three lists:student list,tutor listandclass list.
- The previous
- Modified the
CommandResultclass. Introduced enum classCommandTypeto account for the type of the command that is executed #103.- The previous
CommandResultallows theUito handle thehelp commandand theexit command. The modifiedCommandResultclass allows theUito handle moreUichanges for more command types.
- The previous
- Helped in making the
Personclass abstract #107.- The
Personclass in AB3 is concrete. In the earlier stage of our project, we accommodated our codes toPersonclass as we did not wish to break the pre-existing functionalities of AB3, which leads to dependencies of thePersonclass in theLogic,StorageandUi. In latter stage we decided to makePersonclass 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 commandin the list type feature. - Updated the class diagram of the
Ui. - Updated the sequence diagram for the
delete commandin theLogic.
- User Guide:
- Community: