Skip to content

Open-source, local flashcard system with a custom spaced repetition advisor.

License

Notifications You must be signed in to change notification settings

joshuamotoaki/gen-cards

Repository files navigation

GenCards Logo

Open-source, local flashcard system with a custom spaced repetition advisor. Part of the Gengoko project.

Overview

While spaced repetition is great for some people and situations, it isn't a universal solution. Spaced repeition demands that study every day, have a consistent level of motivation, and that you don't prioritize one card over another. Furthermore, most spaced repetition algorithms require user input to determine how well you know a card. This can cause problems by slowing down the process of studying and by encouraging non-active studying.

GenCards is designed around the concept of a spaced advisor. Instead of forcing you to study cards at a specific time, the spaced advisor merely determines an order in which you should study cards. This means that you can click the "study" button and learn in an optimal order without having to worry about when you should study. You can sit down and study for 5 minute or 5 hours, take breaks, or introduce new cards at any time. The spaced advisor will always be there to help you study in the most efficient way possible.

Additionally, GenCards requires text input instead of just click a button. This forces you to actively recall the information, and ensures you don't have to make any decisions about how well you know a card. This makes studying both more active and more efficient. You can also prioritize cards to tell the spaced advisor which cards are most important to you.

For a full explanation of the spaced advisor, see this blog post. For a technical overview of the process of building the app, see this blog post.

Installation

To install, go to the releases page and download the latest version for your operating system. Extract the files and run the executable.

If you would like to build the application from the source code, first follow the instructions on the Tauri website to install the necessary dependencies. Then, clone the repository and run npm install to install the necessary dependencies. Finally, run npm run tauri build to build the app.

Technologies

GenCards is built using Tauri -- a Rust-based framework for building desktop applications with web frameworks. The UI is built using Svelte and SkeletonUI, and the app uses SQLite for data storage.

Roadmap

While the app is currently functional (as a proof-of-concept), there is still quite a bit of work to be done to make it production-ready:

  • Persist deck on refresh (or disable refreshing altogether). Switched to a SPA
  • Conflict detection for cards
  • Multi-answer support
  • Section in the settings to modify the parameters of the spaced advisor
  • Anki imports
  • Tags for cards
  • Better filtering in the card list
  • Improved UI
  • More detailed statistics
  • Better dashboard

License

This project is licensed under the MIT License - see the LICENSE.md file for details.

Screenshots

Study page

Study Page

Deck view

Deck View

About

Open-source, local flashcard system with a custom spaced repetition advisor.

Topics

Resources

License

Stars

Watchers

Forks