The purpose of excercism GUI is to provide an alternative to the command line interface (CLI) for exercism.io.
It aims to be a cross-platform desktop app that lowers the barrier of entry for people which feel more comfortable with a graphical interface than the command line.
Note:
Currently there is no installer available, this is a planned feature. Check ticket #6 for more details
The application is distributed using a compressed package (.tar.gz
for Linux/MacOS and .zip
for Windows)
To start using it, simply download the appropiate package for your platform from here
and extract it anywhere you like in the file system.
All the needed files for the app to run are contained within the extracted folder, nothing is installed outside of it.
To start the app, go to the extracted folder and double click on the exercism-gui executable.
Until an installer is available, upgrading is a manual process. To "upgrade" simply download the new package and extract over the old files.
Or extract to a new folder and remove the old version.
Removing the old folder is completely safe as no user information is stored in it (unless you explicitly configure the exercism
folder to be
under it, which is not recommended)
Until an installer is available, removing is simply a matter of deleting the extracted folder.
Platform | Architecture |
---|---|
GNU/Linux (any distro) | 64 Bits (x64) |
MacOS X | 64 Bits (x64) |
Windows 7,8,10 | 64 Bits (x64) |
Windows 7,8,10 | 32 Bits (x86, ia32) |
Contributions are more than welcome!
To help with the code a basic knowledge of Javascript is required.
If Javascript or programming is not your thing, there are many ways to help:
This is an application written with the help of the following technologies:
This is a standard ember.js app (wrapped with electron) so if you are familiar with ember and ember-cli you can jump right into.
If you are not familiar with the framework, getting to know ember is needed, but it is very easy to get started with. Some resources:
The project uses the "pod" folder structure (you don't need to worry about this if using ember-cli generators as this is handled automatically, just be aware if creating files manually)
At build time, files are inspected with jshint so make sure there are not warnings.
ember-test-selectors
addon to help manage this.npm install -g bower
--python
switch when running npm install
: npm install --python=python2.7
After forking and cloning the exercism/gui repo, install the dependencies:
$ cd /path/to/repo
$ yarn install
$ bower install
Start the dev app
$ ember electron
Note: The dev server by default uses ember-cli-mirage to intercept outgoing requests and mock API responses. This has the purpose of avoiding extra load on the API and be able to develop even if the API servers are down. If you want to disable this, set an envar DISABLE_EMBER_CLI_MIRAGE with a value of true:
$ DISABLE_EMBER_CLI_MIRAGE=true ember electron
To run the tests, do
$ ember electron:test
If you want to leave the test running on each file save, TDD style:
$ ember electron:test --server
You have the regular debugging tools at your disposal: chromium dev tools, devtron and ember inspector.
You can access the chromium dev tools via the menu in the dev server window (View -> Toggle Developer Tools) or by shortcut (Ctrl+Shift+I on Linux)
TODO: specify dev tools shortcuts for Mac/Windows
You can access the ember inspector and devtron from their respective tabs within the dev tools.
In production, chrome dev tools can be accessed by right clicking on at app and selecting View -> Toggle Developer Tools
In order to package the app, run the following
ember electron:package --platform <your_platform> --arch <your_architecture>
This will output a package under the ./electron-builds
folder
Note: If you are on OSX or Linux and Have Wine configured, you can also cross-compile for Windows
gh-3 some comment closes #3
closes #<ticket_number>