A cross-platform desktop application for turning audio and video files into flashcards.
It works like this:
- Choose a media file.
- Make your clips (manually or automatically).
- Export your audio flashcards for use in Anki.
Currently being built with Electron, Create React App, Redux and RxJS. Audio processing is done with ffmpeg.
To install NPM packages, use Yarn:
npm install
Once packages are installed, you may run the dev build:
npm start
Wait until you see that see a message about compilation completed (some warnings are OK). Then, in another terminal tab, open the Electron app:
npm run electron
Tests are run with Jest via Create React App.
npm run test
Integration tests use Spectron to make sure all the parts of the app are working together.
npm run integration
The disadvantage of integration tests is that they are slow to run. To speed things up while debugging them and writing new ones, you can run these scripts instead:
# run a dev server configured for integration tests
npm run start:integration
# run integration tests without closing
# the app at the end so you can inspect it
npm run integration:debug
Any arguments you pass to the test scripts will be forwarded to Jest.
So if you wanted to say, run just one specific test, you can do something like this:
npm test -- -t "clips reducer"
Upgrading Electron version requires a few config files to be touched.
- Node version must be updated in:
- .nvmrc,
- .tool-versions
"engines"
in package.json- Github workflows (Mac, Linux, and Windows)
- Electron version must be updated in:
- .npmrc
"browserslist"
"dependencies"
in package.json
- .npmrc
- Chromedriver version must be updated in:
"dependencies"
package.json