This project portfolio serves the purpose to showcase my contribution to NUStudy as our software engineering project and the various skills I have acquired and utilised in the process of development.
Our team consists of 5 software engineering students who are passionate about software development. We were assigned to enhance a basic command line interface desktop address book application for our Software Engineering project. We decided to morph it into a revision flashcard desktop application called NUStudy. This enhanced application enables NUS students to store and manage lecture notes, practice questions under exam conditions and plan revision tasks effectively.
This is what our project looks like:
My job is to design and write the code for question management features. Details of the enhancements and relevant documentation I have completed will be further explained in sections below.
Please take note of the following symbols and formatting used in this documentaion:
-
monospace
indicates command-line input -
italics indicates class names
-
# followed by a number indicates a pull request (PR) or issue (eg. #12)
This section shows a summary of my coding, documentation, and other helpful contributions to the team project.
-
I was responsible for implementing question management features.A question includes a question body, an answer, a subject and a difficulty level. I have modified the existing Person model to Question model, as well as some of its relevant fields in the original address book application. (starting from PR #44).
-
The question management commands are modified by the original person management commands as well. The commands include: AddQuestionCommand, EditQuestionCommand, DeleteQuestionCommand, ClearQuestionCommand, FindQuestionCommand, FindDifficultyCommand, FindSubjectCommand, ListQuestionCommand.
It is important for students to constantly practice questions to test their understanding as well as get familiarize with the concepts they have learned. This question management system allows students to store questions easily. They are able to use this app as a question bank for them to revise. Furthermore, by defining difficulty levels for each question, student can have a better sense of how well they have learned from this topic or this subject in general. The question bank can also support other features such as quiz mode and various statistics for attempts.
Please click this link to see a sample of my code: link
-
Testing: As I am responsible for testing, I have added a significant number of test classes which increased coverage to a large extent (as seen from PR #84).
-
Documentation: I modified the user guide from a draft version to the standardised formal version. I have also standardised the command format for most of the features.
-
Community:
The following is a part from my NUStudy User Guide, showing enhancements that I have made for the question management features.
The following section shows my additions to the NUStudy Developer Guide for the question management features.