Data Dictionary

1. User

Model attributes

Attribute Type Required Description
id

int

auto

primary key

username

string

true

unique alphamumeric identifier

email

string

true

contact email address

first_name

string

true

user’s given name

last_name

string

true

user’s surname

date_joined

datetime

auto

date and time at which the user was joined Tunga

account_type

int

no

type of user

developer, project_owner, project_manager, admin
image

string

no

relative local path of user’s avatar

payoneer_status

string

no

current status of user’s Payoneer application

one of initial, pending, approved or declined

default: initial

API only attributes

Attribute Type Required Description
display_name

string

no

user’s full name

avatar_url

string

no

absolute url of user’s avatar

display_type

string

no

display friendly representation of the user type

one of Developer, Project Owner or Project Manager

is_developer

boolean

no

indicates is user is a developer

is_project_manager

boolean

no

indicates is user is a project manager

is_project_owner

boolean

no

indicates is user is a project owner/ client

is_admin

boolean

no

indicates is user is an admin

profile

Profile

no

user’s profile object

Relate API docs

2. Profile

Model attributes

Attribute Type Required Description
id

int

auto

primary key

user

User

auto

owner of the profile

country

string

no

user’s country of residence

must be an ISO 3166-1 alpha-2 country code

e.g UG for Uganda, NL - The Netherlands

city

string

no

user’s city of residence

street

string

no

user’s street of residence

plot_number

string

no

user’s plot number of residence

postal_code

string

no

user’s postal code of residence

postal_address

string

no

user’s postal address of residence

phone_number

string

no

user’s phone number

skills

list<Skill>

no

a list of the user’s skills

saved and parsed as a string of comma separated values e.g

React.js, Django, "Amazon Web Services"
vat_number

string

no

user’s vat number

id_document

string

no

absolute url of user’s only applies to clients

skype_id

string

no

user’s skype id

API only attributes

Attribute Type Required Description
country_name

string

no

full country name e.g Uganda for UG

city_name

string

no

string reprensentation of city object

location

string

no

City, Country location e.g Kampala, Uganda

skills

list<Skill>

no

list of Skill objects

skills_details

hash<list<Skill»

no

hash of Skill object lists where each hash key is a skill category

language, framework, platform, library, storage, api and other

Relate API docs

3. Company

Model attributes

Attribute Type Required Description
id

int

auto

primary key

user

User

auto

user who created the company

name

string

no

registered name of the company

country

string

no

country in which company is located

must be an ISO 3166-1 alpha-2 country code

e.g UG for Uganda, NL - The Netherlands

city

string

no

city in which company is located

street

string

no

company street address

plot_number

string

no

company plot number

postal_code

string

no

company postal code

postal_address

string

no

company postal address

tel_number

string

no

company telephone number

vat_number

string

no

company vat number

reg_no

string

no

company registration number

website

string

no

company website

bio

string

no

a brief decription of the company

skills

list<Skill>

no

a list of the skills needed by the company

saved and parsed as a string of comma separated values e.g

React.js, Django, "Amazon Web Services"

API only attributes

Attribute Type Required Description
country_name

string

no

full country name e.g Uganda for UG

city_name

string

no

string reprensentation of city object

location

string

no

City, Country location e.g Kampala, Uganda

skills

list<Skill>

no

list of Skill objects

skills_details

hash<list<Skill»

no

hash of Skill object lists where each hash key is a skill category

language, framework, platform, library, storage, api and other

Relate API docs

4. Skill

Model attributes

Attribute Type Required Description
id

int

auto

primary key

name

string

true

name of the skill or product

e.g MongoDB, JavaScript e.t.c

5. Education

Model attributes

Attribute Type Required Description
id

int

auto

primary key

user

User

auto

owner of the education info

institution

string

true

name of the institution/ school

award

string

true

name of the award after e.g Bachelor of Science in Mathematics

start_month

number

true

integer for start month for duration of education award

