|
1 |
| -# Project Corvi - Social Learning Tool |
2 |
| - |
3 |
| -## Repository Structure |
4 |
| - |
5 |
| -### Branches |
6 |
| -* develop (current development) |
7 |
| -* master (tagged releases) |
8 |
| - |
9 |
| -### Folders |
10 |
| -* electron |
11 |
| - * main.js, package.json |
12 |
| -* frontend |
13 |
| - * index.html, css, angular etc. |
14 |
| -* backend |
15 |
| - * main.go etc. |
16 |
| -* .gitlab-ci.yml |
17 |
| -* README.md |
18 |
| - |
19 |
| -## Continuous Delivery Stages |
20 |
| - |
21 |
| -1. Clean Up |
22 |
| -2. Test Go |
23 |
| -3. Build Go executable (darwin x64) |
24 |
| -4. Build Go executable (linux x64) |
25 |
| -5. Build Go executable (windows x64) |
26 |
| -6. Build electron package (darwin x64) |
27 |
| -7. Build electron package (linux x64) |
28 |
| -8. Build electron package (windows x64) |
29 |
| -9. Zip packages and upload to S3 |
30 |
| - |
31 |
| -### Build Docker image |
32 |
| -* golang |
33 |
| -* gox |
34 |
| -* node.js + npm |
35 |
| -* electron-packager |
36 |
| -* electron-builder |
37 |
| -* python + pip |
38 |
| -* aws-cli |
39 |
| -* zip |
| 1 | +# Project Corvi - Social Learning |
| 2 | +Corvi is a social learning app which works similar to an index-card box. |
| 3 | +Users can create boxes to which they can add questions like vocabulary, formulae, definitions or similar. |
| 4 | +Those questions get tested in regular intervals, depending on the learning progress the user makes. |
| 5 | +Corvi makes sure, that new questions are learned stepwise to keep daily learning sessions short. |
| 6 | +At the same time it takes care that the user does not unlearn previous questions. |
| 7 | + |
| 8 | + |
| 9 | + |
| 10 | +# Download |
| 11 | +Corvi is currently available for Windows, Mac OSX and Linux. |
| 12 | +You can find the release notes and the download of the latest version in the [release](https://github.com/marbec-com/corvi-public/releases) section. |
| 13 | + |
| 14 | +# Repository Structure |
| 15 | +## Branches |
| 16 | +The main repository is located at [GitLab](https://gitlab.solid.marb.ec/marbec/corvi) and the `master` branch is also mirrored at [GitHub](https://github.com/marbec-com/corvi-public). |
| 17 | + |
| 18 | +* `develop` (current development) |
| 19 | +* `master` (Releases) |
| 20 | + |
| 21 | +## Folders |
| 22 | +This repository contains the source code of the Corvi desktop client and is divided in three folders. |
| 23 | + |
| 24 | +Folder | Content |
| 25 | +------------ | ------------- |
| 26 | +`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). |
| 27 | +`electron` | Configuration and starting script for electron. Electron takes care of starting the Go backend. |
| 28 | +`frontend` | User interface, based on AngularJS. |
| 29 | + |
| 30 | +## Continuous Delivery |
| 31 | +Automated building and testing is available via GitLab CI as configured in `.gitlab-ci.yml`. |
| 32 | +The current build environment consists of three dedicated runners - one for each platform (Linux, Mac & Windows). |
| 33 | + |
| 34 | +1. Run Backend tests (Linux, Mac, Windows) |
| 35 | +2. Create GitHub release |
| 36 | +3. Build Go executable (Linux, Mac, Windows) |
| 37 | +4. Pack Electron app (Linux, Mac, Windows) |
| 38 | +5. Zip and upload to GitHub |
| 39 | + |
| 40 | +## Dependencies |
| 41 | +To build Corvi, the following dependencies are required: |
| 42 | + |
| 43 | +* [Go](https://github.com/golang/go) |
| 44 | +* [node.js + npm](https://github.com/nodejs/node) |
| 45 | +* [electron-packager](https://github.com/electron-userland/electron-packager) |
| 46 | +* [github-release](https://github.com/aktau/github-release) |
| 47 | +* zip |
| 48 | +* gcc (for building sqlite) |
| 49 | +* cygwin (Windows only) |
| 50 | + |
| 51 | +For linux, the building environment is available as Docker [container](https://github.com/herzog31/corvi-build). |
0 commit comments