Iteration 3:
Welcome to E-Level!
Overview
Progress
Much of the core functionality of E-Level has been coded. The application can open existing decks, create new decks, add cards to decks, combine and reorder decks and cards, save decks to disk, and display the question, answer, a hint, and additional information in a central window. Basic functionality has also been added to edit existing cards and take a test using a deck. This represents the completion of all features and use cases targeted for this iteration. Over 3,800 lines of code have been written, comprising 135 commits to the SVN repository.
Class Structure
View the Javadoc.
Source Code
The source code is available to download here, but requires installation of the Qt libraries and the QT Jambi Java bindings, available from http://qt.nokia.com/downloads. Documentation for installation of Jambi can be found here. Any problems can be reported to our group at group7 AT cs.jhu.edu. The application has been tested on Windows XP, Windows Vista, and OS X 10.6.
Feature List
All features ordered from most to least important.
Implemented:
- A splash screen
- Reviewable cards with a front and an associated back, containing the solution *New
- Card-based annotations and hints *New
- New deck creation *New
- The ability to view different decks *New
- The ability to organize, combine, and modify decks *New
- Shuffling a deck of cards *New
- "Save"/"Save As"/"Open" functionality *New
- Refocused from "the ability to download existing uploaded sets" and "export utilities for professors", implementations of which have been postponed.
- User-customizable program and testing preferences *New
Implemented Next Iteration:
- Test-taking functionality
- The ability to view the solution first
- Repeating incorrect answers with higher probability through some algorithm
- The "E-Level Challenge", a quiz of all incorrect cards in the last week from any deck
- A timer to track study periods
- Support for printing
- Further work on editing card functionality
Implemented in Future Iterations:
- Deck-dependent score reporting, including graphing
- Image and graphic support
- A "New Card Wizard" with:
- Support for drag-n-drop
- Numerous plugins for foreign languages, advanced drawing options, and math.
- Customizable card properties
- 6 demo decks
- User-customizable preferences for localization
- Audio, video, and multimedia support
Use Cases
All use cases ordered from most to least important.
Select Directory - Completed
Completion Goal: Completed in Iteration 3
Actor: Professor or Student
Goal: Select a directory containing decks or in which to store decks
Preconditions: The user has opened the program
Main Path:
- At startup, a dialog is displayed to choose where to store/find decks (à la Eclipse)
- The user selects a directory to contain or to store decks
- The user creates a new directory in which to store decks
- The user clicks OK
Create Deck - Completed
Completion Goal: Completed in Iteration 3
Actor: Professor or Student
Goal: The user creates a new E-level flash card deck
Preconditions: The user has opened the program
Main Path:
- The user clicks the create new deck button or selects File > New > Deck
- The user creates a new flash card and adds it to the deck (see Create Flash Card)
- The user repeats step 2 as desired
- The user clicks the save deck button
The deck is saved in the currently selected directory or the default directory if none is selectedA dialog is presented prompting the user to select a directory and a filename, beginning in the previously selected default directory
- (optional) The user clicks export deck (see Export Deck)
- The user returns to the default screen
Create Flash Card - Completed
Completion Goal: Completed in Iteration 3
Actor: Student or Professor
Goal: The user creates a new E-level flash card and adds it to a pre-existing deck
Preconditions: The user has opened the program and selected a deck
Main Path:
- The user clicks the add new card button or selects File > New > Card
- An Edit Card window is displayed and the user edits the card (see Edit Card)
- The card is added to the currently selected deck and the Edit Card window is closed
Export Deck - Completed
Completion Goal: Completed in Iteration 3
Actor: Professor or Student
Goal: The user exports a deck for distribution
Preconditions: The user has selected a deck
Main Path:
- The user selects
File > Export > DeckFile > Save As and is presented withthe Export Deck Wizard windowa dialog prompting the user to select a directory and a filename, beginning in the previously selected default directory - The user chooses a file name and location and indicates whether the deck should be uploaded to an online repository (tentative)
Study - Completed
Completion Goal: Completed in Iteration 3
Actor: Student
Goal: The user studies a deck of E-level flash cards
Main Path:
- The user opens the program and enjoys the splash screen
The deck list is populated from a previously specified or the default deck directoryThe user opens decks through File > Open, which are added to the deck list- The user selects a deck to study from the deck list
- The user selects a card from the card list under the currently selected deck
- The first card in the deck is displayed
- The user selects a card from the card list
- The default card view with the card's front face, back face, additional information, and hint is displayed
- User clicks the edit card button (see Edit Card)
- The user clicks the next card button until reaching the end of the deck or the previous card button until reaching the start of the deck
- The user repeats steps 3-6 as many times as desired
- The user closes the program
Take Flash Card Test
Completion Goal: Iteration 4
Actor: Student
Goal: The user takes a practice test using E-level flash cards
Preconditions: The user has opened the program and selected a deck
Main Path:
- The user clicks the take test button
- The user is presented with the front face of a flash card and prompted for a pre-programmed answer
- The user clicks the hint button to bring up a hint
- The user may or may not close the hint popup
- The user clicks the hint button to bring up a hint
- The user specifies an answer or clicks continue if answer is optional
- The user views the back of the flash card and any additional information
- The program indicates whether the response was correct
- The user indicates whether the response was correct
- The user repeats steps 2-4 until reaching the end of the deck
- The user exits the test
- A display is shown with test statistics for the current and past tests
E-Level Challenge
Completion Goal: Iteration 4
Actor: Student
Goal: The user takes a test of previously missed questions
Preconditions: The user has gotten one or more questions wrong on a test in the previous week
Main Path:
- The use clicks the Take E-Level Challenge button
- A list of incorrectly answered test cards from the previous week is retrieved and used for the following flash card test
- The user is presented with the front face of a flash card and prompted for a pre-programmed answer
- The user clicks the hint button to bring up a hint
- The user may or may not close the hint popup
- The user clicks the hint button to bring up a hint
- The user specifies an answer or clicks continue if answer is optional
- The user views the back of the flash card and any additional information
- The program indicates whether the response was correct
- The user indicates whether the response was correct
- The user repeats steps 3-5 until reaching the end of the deck
- The user exits the test
- A display is shown with test statistics for the current and past tests
Edit Flash Card
Completion Goal: Iteration 4 or 5
Actor: Student or Professor
Goal: The user edits an existing E-level flash card
Preconditions: The user has opened the program, selected a deck, selected a card, and clicked edit OR the user is creating a new card in the selected deck
Main Path:
- A new window is shown with panels for sections of the flash card (front face, back face, additional information, hint, and “answer” section) and toolbars for adding information to them
- (optional) The user enters text
- (optional) The user drags and drops images and (tentatively) other multimedia sources
- (optional) The user undos or redos previous actions
- The user clicks the done button
UML Diagrams
A revised sequence diagram:
Download it here.

A revised component diagram:
Download it here.

GUI
Screenshots from the program (mixed platforms):




