IMPACT OSS data model contains the following principal entities:
Recommendations: the Recommendations and Treaty Body Observations a State receives from the different UN Human Rights Mechanisms (or Bodies)
Actions: the Implementing actions a State defines to address the Recommendations
SDG Targets (optional): the targets set by the UN for the 17 Sustainable Development Goals (SDGs)
Users: the application users
These entities can be classified according to multiple category groupings, also called taxonomies, that need to be set up on the server - taxonomies cannot currently be managed through the UI.
Taxonomies can include universal classifications of recommendations used by the UN such as
Human Rights Mechanisms (or Bodies)
Human Rights Issues (or Themes)
Recommending States (applicable to UPR (Universal Periodic Review) recommendations only)
... and State-specific classifications of recommendations and actions (and users) such as
Recommendation Clusters (for clustering overlapping recommendations and assign actions to clusters)
Organisations (for identifying Government agencies responsible for implementation of actions, and application users).
Finally, also the SDGs are regarded as taxonomies, classifying the SDG Targets (and optionally also recommendations or actions if desired).
Taxonomies should and categories could be defined in the "Seeds" file /db/seeds.rb that allows initialising the database with default content during installation and many common taxonomies and categories are included by default.
Note: in addition to the default Seeds file in the "master" branch there is also a Seeds file for a minimal set up in the "lite" branch that only contains the most basic taxonomies and categories
While categories can easily be added through the UI after the initial, installation, taxonomies can not be managed using the UI but must be updated in the database, e.g. using the Rails CLI (Command Line Interface).
Here is an example for how a taxonomy can be set up in the Seeds file:
body = Taxonomy.new(title: 'Human Rights Mechanism',tags_recommendations: true,tags_measures: false,tags_sdgtargets: false,tags_users: false,allow_multiple: false,has_manager: true,priority: 1,is_smart: false,groups_recommendations_default: 1,)body.save!
For each taxonomy the following attributes can be specified (see also /db/schema):
the taxonomy title (not currently used and overridden by client configuration)
classifies SDG Targets?
false: categories are exclusive, true: multiple categories allowed
if user can be assigned and made responsible for category (will recive email reminders for overdue indicator status updates)
display order of taxonomy (can also be used for taxonomy groups defined by client config, e.g. priority 1-10 for universal and 11-20 for national taxonomies)
if categories are SMART criteria - determines UI presentation
if Actions are grouped (or subgrouped) by category in Action lists. 1: primary group, 2: subgroup
if Recommendations are grouped (or subgrouped) by category in Recommendation lists. 1: primary group, 2: subgroup
if SDG Targets are grouped (or subgrouped) by category in SDG Target lists. 1: primary group, 2: subgroup
Here an example how categories can be initialised using FactoryGirl:
FactoryGirl.create(:category,taxonomy:body,title:'Universal Periodic Review',short_title:'UPR',)
Note: the taxonomy attribute must reference a taxonomy previously defined in the Seeds file (here:
For each category the following attributes can be specified (see also /db/schema):
Remember: opposed to taxonomies, categories can also be created, updated and deleted through the UI
the category title
the category short title, used for tags
the category reference, should be unique, can be used for sorting
the category decsription (supports markdown)
a category URL if relevant
if category is draft (
if category can only tag users (
the taxonomy id (note: in the Seeds file use previously defined taxonomy variable instead, eg
a user id (not to be specified in Seeds file but using UI only)