All Projects → akvo → akvo-flow

akvo / akvo-flow

Licence: AGPL-3.0 license
A data collection and monitoring tool that works anywhere.

Programming Languages

java
68154 projects - #9 most used programming language
javascript
184084 projects - #8 most used programming language
SCSS
7915 projects
Handlebars
879 projects
clojure
4091 projects
shell
77523 projects

Projects that are alternatives of or similar to akvo-flow

akvo-flow-mobile
Akvo Flow app
Stars: ✭ 18 (-73.13%)
Mutual labels:  data-collection, akvo-flow
central-frontend
Vue.js based frontend for ODK Central
Stars: ✭ 24 (-64.18%)
Mutual labels:  data-collection
briefcase
ODK Briefcase is a Java application for fetching and pushing forms and their contents. It helps make billions of data points from ODK portable. Contribute and make the world a better place! ✨💼✨
Stars: ✭ 62 (-7.46%)
Mutual labels:  data-collection
Babler
Data Collection System For NLP/Speech Recognition
Stars: ✭ 21 (-68.66%)
Mutual labels:  data-collection
classifai
🔥 One of the most comprehensive open-source data annotation platform.
Stars: ✭ 99 (+47.76%)
Mutual labels:  data-collection
js-collections-map-set
Repository to have example code to demonstrate JavaScript Map and Set data structures.
Stars: ✭ 21 (-68.66%)
Mutual labels:  data-collection
ibge
🌎 Data collection of geographical divisions of Brazil by IBGE (https://servicodados.ibge.gov.br/api/docs)
Stars: ✭ 28 (-58.21%)
Mutual labels:  data-collection
shifting
A privacy-focused list of alternatives to mainstream services to help the competition.
Stars: ✭ 31 (-53.73%)
Mutual labels:  data-collection
finger-tree
🌵 Finger tree data structure for JavaScript
Stars: ✭ 20 (-70.15%)
Mutual labels:  agpl
android-amap-track-collect
这阵子由于项目需要,需要从手机上采集用户的运动轨迹数据,这样的功能大家都见到的很多了,比如咕咚、悦动圈,对跑步运动轨迹数据进行采集,再如,微信运动、钉钉运动,对于每一天你走步进行计数,如果要记录轨迹就离不开的手机定位,如果要记录步数那就离不开陀螺仪(角速度传感器),花了一天多的时间实现了一个定位数据实时采集的功能。
Stars: ✭ 50 (-25.37%)
Mutual labels:  data-collection
data-collection-ios
Mobile data collection app using the iOS Runtime SDK.
Stars: ✭ 24 (-64.18%)
Mutual labels:  data-collection
Noise2Noise-audio denoising without clean training data
Source code for the paper titled "Speech Denoising without Clean Training Data: a Noise2Noise Approach". Paper accepted at the INTERSPEECH 2021 conference. This paper tackles the problem of the heavy dependence of clean speech data required by deep learning based audio denoising methods by showing that it is possible to train deep speech denoisi…
Stars: ✭ 49 (-26.87%)
Mutual labels:  data-collection
arcreactor
open-source intelligence gathering for SIEMs <3
Stars: ✭ 36 (-46.27%)
Mutual labels:  data-collection
ingestly-client-javascript
Ingestly Client JavaScript SDK for modern web analytics.
Stars: ✭ 22 (-67.16%)
Mutual labels:  data-collection
minicrawler
Multiplexing web client supporting HTTP/2 and WHATWG URL compliant parser written in C
Stars: ✭ 21 (-68.66%)
Mutual labels:  agpl
coletores
Coletores de dados sobre remunerações do sistema de justiça brasileiro
Stars: ✭ 18 (-73.13%)
Mutual labels:  data-collection
esp-logger
An Arduino library providing a minimal interface to log data on flash memory and SD cards with ESP8266 and ESP32
Stars: ✭ 40 (-40.3%)
Mutual labels:  data-collection
zdh web
大数据采集,抽取平台
Stars: ✭ 292 (+335.82%)
Mutual labels:  data-collection
js-data-structures
🌿 Data structures for JavaScript
Stars: ✭ 56 (-16.42%)
Mutual labels:  agpl
Snowplow
The enterprise-grade behavioral data engine (web, mobile, server-side, webhooks), running cloud-natively on AWS and GCP
Stars: ✭ 5,935 (+8758.21%)
Mutual labels:  data-collection

Build Status

Akvo Flow is a tool for collecting, evaluating and displaying of geographically referenced data. It is composed of an android mobile app and an online web-based platform. This repository contains code for the web-based platform that comprises a backend engine and a dashboard user interface. Alongside the dashboard and mobile apps, is a data import and export component.

You can read more about the motivation and history of Akvo Flow as well as its place in the platform of tools created by Akvo.

Development

Start

To run Flow:

docker-compose up --build -d && docker-compose logs -f

Flow should be running here and you can login with user "[email protected]"

You also have the appengine admin console here

The Docker-Compose environment will have:

  1. A fake s3 server.
  2. A fake flow services, that always returns 200.
  3. The dev environment.

It downloads a prepopulated database from https://s3-eu-west-1.amazonaws.com/akvoflow/test-data/local_db.bin if there is none.

It will use the dev appengine-web.xml if there is none.

See the devserver.sh for more details.

UI development

Once Flow is started, any changes in the Dashboard folder will trigger a build of the UI code, except for the ClojureScript bit.

If you are going to work on the ClojureScript side, you can run a watch process with:

docker-compose exec -u akvo akvo-flow /bin/bash -c "cd Dashboard/app/cljs && lein watch"

Or run the commands from a terminal inside the container:

docker-compose exec -u akvo akvo-flow /bin/bash
cd Dashboard/app/cljs
lein watch

Editor Setup

The client-side (JS) code is linted using Eslint. It is recommended to install an Eslint plugin in your editor to display linting errors in realtime while making changes to the source code.

See here for a list of intergrations/plugins for various editors: https://eslint.org/docs/user-guide/integrations#editors

Backend development

The appengine dev server is started in debug mode, listening in port 5005.

It is expected that your IDE understand the Maven pom and that it compiles the Java classes to the right place.

After you IDE compiles the classes, the dev server should refresh the webcontext. Due to some Mac performance issues with Docker, the refresh interval is 20 secs instead of the default 5 secs. You can change the scan interval by setting the property GAE_FULL_SCAN_SECS to the desired value. You can also trigger a reload hitting the reload url.

If you need to restart the server:

docker-compose exec -u akvo -d akvo-flow /bin/bash -c "cd GAE && mvn appengine:stop appengine:run >> ./target/build.log"

Remember that you also can run those commands from a terminal inside the container.

Stop

docker-compose stop

Tear down and reset

docker-compose down
rm -rf GAE/target

Test instances and Manual deployments

If you want to use a configuration different from the dev one, checkout the akvo-flow-server-config directory into .. and run:

switch_tenant.sh akvoflowsandbox

To switch back to the dev setup:

switch_to_local_tenant.sh

To deploy the current state of the docker container to whatever tenant you last switched to, run:

docker-compose exec -u akvo akvo-flow ./dev-deploy.sh akvoflowsandbox $FLOW_GH_TOKEN

Running Flow Services and Flow together locally

If you want to run both Flow and Flow Services locally and talking to each other, you will need add some config to your /etc/hosts:

127.0.0.1 services.akvoflow.local akvoflow.local

Then run:

docker-compose -f docker-compose.together.yml up --build -d

You will need to access Flow using the url http://akvoflow.local:8888/

Then read the Flow Services documentation for the Flow Services specific instructions.

The DNS alias is required because the UI is sending to Flow Services the baseUrl of the Flow service, which Flow Services needs to resolve to the Flow container. The way Docker works, this baseUrl cannot be "localhost", as "localhost" for the Flow Service container is itself. Adding a DNS entry allows for one level of indirection where "akvoflow.local" will be resolved to "127.0.0.1" for the Browser, while it resolves to the flow container for the flow-services container.

Changing report Java classes

Once you have both flow and flow services running, if you are making changes to the Java report classes used in flow-services, you will need to run:

docker-compose exec -u akvo akvo-flow /bin/bash -c "cd GAE && mvn install"

To package and install the Flow jar in your local maven repository. Then you can use this Flow jar as a dependency in your local Flow Services dev environment. See Flow Services README for how to set it up.


 

YourKit supports open source projects with its full-featured Java Profiler. YourKit, LLC is the creator of YourKit Java Profiler and YourKit .NET Profiler, innovative and intelligent tools for profiling Java and .NET applications.

YourKit has offered an open source license to the Akvo FLOW team for the profiling of backend to improve its performance.

BrowserStack is supporting Akvo, allowing us to use their service and infrastructure to test the code in this repository. Thank you for supporting the open source community!

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].