Ryan Peh's Project Portfolio Page
Project: SmartNUS
SmartNUS is a desktop app specifically designed for students to revise for their exams. The user interacts with it using a CLI, and it has a GUI created with JavaFX. It is written in Java, and has about 17 kLoC.
Given below are my contributions to the project.
-
New Feature: Implemented Overall Quiz Functionality
- Implemented quiz functionality to allow the user to quiz themselves on various question types from the question bank. This includes answering questions, navigation between questions and tracking of quiz progress.
- Justification: This is a core feature of SmartNUS, as the application is designed to promote active recall through quizzing yourself.
- Highlights: This enhancement required an analysis on various design implementations. The eventual design included the implementation of an alternative parser during to quiz to parse user inputs without affecting the main window, as well as a
QuizManagerclass to manage the logic behind the quiz.
-
New Feature: Designed and Implemented Quiz User Interface
- Designed and implemented a graphical user interface (UI) for the quiz feature of SmartNUS, taking into account user (UX) to ensure an intuitive and easy-to-use user experience of the quiz functionality.
- Justification: As one of the core features of SmartNUS, it is important for the quiz to have a well-developed UI/UX to keep the user interested in using the application.
- Highlights: The interface includes the support for displaying various question types during the quiz (Multiple Choice Questions, True False Questions, Short Answer Questions), and is easily extensible to allow for easy addition of additional question types in the future.
- Credits: The code for the user interface was adapted from the AddressBook-Level3 project by SE-EDU initiative.
-
Other Features and Enhancements to Existing Features:
-
Code Contributed: RepoSense link
-
Documentation:
- User Guide (Pull requests #117, #194 #203):
- Added documentation for all quiz-related features.
- Revised the layout of user guide to make it more intuitive and easy to use.
- Added the
Aboutsection to instruct the user on how to go about understanding the user guide. - Resolved various issues raised during the Practical Examination Dry Run.
- Developer Guide (Pull requests #76, #220, #246):
- Elaborated on changes to
Logiccomponent documentation. - Added design details for
Quizcomponent. - Added documentation for quiz related features.
- Elaborated on changes to
- User Guide (Pull requests #117, #194 #203):
-
Project Management:
- Set up team GitHub organisation, repository and project website.
- Integrated a new Github plugin (CodeCov) to the team repo.
- Managed deadlines and deliverables for the group, including updating the issue tracker and milestones.
- Managed issues raised during the Practical Examination Dry Run.
-
Team-Based Tasks:
- PRs reviewed (with non-trivial review comments): Pull requests #96, #207
- Reported bugs for other teams (bugs reported)