Muhammad Syafiq Bin Abas's Project Portfolio Page
Project: GradPad
GradPad provides an all-in-one solution to Module Management for Computer Science Undergraduates. It consolidates all the processes required for students to plan their modules and track their academic progress into a single platform. The first of its kind - GradPad offers a collaboration like no other, allowing students to manage their modules more efficiently without the need to use several platforms all at once. Users interact with GradPad using a Command Line Interface (CLI), and it has a Graphical User Interface (GUI) created with JavaFX.
Given below are my contributions to the project.
-
Code contributed: RepoSense link
- New Features Implemented:
-
Added the ability to choose to
delete
/clear
with a confirmation prompt, or to force delete or force clear usingfdelete
/fclear
.-
What it does:
Allows users to provide confirmation whether or not they want to proceed with deleting or clearing data, and also allows users to force delete or clear data without a confirmation prompt. -
Justification:
This feature is significant because users can make mistakes in certain commands that results in them losing data and the app should provide a convenient way for users to avoid making those mistakes by prompting users for a confirmation before executing the commands. Some users (usually regulars or experts), however, may find it troublesome to have to constantly provide confirmation, so the app should also provide a way for users to instantly execute these commands. -
Highlights:
This enhancement of adding a confirmation prompt affects some existing commands and commands to be added in future. The implementation was fairly challenging and it required an in-depth analysis of design alternatives as there is a need to stall the original command, prompt for a confirmation, and then execute or stop the execution of the command (based on the confirmation provided). Also, there was a need to create aYesCommand
which accepts any ofy
,ye
, oryes
as a confirmation. After figuring out the implementation, however, the extension to other existing commands was relatively straightforward.
-
-
Added the ability to check accumulated Modular Credits (MCs) using
checkmc
.-
What it does:
Allows users to check how many Modular Credits they have attained based on the modules that they have completed/added into GradPad. -
Justification:
This feature improves the application slightly as users might want to occasionally check how much MCs they have attained so far so as to gauge how close they are to graduation without having to check the MCs for each module and manually calculate.
-
-
- Enhancements to features implemented by peers:
- Improved
gem
andscience
features to support auto update #182
- Improved
-
Enhancements to existing features:
- Refactored the Address Book 3
ui
package and components #37 - Improved flexibility of
find
feature #77 - Improved implementation of
add
andedit
features #111 - Added a 1.5 second delay before closing GradPad window for
exit
feature #95 - Added assertions to the
core
,logic
andmodule
packages #92 - Refactored Index package #219
- Changed the entire outlook of the Graphical User Interface (GUI)
- Refactored the Address Book 3
- Contributions to team-based tasks:
- Came up with product name
- Changed product icon
- Designed GradPad logo
- Designed and added images with mark-ups for the User Guide
- Documented Non-Functional Requirements and Glossary to the Developer Guide
- Consolidated all messages into a single class
- Updated User Guide according to peers’ and tutor’s comments
- Improved readability and clarity for result display messages
- Standardised JavaDoc comments
- Documentation:
- User Guide:
- Developer Guide:
- Added documentation for
find
feature, including sequence diagram #62 - Added documentation for integration of NUSMods for
add
andedit
features #214 - Added documentation for Command Stalling feature #217
- Updated documentation for
Ui
component, including class diagram #62 - Updated documentation for manual testing #87
- Updated documentation for
find
feature #215 - Updated documentation for
delete
feature #217
- Added documentation for
- Community: