Guo Lilian - Project Portfolio

PROJECT: History Flashcard

Overview

History Flashcard (HF) is an app for history students to create flashcards which summarize the most important information for historical events, figures and artifacts. HF is optimized for those who prefer to use a simple Command Line Interface (CLI), and includes features that help with memory retention and make information convenient to review.

Summary of Contributions

Contributions to the User Guide

My feature-specific contributions to the User Guide are reproduced below:

Showing a Flashcard: show

Shows all fields from the flashcard at the specified index in the list.

Format: show INDEX

Example of usage:

show 3

Assigning Priority to a Flashcard: priority

Assign Priority Level LOW, MEDIUM, HIGH to the flashcard at the specified index.

Format: priority INDEX PRIORITY_LEVEL

Example of usage:

priority 2 MEDIUM

Listing Flashcards of a Specified Priority: list-priority

Lists all flashcards which match the specified priority level.

Format: list-priority PRIORITY_LEVEL

Marking Flashcard as Reviewed: reviewed

Marks a flashcard at the specified index as reviewed.

Format: reviewed INDEX

Example of usage:

reviewed 1

Displaying groups: show-groups

Lists all existing groups.

Format: show-groups

Listing flashcards in a group: list-group

Lists all flashcards in a group specified by GROUP_ID. GROUP_ID can be the index of the group in the list generated by show-groups, or simply the name of the group.

Format: list-group GROUP_ID

Contributions to the Developer Guide

Features I described in the Developer Guide are reproduced below:

Set Priority Feature - Proposed Implementation

The Set Priority feature allows users to mark a flashcard with a specified priority level. The priority level is then reflected when the user requests a list of existing flashcards.

PriorityLevel is stored as an enum with four fields: LOW, MEDIUM, HIGH and DEFAULT.

The feature implements the following operations:

The following class diagram shows the structures relevant to the Set Priority feature:

SetPriorityFeatureClassDiagram

Given below is an example usage scenario and how the set priority mechanism behaves at each step.

Step 1. The user launches the application and creates a new Flashcard (of type Event, Person, or Other), with a default priority level of DEFAULT.

Step 2. The user executes priority [flashcard index] [priority level] command and the setPriorityLevel operation is invoked. Subsequently, the flashcard of specified index is retrieved from the main FlashcardList instance. Its priority level is set to the specified priority.

The following sequence diagram shows the relevant interactions behind setPriorityLevel:

setPriorityLevelSequenceDiagram