Fresh Memory is an educational utility for learning foreign words. The application manages sets of flashcards called dictionaries, which can be created and edited by the user. It is planned to implement several tests to be run on the basis of the dictionaries:
These tests will help to memorize new words and refresh old ones. For the present time, the flashcards test is already implemented.
The Flashcards test provides a possibility to look through the current set of flashcards. The program chooses the next cards in a random order and shows their front sides (questions) to the user. The user tries to recall the answer (the meaning of a foreign word) and can check the correct one pressing the "Answer" button. Looking the answer immediately gives a feedback of how well the user knows this question. The next card can be shown with pressing the "Next" button. At any time, the user can browse the history of watched cards in the current session by pressing "Back/Forward" buttons. In the near future, the feature of removing well-known cards will be implemented.
Fresh Memory is written in C++ using QT toolkit for the GUI. It fully supports Unicode (UTF-8) and therefore is not restricted to Latin letters. The source code was written with internationalization in mind. All string data can be easily translated to other languages using the QT internationalization tools.
The project makes a powerful use of the object-oriented programming, C++ templates and design patterns. The patterns used are Method-View-Controller, Singleton, Factory method. The Command pattern is going to be utilized in future. The project also makes use of the following key technologies of QT toolkit:
Actively supported operating systems are Linux and Windows. The application can also be compiled under MacOS as any other QT project.
