Corvi is a social learning app which works similar to an index-card box. Users can create boxes to which they can add questions like vocabulary, formulae, definitions or similar. Those questions get tested in regular intervals, depending on the learning progress the user makes. Corvi makes sure, that new questions are learned stepwise to keep daily learning sessions short. At the same time it takes care that the user does not unlearn previous questions.
Corvi is currently available for Windows, Mac OSX and Linux. You can find the release notes and the download of the latest version in the release section.
The main repository is located at GitLab and the master
branch is also mirrored at GitHub.
develop
(current development)master
(Releases)
This repository contains the source code of the Corvi desktop client and is divided in three folders.
Folder | Content |
---|---|
backend |
The Go backend takes care of storing and synchronizing data with the frontend. It persists data using SQLite, provides a RESTful API with WebSocket notifications and delivers static files (esp. the frontend). |
electron |
Configuration and starting script for electron. Electron takes care of starting the Go backend. |
frontend |
User interface, based on AngularJS. |
Automated building and testing is available via GitLab CI as configured in .gitlab-ci.yml
.
The current build environment consists of three dedicated runners - one for each platform (Linux, Mac & Windows).
- Run Backend tests (Linux, Mac, Windows)
- Create GitHub release
- Build Go executable (Linux, Mac, Windows)
- Pack Electron app (Linux, Mac, Windows)
- Zip and upload to GitHub
To build Corvi, the following dependencies are required:
- Go
- node.js + npm
- electron-packager
- github-release
- zip
- gcc (for building sqlite)
- cygwin (Windows only)
For linux, the building environment is available as Docker container.