Database Seeder

Config Requirements

Before you seed the baseline data, please make sure that you have all the required file in the following structure:

Folder Path: /backend/source/

/backend/source.
└── project-name
    ├── config.js
    ├── config.min.js
    ├── data
       └── organisation.csv
    ├── forms
       ├── 01-clts.json
       ├── 02-health.json
       ├── 03-hh.json
       ├── 04-school.json
       └── 05-wp.json
    └── topojson.js

config.json

config.min.js is pre-generated file to merge visualisation config.js, topojson.js and menu.

MINJS = jsmin("".join([
  "var levels=" + str([g["alias"] for g in GEO_CONFIG]) + ";"
  "var map_config={shapeLevels:" + str([g["name"]
                                      for g in GEO_CONFIG]) + "};",
  "var topojson=",
  open(f"{SOURCE_PATH}/topojson.json").read(),
  ";", JS_FILE, JS_i18n_FILE
]))
JS_FILE = f"{SOURCE_PATH}/config.min.js"
open(JS_FILE, 'w').write(MINJS)

forms.json

*.json files inside forms folder is the form definition of a questionnaire which contains detail of forms including question group setting and question definition.

Example:

{
  "form": "JMP Core Questions for Monitoring WASH in Households",
  "id": 567420165,
  "question_groups": [
     {
       "question_group": "Location Demographics",
       "questions": [
         {
           "question": "location",
           "order": 1,
           "required": true,
           "type": "administration",
           "meta": true
         },
         {
           "id": 554110154,
           "question": "Village",
           "order": 3,
           "meta": true,
           "type": "text",
           "required": true,
           "options": null
         },
         {
           "id": 554110155,
           "question": "GPS Coordinates of Household",
           "order": 4,
           "meta": true,
           "type": "geo",
           "required": true,
           "options": null
         }
       ]
     }
   ]
 }

Seeder CLI

Administration Level Seeder

docker compose exec backend python -m seeder.administration

Organisation Seeder

docker compose exec backend python -m seeder.organisation

Super Admin

docker compose exec backend python -m seeder.admin youremail@akvo.org "Your Name" Akvo

Form Seeder

docker compose exec backend python -m seeder.form

Seed Fake User

docker compose exec backend python -m seeder.fake_user <number_of_user> Akvo

Datapoint Seeder

docker compose exec backend python -m seeder.fake_datapoint youremail@akvo.org <number_of_datapoints>