This portfolio documents my contributions to NUStudy, a learning application. Our team of 5 software engineering students from the National University of Singapore (NUS) were asked to enhance an Addressbook application with Command Line Interface (CLI) as the primary mode of input as part of our Software Engineering project in CS2103T. We had to conceptualize and implement enhancements to the existing Addressbook application and do it in a manner such that future developers can continue working on it. After some deliberation, we decided to morph it into an application to facilitate learning for students. The morphed application, NUStudy, enables students to add and manage notes; test their knowledge with questions that they have added; get statistics of how well they have answered these questions; and set tasks to plan their revision schedule.
I contributed to this project by implementing the statistics feature as documented below.
In particular, I have implemented the stats
, question
, report
and overview
commands.
The following sections will elaborate more on these enhancements
and showcase some documentations that I have added to the user and developer guides in
relation to these enhancements.
Key to symbols and formatting used:
stats
: A grey highlight indicates that this is a command that can be inputted
into the command line and executed by the application.
(#1): A hash followed by a number indicates a pull request or an issue.
This section shows the enhancements I have added to the project as well as my other contributions.
Enhancement added: I added the ability to get statistics of the questions done in the quizzes.
-
What it does: The different commands allow users to filter the quiz results and return an overview of how well they have done the questions.
-
Justification: The
question
andreport
commands help users to get an idea of what subjects they are weaker in and see the common mistakes that they have made. Thestats
andoverview
commands gives users an idea of which questions they should attempt more of and what subjects they have been neglecting. Overall, the statistics feature helps to provide users with a rough outline of their progress in mastering the subject. -
Highlights: This enhancement affects existing commands and commands to be added in future. An in-depth analysis of design alternatives is required in the future. The implementation was also challenging as it required many changes to existing models, logic classes and the UI.
Code contributed: Please click this link to see a sample of my code: here
Other Contributions:
-
Role:
-
I was in charge of code quality. My job was to make sure that the code follows a consistent style, is easy to understand and is well-documented.
-
-
Community:
-
Enhancements to existing features:
-
Updated the GUI so that different panels can be stacked: #56
-
We have modified the existing Addressbook User Guide to include commands for the enhancements that we have added as well as remove the old commands that were not relevant to our project. Given below shows my additions to the NUStudy User Guide for the statistics feature.
We have also modified the existing AddressBook Developer Guide to include implementation of our features as well as remove the old documentation of the AddressBook features. Given below shows my additions to the NUStudy Developer Guide for the statistics feature.