Skip to content

rtrzebinski/simple-memorizer-3

Repository files navigation

About

Simple memorizer is an educational tool using spaced repetition technique that is usually performed with flashcards. Newly introduced and more difficult exercises are shown more frequently, while older and less difficult are shown less frequently in order to exploit the psychological spacing effect. The use of spaced repetition has been proven to increase the rate of learning.

Although the principle is useful in many contexts, spaced repetition is commonly applied when a learner must acquire many items and retain them indefinitely in memory. It is, therefore, well suited for the problem of vocabulary acquisition in the course of second-language learning.

Documentation | Kanban board | Live demo

Build Status

Description

During daily sessions a user is presented a series of exercises and provides feedback whether he knows the answer or not. This data is being collected making the tool more adequate the more it is used. Application algorithms analyse multiple factors like ratio between good and bad answers, number of answers on a given day or order in which these are given.

User interface is minimalistic and optimised to run very fast. Providing feedback only requires pressing either the 'Good answer' or 'Bad answer' button. Doing so is concluded with the next exercise being loaded, making the process smooth and easy to follow. Another advantage of this approach is ease of use on mobile devices without a need to type an answer in. It also increases the number of exercises served in a time allowing it to be useful even during shorter sessions.

New features and improvements are actively being added to the system. The goal of the project is creating an efficient and user friendly application that is easy to use and effective.

Implementation details

  • Web application is developed with PHP and Laravel.

  • Frontend interface is based on Bootstrap. Views are generated by PHP. A separated frontend app is not used at the moment. jQuery is utilised to add dynamic UI elements.

  • MySQL database serves as a data store.

  • App is covered by automated tests written with PHPUnit framework. Tests are set up to run using in memory SQLite database, which significantly speeds up testing process.

Desktop screenshots

Mobile screenshots