Tan Yi Xin (Cryolian)’s Project Portfolio Page
Project: Classify
Classify is a desktop application used for Tuition Centres to allow for easier management of their enrolled students.
From allowing users to add new students to sorting them based on their last paid date, Classify is the one-stop app that
all Tuition Centres can employ for ease of student management. To use the app, users can interact with it using CLI.
Overall, the code base has more than 3kLoC, and is written in Java.
Given below are my contributions to the project:
- Foundation for the project.
- Coded out the foundation for the project, which included the Student, Details, StudentList classes.
- Directed the vision of the project, by guiding my group as to how they wanted to implement their assigned functions.
- In charge of learning the architecture and workings of the full code base, to be able to easily identify bug sources and fix them. This also helped when my fellow group members asked about how to go about implementing their functions.
- Maintenance of commonly used functions and exceptions.
- findStudentByName, which was later heavily refactored when students of the same name were allowed to be added which different phone numbers.
- readInString, which would detect when characters used in our save files were used. This function was later used when adding and editing students.
- checkForInvalidCharacters, a function for checking for validity of strings, was also implemented to ensure maximum compatibility with our saving functions.
- Extensive bugfinding and fixing
- Took charge of finding and fixing bugs in my teammates’ code, especially since they usually coded without reference to existing changes other members have implemented.
- Took charge of most of the exception handling and throwing when calling features implemented by other members.
- Code contributed: Link to Reposense contribution graph
- Majority of my code was done to ensure my group member’s code worked well with each other. I focused on making sure everything worked smoothly, and fixing bugs and exceptions, rather than adding features. Essentially acted as the scrum master.
- Documentation:
- Contributions to Team-Based tasks:
- Helped with team administration, ensuring deadlines were met, and doing the team tasks such as enabling assertions and ensuring CI compliance.
- Helped to regularly review code for my team (Exmaples: Link 1 Link 2 Link 3). While the comments may seem minimal, majority of changes were requested when coding together on discord, or when asked for help through the telegram group chat with the group.
- Created the V1.0 and V2.0 releases on github.