Dangabit's Project Portfolio Page
Project: ModTrek
ModTrek is a desktop application for managing a typical NUS Computer Science student’s modules and degree progression, optimised for use via a Command Line Interface (CLI). The app is provides a convenient platform for students to easily access and update their modules within presses of a keyboard.
Given below are my contributions to the project.
-
Code contributed: RepoSense link
-
Enhancements implemented:
- New feature: Degree Progress Data (See PR #62, issue #58)
- What it does: Calculates the data (GPA, requirements progress, overall progress) relevant to a person’s degree based on the modules data it currently have.
- In-depth: Calculation is done by following the NUS way of calculation. Special algorithm is developed to account for multi tagged modules. This also detects some impossible cases in user’s module list.
- Highlights: Algorithm for calculation of all the relevant data, factory method to generate based on module list.
- New feature: View command (See PR #98)
- What it does: Toggles the GUI between degree progress view and module list view. User inputs
view <screen>
, which the parameter is parsed and information is passed to the GUI on which screen to display. - Justification: Worked with jmestxr and Cheamybunny to discuss about the ways to toggle between the GUI screens. Settled on passing the information through
CommandResult
. Some commands also used this new information passing. - Highlights: Implemented the
view
function by creating theViewCommandParser
,ViewCommand
classes and enhancingCommandResult
to facilitate information passing to GUI.
- What it does: Toggles the GUI between degree progress view and module list view. User inputs
- Additional work: Model Creation (See PR #36)
- What it does: Models and abstracts the different parts of the
Module
. - Justification: Most of the models
Code
,Credit
,Grade
,Module
,SemYear
,Tag
,ValidTag
are created with their appropriate validity checkers in place. The acceptable range of each model is made to be as precise as possible in the context of NUS, with exception to credit and multiple taggings.
- What it does: Models and abstracts the different parts of the
- New feature: Degree Progress Data (See PR #62, issue #58)
-
Notable Bug Fix:
- Fix: Saving state of Find (See PR#174)
- What happened: On any update to the full list of modules, find module screen will also revert back to showcase the full list of modules.
- Discussion: Worked with Jun-How to provide a savable state of find for the find screen by saving the last modified predicate.
- Fix: Negative degree progress (See PR #178)
- What happened: Due to multiple mapping of modules, my initial algorithm to calculate the duplicates resulted in negative percentage for overall progress.
- Discussion: Worked with Cheamybunny to create another algorithm to circumvent this problem. More details on the calculation can be found here.
- Fix: Saving state of Find (See PR#174)
- Documentation:
- User Guide:
- Included some new commands (
sort
andview
) and its specification. - Added user stories relevant to the commands.
- Provided feedbacks on UG (eg. layout, readability, documentation bugs)
- Included some new commands (
- Developer Guide:
- Added Glossary of common terms used.
- Added draft for
sort
command. - Created activity diagram for data generation and sort command.
- Created sequence diagram for view command logic implementation and sort command.
- Provided feedbacks on DG (eg. layout, readability, documentation bugs)
- User Guide:
-
Contributions to team-based tasks:
- Organised weekly team meeting and facilitated discussions.
- Set up master branch protection.
- Worked with all teammates to liaise and integrate all the features seamlessly.
- Provided ideas when discussing implementation with regards to
Model
.
-
Review/mentoring contributions:
-
Contributions beyond the project team:
- Contributed to PE-D bug catching