Git Product home page Git Product logo

memotica's Introduction

memotica

An easy, fast, and minimalist space repetition application for the terminal

Main screen screenshot

Features

  • Markdown support for flashcards.
  • Support for sub-decks for a better organization.
  • Advanced spaced repetition with the SM2 algorithm.
  • Keyboard-First navigation.
  • Easy to add, edit and delete decks and flashcards.
  • Export and import your data.

WIP

memotica is nearly ready for use, but there are some features that I would like to implement before reaching version v1.0.0:

  • Basic statistics.
  • Better flashcards management.
  • Customizable space repetition algorithm.
  • Interoperability with Anki.
  • Themes.
  • Visual indicators.

Motivation

Recently, I began to study German and a bit of Japanese. At the same time I was also thinking of playing a bit more with textual. After encountering some issues with the Anki application on Linux, I decided that it would be a great idea to create a similar application more tailored for my needs and usage.

Screenshots

Help modal Review Screen

Installation

memotica automatically creates a directory in the most appropriate location based on your operating system. This directory contains a SQLite database where all your decks and flashcards are stored. You can learn more about how this is done here.

Using pip

pip install memotica

With pipx (recommended)

pipx install memotica

Usage

TUI

Once memotica is installed, you should have the memotica command available. To start the TUI simply run:

memotica

Or

memotica run

Once the TUI is displayed, you can:

  • Display the help message by pressing F1.
  • Add a new deck by pressing ctrl+n.
  • Add flashcards with ctrl+a.

After you've added some flashcards, select a deck in the deck tree and press ctrl+s to begin the review process.

In the review screen you can use space/enter to show the answer and 1, 2, 3 to mark the question as Bad, Good or Easy.

Other commands

memotica provides commands to export and import your flashcards, decks and review information in the form of CSV files. To see all the available options run:

memotica export --help

And

memotica import --help

Help is Welcome

If you have any suggestions or would like to contribute to this project, please feel free to open an issue. Thank for your interest!

Thanks

I took inspiration and implement various aspects of memotica by reviewing and studying the source code from harlequin.sh.

memotica's People

Contributors

dnlzrgz avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

memotica's Issues

Add keybindings to the review screen

Currently, there are no keybindings or shortcuts available for the review screen apart from those to quit it, which means the only way to mark a flashcard is by using the mouse or pressing multiple times. I plan to address this issue soon. However, if anyone is interested in collaborating, please feel free to reach out and submit a pull request after commenting on this issue.

[FEATURE REQUEST] CSV File Import

Hi, your app looks great. Would you consider adding the ability to import whole decks from CSV files in a future upgrade, please?

Thank you very much, and best regards

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.