Gwyneth Guo Bai Ling's Project Portfolio Page
Project: MATHUTORING
MATHUTORING is a desktop application used for private Math tuition teachers to manage their students contact details and performance. The user interacts with it using a CLI, and it has a GUI created with JavaFX. It is written in Java, and has about 10 kLoC.
Given below are my contributions to the project.
- New Feature: Added the ability to export a student’s progress using Command Line Interface (CLI)
exportp
and Graphical User Interface (GUI).- What it does: allows the user to export a student’s progress into a PDF file using CLI or GUI. The PDF file consists of the student’s name, date created, score list, and task list.
- Justification:
- This feature improves the product significantly because a user can directly export a student’s progress to send it to the student or parent.
- This feature can also solve the problem where labels are not fully displayed in the application’s User Interface.
- Highlights:
- The implementation was too challenging as it required writing to PDF files using coordinates.
- Manual wrapping must also be implemented to ensure texts do not overflow in the PDF file.
- Algorithms are needed to create lines and texts for task list and score list.
- A new command is also needed for CLI, involving user directory paths, which creates a lot of possible bugs for user with different OSes.
- Credits: Used a third-party library Apache PDFBox
-
Code contributed: RepoSense link
- Project management:
- Managed a release
v1.3.1
on GitHub
- Managed a release
- Enhancements to existing features:
- Documentation:
- User Guide: (#132, #133, #176)
- Added screenshots to User Guide
- Rearranged User Guide to ensure good flow
- Added table of contents, user interface layout, user input restrictions, added links to sections.
- Developer Guide: (#176)
- Added manual testing for exporting a student’s progress feature
- Arranged some parts of the Developer Guide
- User Guide: (#132, #133, #176)
- Contributions to team-based tasks:
- Setup tP Team Organization
- Created a GitHub Organization for the team.
- Add members to the organization and created a
developers
team.
- Setup tP Team Repository
- Forked the repo to the team organization.
- Enabled the issue tracker and GitHub Actions.
- Setup CodeCov.
- Added members to the repository and managed access of the team members.
- Added GitHub issues and helped manage the issues by adding labels and milestones.
- Updated site-wide settings (#26, #28, #176)
- Changed project name, title, and badges.
- Changed site header to ensure that the details are correct when converting the documentation to the
.pdf
format. - Changed site settings to change fonts and colors of the sites.
- Setup tP Team Organization
- Community:
- Tools:
- Integrated Code Coverage (CodeCov) to the project.
- Integrated a third party library (Apache PDFBox)
- Integrated a mocking framework (Mockito)