values 1 to 12 for January to December

start_year

number

true

start year for duration of education award

end_month

number

no

integer for end month for duration of education award

values 1 to 12 for January to December

end_year

number

no

end year for duration of education award

details

string

true

detailed description of the education award

created_at

datetime

auto

timestamp of when the object was created

Relate API docs

6. Experience

Model attributes

Attribute Type Required Description
id

int

auto

primary key

user

User

auto

owner of the education info

company

string

true

name of the company

position

string

true

position/title of the company after e.g Senior Software Engineer

start_month

number

true

integer for start month for duration of education award

values 1 to 12 for January to December

start_year

number

true

start year for duration of education award

end_month

number

no

integer for end month for duration of education award

values 1 to 12 for January to December

end_year

number

no

end year for duration of education award

details

string

true

detailed description of the education award

created_at

datetime

auto

timestamp of when the object was created

Relate API docs

7. Project

Model attributes

Attribute Type Required Description
id

int

auto

primary key

user

User

auto

user that created the project (owner by default)

title

string

true

brief title of the project

description

string

true

more detailed decription of the project

owner

User

no

the owner of the project (overrides user when set)

pm

User

no

project manager for the project

skills

list<Skill>

true

a list of skills needed to complete the project

saved and parsed as a string of comma separated values e.g

React.js, Django, "Amazon Web Services"
budget

string

no

budget for the project

currency

string

auto

ISO 4217 currency code for the currency in which the payment will be made

default: EUR

type

string

true

type of project

one of web, mobile, other

default: other

expected_duration

string

no

type of project

one of 2w - 2 weeks, 6m - 6 months, permanent

default: none

stage

string

no

stage of the project

one of opportunity, active

default: active

start_date

date

no

start date for the project

deadline

date

no

desired deadline for the project

client_survey_enabled

boolean

auto

determines if surveys are enabled for this clients

default: true

pm_updates_enabled

boolean

auto

determines if updates are enabled for this pm

default: true

created_at

datetime

auto

timestamp of when the object was created

archived

boolean

no

indicates whether the object is archived

archived_at

datetime

auto

timestamp of when the object was archived

Relate API docs

8. Document

Model attributes

Attribute Type Required Description
id

int

auto

primary key

project

Project

true

Project object the document is related to

url

string

no

absolute url for the document, used for shared documents links e.g Google Drive and Dropbox

file

object

no

Uploaded file object

used for directly uploaded documents

type

string

true

type of document

one of

estimate, proposal, planning, requirements, wireframes, timeline, other
title

string

no

title of the document

description

string

no

description of the document

created_by

User

auto

user that created the document

created_at

datetime

auto

timestamp of when the object was created

API only attributes

Attribute Type Required Description
download_url

string

no

absolute url for the document

Relate API docs

9. Participation

Model attributes

Attribute Type Required Description
id

int

auto

primary key

project

Project

true

Project the user is participating to

user

User

true

participating user

status

string

no

status of the user’s participation

one of initial, accepted, rejected

default: initial

updates_enabled

boolean

auto

determines if updates are enabled for this participant

default: true

created_by

User

auto

user that created the participation object

created_at

datetime

auto

timestamp of when the object was created

Relate API docs

10. InterestPoll

Model attributes

Attribute Type Required Description
id

int

auto

primary key

project

Project

true

Project the user is being polled about

user

User

true

polled user

status

string

no

status of the user’s poll

one of initial, interested, uninterested

default: initial

created_by

User

auto

user that created the participation object

created_at

datetime

auto

timestamp of when the object was created

Relate API docs

11. Invoice

Model attributes

Attribute Type Required Description
id

int

auto

primary key

project

Project

true

Project for the invoice

user

User

true

user invoicing (for tunga invoices) or being invoiced (for client and developer)

type

string

true

type of invoice

one of client, tunga, developer

name denotes entity being invoiced.

developer is only for historical purposes

title

string

no

title of the invoice

default: title of the project

