https://github.com/simon-gardier/study-terminal
📝Study your flash cards from the terminal
https://github.com/simon-gardier/study-terminal
ascii-art collections flashcard-app flashcards java json learning study study-terminal
Last synced: 3 months ago
JSON representation
📝Study your flash cards from the terminal
- Host: GitHub
- URL: https://github.com/simon-gardier/study-terminal
- Owner: simon-gardier
- Created: 2020-11-28T12:45:24.000Z (over 5 years ago)
- Default Branch: main
- Last Pushed: 2024-07-04T19:36:15.000Z (about 2 years ago)
- Last Synced: 2025-10-09T00:27:51.694Z (9 months ago)
- Topics: ascii-art, collections, flashcard-app, flashcards, java, json, learning, study, study-terminal
- Language: Java
- Homepage: https://en.wikipedia.org/wiki/Flashcard
- Size: 2.64 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# 📝 Study terminal


Study your flash card from the terminal using [Sebastian Leitner's algorithm](https://en.wikipedia.org/wiki/Flashcard)!
## Summary
1. [Try it!](#try-it)
2. [Features](#features)
3. [Technical features](#technical-features)
4. [Improvements](#improvements)
5. [Credits](#credits)
## Try it!
### Run the executable (`studyterminal.jar`)
- [Download and install java](https://www.oracle.com/java/technologies/downloads/).
- Open a terminal at the root of the project directory and type `java -jar studyterminal.jar` from there.
### Compile and run the program
```console
javac -d bin -cp "lib/gson-2.8.6.jar" -sourcepath src src/studyterminal/Program.java
java -cp "bin:lib/gson-2.8.6.jar" studyterminal.Program
```
### Compile and run the tests
```console
javac -d bin -cp "bin:lib/gson-2.8.6.jar:lib/junit-platform-console-standalone-1.11.0-M2.jar" -sourcepath tests $(find tests -name "*.java")
java -cp "bin:lib/gson-2.8.6.jar:lib/junit-platform-console-standalone-1.11.0-M2.jar" org.junit.platform.console.ConsoleLauncher --scan-class-path
```
## Features
The algorithm used is the one developped by [Sebastian Leitner](https://en.wikipedia.org/wiki/Flashcard).
Features :
- Add cards to the box.
- Remove cards from the box.
- Review the cards of the day.
- View statistics about your performances of the day.
- Store the "box" of cards for later revisions.
## Technical features
- Publish - Subscribre pattern for the updates of the statistics.
- Command pattern for the actions to be taken by the users.
- Test suite of ~80 tests using JUnit (standalone) and FakeClasses.
- Efficient collections usage for fast execution and low memory footprint.
## Improvements
- The program does not allow to simply revise all the cards of the box. The feature should not be hard to implement since it only requires to add a new Command.
## Credits
- [Simon Gardier](https://github.com/simon-gardier) (Author)
- Nicolas Hendrix (studyterminal.consoles package author)