Sign inSign up

ohmage/server

By ohmage

•Updated over 6 years ago

The ohmage server project

Image
0

1.3K

ohmage/server repository overview

⁠ohmage API server

Join the chat at https://gitter.im/ohmage/server

ohmage is a mobile data collection system for collecting data given explicitly by a user (active data) and data that is collected by backgrounded applications (passive data). This repository houses the server-side application. The Android application can be found at here⁠.

A description of the high-level entities can be found at here⁠, and an introduction into how to read and write from an up-and-running system can be found here⁠.

The API docs for the server can be found here⁠

⁠Setup

For web application veterans, all that is needed is a MySQL database and a servlet container.

The default ohmage technology stack runs on various Linux distros and requires:

  • Java 7
  • MariaDB 5.5 or MySQL 5.5
  • Tomcat 7.0.28 or later.

For internal hosting and development, the ohmage team uses nginx 1.9 for serving up static content and better SSL performance.

⁠Setting Up the Database

ohmage depends on a MySQL instance. To set the database configuration, create an /etc/ohmage.conf file with the following parameters (fill in host,port,db name, user and password as needed, the defaults are shown):

db.driver=com.mysql.jdbc.Driver
db.jdbcurl=jdbc:mysql://127.0.0.1:3306/ohmage?characterEncoding=utf8
db.username=ohmage
db.password=&!sickly

Please see the db/migrations dir for more information on schema creation and migrating the database.

To note, after running the migrations and seeding, the default admin user to use is ohmage.admin/ohmage.passwd. You'll be forced to reset this password on first log in.

⁠Setting Up the Directory Structure

ohmage depends on a set of directories to store log files and user data. By default, these are located at /var/lib/ohmage/. This directory should contain a number of subdirectories, called audits, audio, images, documents and videos. These directories can be changed through the preference table in the database. The log directory (default: /var/log/ohmage) will create itself.

⁠Setting Up the Servlet Container

Any Servlet 3.0 compliant container should work. Internally, we use Tomcat. To build the WAR file, use ant clean dist, which will produce an ssl-disabled container. It should be noted that we do not recommend having the servlet itself handle SSL, and instead suggest you use a web server like nginx or apache to do SSL termination.

⁠Collaboration

The coding rules are loose, and the best reference would be other parts of the code. A few rules we do have are:

  • 4 space indents (no tabs).
  • Always use curly braces even if the conditional or loop is one line.
  • Opening curly braces go on the same line of the loop or conditional declaration.
  • All comments must be no more than 79 characters (with the 80th character being a new line). Code should try to adhere to this as best as possible.

Tag summary

Content type

Image

Digest

Size

395.3 MB

Last updated

over 6 years ago

docker pull ohmage/server