Giter Site home page Giter Site logo

Knowclip

GitHub Linux Node CI MacOS Node CI Windows Node CI

A cross-platform desktop application for turning audio and video files into flashcards.

It works like this:

  1. Choose a media file.
  2. Make your clips (manually or automatically).
  3. Export your audio flashcards for use in Anki.

Currently being built with Electron, Vite, Redux and RxJS. Audio processing is done with ffmpeg.

Knowclip

Development

To install NPM packages:

npm install

Once packages are installed, you may run the dev build:

npm start

A dev build of the Electron app will open automatically. The server will be running in the background, with Hot Module Reloading available by default, thanks to electron-vite.

Tests

Tests are run with Vitest.

Unit tests

npm test

Integration tests

Integration tests use Webdriverio 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 writing tests, you can run these scripts instead:

# Run integration tests
# without rebuilding the app.
# Useful if you only changed test code
npm run integration:skip-build

# Run integration tests
# without closing the app at the end.
# Lets you inspect things (e.g. with dev tools)
# in the event of a test failure.
npm run integration:debug


# run the test without building the app
# and without closing the app on completion.
# (combines debug "d" and skip-build "s")
npm run integration:ds

Test CLI options

Any arguments you pass to the test scripts will be forwarded to Vitest.

So if you wanted to say, run just one specific test, you can do something like this:

npm test -- "reducers/clips" # target tests with "reducers/clips" in the filepath

Electron upgrade config checklist

Upgrading Electron version requires a few config files to be touched.

knowclip's Projects

clipwave icon clipwave

An interactive audio waveform built as a React component.

knowclip icon knowclip

Quickly make Anki flashcards from video and audio files, with handy features like silence detection and subtitles integration.

kuromoji.js icon kuromoji.js

JavaScript implementation of Japanese morphological analyzer

subtitler icon subtitler

An app to create subtitles files with an intuitive waveform-based UI

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.