Social augmented reality app (SoAR)
JavaScript HTML CSS Shell
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
app Bump version to 0.5.1, change backend address Aug 17, 2016
hooks Exciting initial commit Nov 19, 2015
resources Correctly rename one of the android icons Jan 25, 2016
scripts Update signing script Feb 9, 2016
.eslintignore Add some files to eslint ignore Mar 11, 2016
.gitignore Add ionic api file to gitignore Apr 4, 2016
.npmrc Add .npmrc to always install strict versions Jan 29, 2016
LICENSE Change licensing to MIT Jan 13, 2016 Add some more authors Feb 16, 2017
Vagrantfile npm install and bower install to Vagrant provisioning, some vagrant i… Dec 7, 2015
bower.json Add angular-moment files to build system Jul 20, 2016
config.xml Bump version to 0.5.1, change backend address Aug 17, 2016 Add shutter sound when taking a screenshot Aug 3, 2016
gulpfile.js Add angular-moment files to build system Jul 20, 2016
ionic.project Add ionic project file Apr 4, 2016
package.json Add push notification support Jul 21, 2016


Hi there!

Welcome to the Social Augmented Reality mobile application, also kown as SoAR! It's powered by Cordova and Crosswalk, with npm and bower as the package managers. Ionic was chosen as the hybrid framework of choice! It's currently only been tested on Android, but it might also work on iOS someday, who knows.

This is the front-end part, the server can be found at


The Vagrant way

If you'd prefer using Vagrant for your development needs, just install Vagrant, then run 'vagrant up' inside the project folder. Currently, it install the required development dependencies specified below, and also the Android SDK for easy deployment and testing. Neato!

The regular way

First thing's first, install a whole bunch of Node stuff

npm install -g bower gulp cordova ionic

Then, clone this repository and run the following commands to install dependancies

npm install && bower install

Afterwards, run gulp to build the www/ folder, which contains the app itself! Pass the flag --env production to it to minify CSS, HTML and such when you're about to release the app!

gulp build --env production

When deploying to actual devices, remember to install the needed cordova plugins, which ionic handily stores in the package.json

ionic state restore


To start livereload server that watches your files diligently and reloads when necessary, run

gulp watch

Environment variables

You can pass in a couple of different arguments to Gulp to inject sensitive API keys and credentials and such, things that are best left out of version control!


Mock data

When developing cordova-based applications in the browser instead of the mobile, it's usually a good idea to provide mock functionality for the various device functionalities! This Chrome extension is highly recommended for development.



Add the following lines manually to your AndroidManifest.xml under platforms/android to enable WebRTC

<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
<uses-permission android:name="android.permission.CAMERA" />


SoAR is developed by the Learning Environments research group at the School of Arts, Design and Architecture of Aalto University, Finland.

Development, design and direction:

  • Matti Jokitulppo (@melonmanchan)
  • Jukka Purma (@jpurma)
  • Leo Nikkilä (@lnikkila)
  • Marjo Virnes
  • Lassi Veikkonen (@lassiveikkonen)
  • Samuli Raivio (@bqqbarbhg)
  • Sanna Reponen
  • Jana Pejoska