asbr90 / arsnova-mobile

ARSnova is a novel web-based Audience Response System developed at THM.

Home Page:http://arsnova.eu/blog

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

ARSnova

ARSnova is a modern approach to Audience Response Systems (ARS). It is released under the GPLv3 license and is offered as a Software as a Service free of charge. Head over to arsnova.eu to see it in action.

ARSnova

ARSnova consists of two projects: the mobile client and the backend. This repository contains the mobile client code. You will find the backend at thm-projects/arsnova-backend. If you plan to work on the client you have to build both repositories - the backend and the client.

Build Status

Getting Started

The most convenient way to get started developing ARSnova is by using our Vagrant environment, found at thm-projects/arsnova-vagrant. Use your IDE on your host machine to make changes to ARSnova, while the build process is completely handled by the Vagrant box. You will not need to install any development tools.

arsnova-vagrant sets up a virtual machine for both development and production use. The basic usage is vagrant up, which will start the development environment. If you wish to start production as well, use vagrant up production.

Once any machine has been started, all required ARSnova repositories are automatically cloned from GitHub, so that you can start coding immediately.

To connect to your development machine, type vagrant ssh. After that, you can start ARSnova inside the machine by running ./start.sh. You can then access ARSnova from your host machine by opening http://localhost:8080.

QA Private Build

arsnova-vagrant also sets up the build environment we use internally at THM, which consists of Jenkins and SonarQube. The former provides a QA pipeline that builds, tests, analyzes, and finally deploys ARSnova to the production environment. SonarQube is used for the analyzation phase and provides a drill-down into many quality aspects, including technical debt.

While the development environment is running, Jenkins and SonarQube are available at:

QA Public Build

We also leverage the cloud provided by Travis CI and Sauce Labs to build and test ARSnova. Travis first builds and unit tests the software, then it instructs Sauce Labs to run smoke tests on different browsers and operating systems. This ensures that the basic features of ARSnova work across browsers and platforms. See this example to get an idea.

Our official build status provided by Travis CI:

  • Build Status for ARSnova Backend
  • Build Status for ARSnova Mobile

Development

This is the mobile client repository. The following chapters will guide you through the installation, as well as the utilization of all requirements you need to build and use the mobile client of ARSnova. Before you start, please ensure that the server part has been arranged completely.

Requirements

The mobile client uses Sencha Touch 2 as application framework. In order to work with the client you have to install Sencha Cmd. The basic requirement for installing and using Sencha Cmd is the presence of Ruby 1.9.3 and Java Runtime Environment in Version 1.7. Before you continue, please ensure that all requirements are installed properly.

The download links to the referred requirements, as well as the installation guide for Sencha Cmd can be found here:

Building

ARSnova consists of two main projects: ARSnova Mobile (this repository) and ARSnova Backend. You have to build both projects separately, in order to work with the mobile client. If you need informations regarding the installation of ARSnova Backend, please look up the read me at thm-projects/arsnova-backend.

Basically a complete build for both projects is done with:

mvn clean install

Continuous Build

The command above builds the software in such a way that it can be put into production immediately. However, this is not the best way to develop a feature or to fix a bug. Instead, we provide several fine-grained build commands, based on Sencha Cmd.

Before you call any build command, you have to refresh your Sencha Cmd project:

cd /path/to/arsnova-mobile
ant sencha:refresh

After that you can use the following command to build the mobile client for production deployment:

cd /path/to/arsnova-mobile
ant sencha:build:production

In order to develop and test on your local machine, you can use Jetty to deploy ARSnova:

cd /path/to/arsnova-backend
mvn jetty:run

If you do not want to manually rebuild the client after every change, you can use Sencha Cmd's watching feature. Then ARSnova will be built continuously, while Jetty will pick up and redeploy the changes. To do so you have to open a second terminal and execute the following command:

cd /path/to/arsnova-mobile
ant sencha:app:watch

The "testing" environment

By default, all JavaScript and CSS files are minified and put into the browser's cache. This is good to make your changes ready for production, but you might want to have a faster build including proper stack traces while your still coding your feature. This is where the testing environment comes in.

The build commands change in the following way:

cd /path/to/arsnova-mobile
ant sencha:build:testing

cd /path/to/arsnova-backend
mvn jetty:run -Dmobile.path=\${mobile.testing.path}

For using the watching functionality, run:

cd /path/to/arsnova-mobile
ant sencha:watch:testing

Credits

ARSnova is powered by Technische Hochschule Mittelhessen - University of Applied Sciences.

About

ARSnova is a novel web-based Audience Response System developed at THM.

http://arsnova.eu/blog

License:GNU General Public License v3.0


Languages

Language:JavaScript 74.7%Language:CSS 21.4%Language:Java 3.6%Language:D 0.2%Language:Shell 0.1%Language:Ruby 0.0%