Sheyuan's Project Portfolio Page
Project: StudMap
-
Code contributed: RepoSense link
- Project management:
- Helped to coordinate multiple team meetings
- Enhancements to existing features:
- Proposed and implemented
StudentDataparameter object for easy extension ofStudentclass so that features can be more easily implemented.- Features hinging on this infrastructure include attendance/participation/assignment tracking, and new fields added to
Student, including Telegram Handle, GitHub username. - This infrastructure also eased the deletion of unneeded features, such as the
Addressfield inStudent.
- Features hinging on this infrastructure include attendance/participation/assignment tracking, and new fields added to
- Planned and wrote the abstraction of student editing via multiple abstract classes, including
IndexCommand,EditStudentCommand, andStudentEditorin order to unify behaviour.- Features hinging on this infrastructure include the commands
edit,mark,unmark,grade,ungrade,participate,unparticipate,delete.
- Features hinging on this infrastructure include the commands
- Abstracted the idea of commands that require parsing an
indexinIndexCommand, so that all index-related behaviour can be changed in one place.- This allowed the syntax of
allto be used in all such commands, including those mentioned above. - This improved the extensibility of the code to possibly support more sophisticated syntax for specifying
indexin commands without major refactors.
- This allowed the syntax of
- Added the ability for some fields in
Studentsuch asEmailandPhoneto be left optional. - Added
MultiStateAttributeto abstract the commonalities betweeenAttendance,Assignment, andParticipation.
- Proposed and implemented
- Documentation:
- Wrote the preface for User Guide
- Planned and organized the User Guide.
- Prepared the UI screenshots for the User Guide.
- Did general formatting of both User Guide and Developer Guide.
- Community:
- Reviewed most functional pull requests from team members.
- Ensured good code quality by suggesting appropriate implementation strategies.