exercism/gui

Name: gui

Owner: exercism

Description: null

Created: 2016-06-03 15:26:41.0

Updated: 2018-05-06 12:46:32.0

Pushed: 2017-09-15 04:57:48.0

Homepage: null

Size: 627

Language: JavaScript

GitHub Committers

UserMost Recent Commit# Commits

Other Committers

UserEmailMost Recent Commit# Commits

README

Stories in Ready Windows Build status Linux/Mac Build Status Dependency Status devDependency Status Code Climate

Overview

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.

Installing and running the app

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.

Upgrade

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)

Remove

Until an installer is available, removing is simply a matter of deleting the extracted folder.

Supported platforms

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)

Contributing guide

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:

Project overview

This is an application written with the help of the following technologies:

Project structure

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)

Coding conventions

At build time, files are inspected with jshint so make sure there are not warnings.

Writing tests
Setting up the dev env
Prerequisites:
Clone and get started

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
Running tests

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
Debugging
Dev

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.

Production

In production, chrome dev tools can be accessed by right clicking on at app and selecting View -> Toggle Developer Tools

Packaging

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

Submitting a PR

This work is supported by the National Institutes of Health's National Center for Advancing Translational Sciences, Grant Number U24TR002306. This work is solely the responsibility of the creators and does not necessarily represent the official views of the National Institutes of Health.