/kommit

Augment your memory

Primary LanguageJavaScriptOtherNOASSERTION

Project logo

Kommit

Augment your memory

Kommit is an app to help you with memorization. Inspired by Anki and other spaced-repetition learning systems, it presents flashcards to you just before your brain is likely to forget, thereby strengthening memory while reducing study time. Read the guide for more details.

Open app

Architecture

The project follows a Universal folder structure and is a large collection of mostly small modules or functions that are put together using Svelte and Rollup. With the exception of a few 'global' or 'magic' things such as the localization function OLSKLocalized, most resources used by a module should be in the same folder or referenced by path name.

Routing, rendering markdown content, and serving pages is done via a Node.js server (usually configured in the controller.js files).

Development Setup

(For a deeper dive, watch the tutorial).

Install Node.js and npm, then:

npm run setup

This should create an .env file if there is none. If you encounter errors referring to this file, you can find missing variables in .env-sample.

Running

Start the Rollup process to build and reload automatically

npm run watch

Start the Node.js server to view in the browser

npm start

It should be accessible at http://localhost:3000.

Testing

See Testing logic and interfaces for a tutorial.

Run logic tests

npm test 

Run interface tests

npm test ui

To filter interface test paths by string:

npm test ui match=Browse

To filter interface test paths by JavaScript regular expressions:

npm test ui match='/(play|browse)/'

❤️

If you’re enjoying this, consider contributing to my Open Collective. Virtually everything I create is public, accessible for free, and open-source. Your support helps me keep adding to the commons and making it available for everyone.

Contribute

License

The code is released under a Hippocratic License, modified to exclude its use for surveillance capitalism and also to require large for-profit entities to purchase a paid license.

Questions

Feel free to reach out on Mastodon or Twitter.