amout

number

true

amount that will be paid

currency

string

auto

ISO 4217 currency code for the currency in which the payment will be made

default: EUR

tax_rate

number

true

tax rate as a percentage e.g 20 for 20%

processing_fee

number

true

processing fee that will be charged for the transaction

default: 0

created_by

User

auto

user that created the invoice

created_at

datetime

auto

timestamp of when the object was created

number

string

auto

unique invoice number for this invoice

batch_ref

string (uuid4)

no

unique reference for invoices created by a batch request e.g one payout to multiple devs

paid

boolean

no

indicates whether invoice has been paid

paid_at

datetime

no

timestamp of when payment receipt was confirmed

status

string

auto

one of pending, approved or canceled

default: approved for client and developer invoice types and pending for tunga invoices

setting this field to approved for tunga invoice types will trigger a payout

API only attributes

Attribute Type Required Description
tax_amount

number

auto

tax amount calculated from the amount and tax_rate

amount * (tax_rate/100)

Relate API docs

12. Payment

Model attributes

Attribute Type Required Description
id

int

auto

primary key

invoice

Invoice

true

Invoice for which the payment will be made

amout

string

true

amount that will be paid

currency

string

auto

ISO 4217 currency code for the currency in which the payment will be made

default: EUR

payment_method

string

true

one of stripe, bank, bitcoin, bitonic

all new payments are made with either stripe or bank, However, bitcoin and bitonic are supported for historical data

paid_at

datetime

no

timestamp of when payment receipt was confirmed

created_by

User

auto

user that created the payment

created_at

datetime

auto

timestamp of when the object was created

API only attributes

Attribute Type Required Description
type

string

no

type of payment

one of sale, purchase

sale for client and developer invoices and purchase for tunga invoices

Relate API docs

13. ProgressEvent

Model attributes

Attribute Type Required Description
id

int

auto

primary key

project

Project

true

Project object associated with the event

type

string

true

event type

developer = Developer Update,
pm = PM Report,
client = Client survey,
milestone = Milestone (for all),
internal = Internal Milestone (only PMs and Devs)
title

string

true

title of the event

description

string

true

description of the vent

due_at

date

true

date when a report for the event is due

last_reminder_at

datetime

auto

timestamp of when the last reminder about the event was sent to participants

missed_notification_at

datetime

auto

timestamp of when the missed notification was sent to Tunga

created_by

User

auto

user that created the progress event

created_at

datetime

auto

timestamp of when the object was created

API only attributes

Attribute Type Required Description
is_participant

boolean

auto

true if current user is a participant in event

participants

User

auto

list of all event participants

Relate API docs

14. ProgressReport

Model attributes

Attribute Type Required Description
id

int

auto

primary key

event

ProgressEvent

true

ProgressEvent for which the report is required

user

User

auto

user that created the progress report

created_at

datetime

auto

timestamp of when the object was created

developer and pm reports only

status

string

yes - for developer and pm events

no - for all other cases

current status of the project or milestone

one of

onschedule, behind_progressing, behind_stuck, behind, stuck

behind and stuck are only for historical purposes

stuck_reason

string

yes - only if status is either behind_stuck or stuck for developer and pm events

no - for all other cases

reason for being stuck if status is either behind_stuck or stuck for developer and pm events

one of

resolving_error, poor_doc, hardware_problem, unclear_spec, personal_issue, other
stuck_report

string

yes - only if stuck_reason is other for developer and pm events

no - for all other cases

detailed reason for being stuck if stuck_reason is other for developer and pm events

percentage

number

yes - for developer and pm events

no - for all other cases

an integer 1 to 100 representing the percentage of the project or milestone completed

accomplished

string

yes - for developer and pm events

no - for all other cases

description of what has been accomplished since the last update

todo

string

yes - for developer and pm events

no - for all other cases

description of what is now being done

next_deadline

date

yes - for developer and pm events

no - for all other cases

date for next deadline

