• Stars
    star
    129
  • Rank 277,648 (Top 6 %)
  • Language
    Python
  • License
    GNU Affero Genera...
  • Created over 9 years ago
  • Updated about 1 month ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

kpi is the (frontend) server for KoboToolbox. It includes an API for users to access data and manage their forms, question library, sharing settings, create reports, and export data.

KPI

Python Build Status Python Coverage Status JavaScript Build Status

We're open for contributions!

Important notice when upgrading from any release older than 2.020.18

Prior to release 2.020.18, this project (KPI) and KoBoCAT both shared a common Postgres database. They now each have their own. If you are upgrading an existing single-database installation, you must follow these instructions to migrate the KPI tables to a new database and adjust your configuration appropriately.

If you do not want to upgrade at this time, please use the shared-database-obsolete branch instead.

Python Dependencies

Python dependencies are managed with pip-compile and pip-sync from the pip-tools package. The dependencies are listed in dependencies/pip/, with core requirements in dependencies/pip/requirements.in. You may use pip directly with one of the compiled dependencies/pip/*.txt files, but consider using instead the pip-sync. Do not add new dependencies directly to the compiled dependencies/pip/*.txt files; instead, update the relevant the source dependencies/pip/*.in file(s), and execute ./pip-compile.sh after any changes. You can pass arguments to pip-compile.sh with e.g. ./pip-compile.sh --upgrade-package=xlwt.

Downloading and compiling the translations

  • Pull the submodule into the locale directory with git submodule update.
  • Optionally configure transifex to pull the latest translations into the locale directory with tx pull --all
  • Run python manage.py compilemessages to create .mo files from the .po files.
  • To test out locales in the interface, double click "account actions" in the left navbar, use the dropdown to select a language, and refresh.

Searching

Results from the tags and api/v2/assets endpoints can be filtered by a Boolean query specified in the q parameter. For example: api/v2/assets?q=owner__username:meg AND name__icontains:quixotic would return assets whose owner has the username "meg" (case sensitive) and whose name contains "quixotic" anywhere (case insensitive). For more details about the syntax, see the documentation at the top of kpi/utils/query_parser/query_parser.py.

Admin reports

There are several types of data reports available to superusers.

  • Full list of users including their details provided during signup, number of deployed projects (XForm count), number of submissions, date joined, and last login: <kpi base url>/superuser_stats/user_report/. File being created is a CSV, so don't download immediately to wait for server to be finished writing to the file (it will download even if incomplete).
  • Monthly aggregate figures for number of forms, deployed projects, and submissions (from kobocat): <kc server domain>/<superuser username>/superuser_stats/

Django Admin Interface

As this is a Django project, you may find the admin panel at <kpi base url>/admin useful, e.g. to configure user accounts or log in as other users without knowing their passwords. You must use a superuser account to access the admin panel.

Icons

All project icons are kept in jsapp/svg-icons/. Adding new icon requires adding new svg file here and regenerating icons with npm run generate-icons. Filenames are used for icon font classnames, e.g. .k-icon-arrow-last for arrow-last.svg (please use kebab-case). You can see all available icons in Storybook by running npm run storybook.

Supported Browsers

See browsers list config

More Repositories

1

kobo-docker

Stack of docker containers to all server-side components of KoBoToolbox (kpi, kobocat, enketo-express).
Shell
178
star
2

kobo-install

A command-line installer for setting up and running KoboToolbox on a remote server or local computer, using kobo-docker.
Python
168
star
3

kobocat

Our (backend) server for providing blank forms to Collect and Enketo and for receiving and storing submissions.
Python
117
star
4

formpack

formpack is a tool used by kpi to parse and repackage survey data for exports, reports, and maps based on different languages available from the form definition.
Python
14
star
5

docs

The official KoboToolbox userguide website.
HTML
14
star
6

dkobo

Inactive and preserved for reference only
CoffeeScript
14
star
7

dist-kobo-devel

A script to download and configure all server components of KoBoToolbox for installation on a local machine
Shell
13
star
8

xls-import

⚠️ THIS IS NOT A SUPPORTED REPOSITORY. It is here with the hope that it's helpful for your own efforts.
Python
8
star
9

kobo-transfer

Transfer assets and submissions between two projects.
Python
7
star
10

android-deploy

A script to simply the setup of Android devices based on a single configuration
Batchfile
6
star
11

kobomaps-orig

JavaScript
5
star
12

kobocat-template

Template files to modify default kobocat styling
HTML
5
star
13

kobo-helm-chart

This project is new. We do not yet release stable versions.
Smarty
4
star
14

kobosync

A standalone Java app to copy data from Android to local computer and aggregate survey records into a CSV file
Java
4
star
15

form-builder-translations

3
star
16

kobo-notebooks

Guided walkthroughs using Kobo's APIs and Jupyter Notebooks.
3
star
17

kobo-geonode

Kobo to GeoNode integration and documentation
C#
2
star
18

koboform

A Java/GWT based formbuilder (no longer supported). Replaced by dkobo.
Java
2
star
19

covidportal

HTML
2
star
20

rundeck

Scripts used on ansible with a Rundeck Web UI for action automation.
Shell
1
star
21

restframework-tutorial

Python
1
star
22

wfp-svg-map-documentation

1
star
23

mockobo

Make mock submissions to a deployed Kobo form
Python
1
star
24

kobomaps-old

A cloud based system for uploading data and visualizing it geospatially.
PHP
1
star
25

reports

SCSS
1
star
26

enketo-image-customization-widget

Enketo Widget to customize SVG images
JavaScript
1
star
27

enketo-express-extra-widgets

Docker configuration for building Enketo Express with extra widgets
Dockerfile
1
star