Skip to main content
Version: 1.0

Prerequisites

Tools and skills needed for developing ODE applications.

What is ODE?

Open Data Ensemble (ODE) is a comprehensive platform for mobile data collection and synchronization. It consists of:

  • Formulus - React Native mobile app for Android/iOS
  • Formulus Formplayer - React web application for form rendering
  • Synkronus - Go-based backend API server
  • Synkronus CLI - Command-line tool for server management

Architecture Overview

┌─────────────────┐
│   Formulus      │  React Native Mobile App
│  (Android/iOS)  │
└────────┬────────┘
         │
         │ HTTP/HTTPS
         │
┌────────▼────────┐
│     Nginx       │  Reverse Proxy (Port 80)
│  (Port 80/443)  │
└────────┬────────┘
         │
         │ Proxy
         │
┌────────▼────────┐
│   Synkronus     │  Go API Server (Port 8080)
│   (Port 8080)   │
└────────┬────────┘
         │
         │ PostgreSQL
         │
┌────────▼────────┐
│   PostgreSQL    │  Database (Port 5432)
│  (Port 5432)    │
└─────────────────┘

Required Software

Before proceeding, verify you have the following installed:

Essential Tools

  • Git (v2.30+)

    git --version
    
  • Node.js (v16.0.0 or higher)

    node --version
    npm --version
    
  • Go (v1.22 or higher)

    go version
    
  • Docker (v20.10+)

    docker --version
    docker compose version
    
  • Android SDK and ADB (for mobile development)

    adb version
    
  • Android Studio - For Android development
  • VS Code or your preferred IDE
  • Physical Android Device - For testing (recommended)

System Requirements

Minimum Requirements

  • OS: Linux, macOS, or Windows (WSL2)
  • RAM: 8GB (16GB recommended)
  • Storage: 10GB free space
  • CPU: Multi-core processor

Network Requirements

  • Internet connection for downloading dependencies
  • Local network access (for device connection)
  • Port 80 available (for nginx)

Build Tools

The build tools for ODE applications include:

  • Synkronus CLI: Command-line interface for managing and deploying applications
  • Node.js: For building custom applications
  • Docker: For running local Synkronus instances

Required Skills

Building an ODE application requires a technical skillset.

To Build an App

  • Use of command line tools to compile and deploy configuration code
  • JSON Schema for building forms
  • JSON Forms UI Schema for form layouts
  • JavaScript/TypeScript for custom applications
  • React for custom application development

To Deploy an App

  • System administration
  • Database administration for PostgreSQL
  • Familiarity with Docker
  • Service monitoring
  • Use of command line tools

Configuration Skills

ODE applications consist of JSON files, form schemas, custom applications, and translations. The following technical skills are necessary:

JSON Schema

Forms in ODE are defined using JSON Schema. Understanding JSON Schema is essential for building forms.

JSON Forms

Form layouts are defined using JSON Forms UI Schema. Familiarity with JSON Forms is important for creating user interfaces.

JavaScript/TypeScript

Custom applications are built using JavaScript or TypeScript. A good understanding of these languages is required for building custom applications.

PostgreSQL

ODE uses PostgreSQL for data storage. Familiarity with SQL and PostgreSQL is useful for data management and analytics.