next_deadline_meet

boolean

yes - for developer and pm events

no - for all other cases

indicates whether the next deadline will be met

next_deadline_fail_reason

string

yes - only for developer and pm events for which next_deadline_meet is false

no - for all other cases

reason why the next deadline will not be met

developer and client reports only

rate_deliverables

number

yes - for developer and client events

no - for all other cases

an integer 1 to 5 representing the rating for what has been delivered

pm and client reports only

last_deadline_met

boolean

yes - for developer and pm events

no - for all other cases

indicates whether the last deadline was be met

deadline_miss_communicated

boolean

yes - only for pm and client events for which last_deadline_met is false

no - for all other cases

expresses whether the last deadline miss was communicated beforehand

developer reports only

started_at

date

yes - for developer events

no - for all other cases

date when the project or milestone was started

pm reports only

deadline_report

string

yes - only for pm events for which last_deadline_met is false

no - for all other cases

reason why the last deadline was not be met

team_appraisal

string

yes - only for pm events

no - for all other cases

detailed description of the team’s performance

client reports only

deliverable_satisfaction

boolean

yes - only for client events

no - for all other cases

detailed description of the team’s performance

rate_communication

number

yes - for client events

no - for all other cases

an integer 1 to 5 representing the rating for communication with PM and developers

deliverable_report

string

yes - only for client events for which deliverable_satisfaction is false or rate_deliverables is lower than 3

no - for all other cases

reason why deliverable_satisfaction is false or rate_deliverables is lower than 3

communication_report

string

yes - only for client events for which rate_communication is less than 3

no - for all other cases

reason why rate_communication is lower than 3

Relate API docs

15. Comment

Model attributes

Attribute Type Required Description
id

int

auto

primary key

user

User

auto

user that created the comment

body

string

no

the comment

object_id

int

no

id of the object the comment was added to

content_type

ContentType

no

ContentType of the object the comment was added to

created_at

datetime

auto

timestamp of when the object was created

Relate API docs

16. Message

Model attributes

Attribute Type Required Description
id

int

auto

primary key

channel

Channel

no

Channel the message was sent in

user

User

no

user that sent the message

body

string

no

the message

created_at

datetime

auto

timestamp of when the object was created

alt_user

json

no

user object for external messages e.g Slack responses

source

string

no

message source

either null or slack

extra

json

no

extra details about external messages e.g from Slack

API only attributes

Attribute Type Required Description
sender

object

no

consolidated object representing the message sender user either user or alt_user or channel inquirer as the data source

must include id, name, display_name and short_name with optional email, avatar_url and inquirer fields

Relate API docs

17. Channel

Model attributes

Attribute Type Required Description
id

int

auto

primary key

type

int

auto

channel type

direct, topic, support, developer

default: topic

subject

string

no

topic of the channel

last_read

int

no

tracks last read activity id for guests

object_id

int

no

id of the object the channel was created for

content_type

ContentType

no

ContentType of the object the channel was created for

created_by

User

no

user that created the channel

created_at

datetime

auto

timestamp of when the object was created

Relate API docs

18. ChannelUser

Model attributes

Attribute Type Required Description
id

int

auto

primary key

channel

Channel

true

Channel the participant is part of

user

User

true

user that is participating in the channel

last_read

int

no

tracks last read activity id for participant

last_email_at

datetime

auto

timestamp of when the last email about the missed messages was sent

created_at

datetime

auto

timestamp of when the object was created

19. Upload

Model attributes

Attribute Type Required Description
id

int

auto

primary key

file

object

no

Uploaded file object

user

User

no

user that uploaded the file

object_id

int

no

id of the object the file was uploaded to

content_type

ContentType

no

ContentType of the object the file was uploaded to

created_at

datetime

auto

timestamp of when the file was uploaded

20. ContentType

Django’s built in ContentType model

https://docs.djangoproject.com/en/dev/ref/contrib/contenttypes/#the-contenttype-model