upwaver

Adrian Stämpfli and Michael Schmid, IMS-FHS

2018-01-16

upwaver is a wrapper around the UpWave API that allows users to access the UpWave API from within R.

While using UpWave (https://www.upwave.io/) you might come to a point where you want to extract detailed information of ongoing projects or you might want to upload Cards to certain Boards directly out of a Excel sheet. Upwaver is a small tool to solve such problems without copy-pasting a lot of content.

The package was designed based on the given UpWave API (https://upwavehq.github.io/api/).

Basics about UpWave and upwaver

Your Domain

Each organisation (company, team) with an UpWave account has its own <TEAM_DOMAIN>. You can see this on the frontpage of your UpWave account: (https://<TEAM_DOMAIN>.upwave.io). The upwaver package refers to this <TEAM_DOMAIN> as organisation.

Authentication

To access information of your account (domain), you need an access token. It can be obtained by visiting your account settings. Click your profile image, select “Settings” and find your API-Key in the “Account” tab. The upwaver package refers to the API-Key as token.

Boards

An UpWave account consits of different Boards (projects) on which an organisation works simultaneously. The upwaver package identifies a Board with the board_id and board_name.

Cards

Each Board consits of different Cards which can be seen as lots of “work packages”. The contain Information about the actual tasts to do inside the project. They are the objects to talk to when using upwaver.

Getting Board- & Card- information from UpWave

The upwaver package gives three basic functionalities to directly access UpWave information.

List of Boards

Use list_boards() to get a list of all boards of your organisation. Archived boards will not be shown in this list.

## [1] 21
##          Length Class  Mode   
## count     1     -none- numeric
## next      0     -none- NULL   
## previous  0     -none- NULL   
## results  21     -none- list
##                 Length Class  Mode     
## id              1      -none- numeric  
## title           1      -none- character
## team            3      -none- list     
## created_dt      1      -none- character
## created_by_user 5      -none- list

Board details

Use board_details() to get detailed background Information about a specific board.

##                            Length Class  Mode     
## id                         1      -none- numeric  
## title                      1      -none- character
## purpose                    1      -none- character
## background_image_url       1      -none- character
## background_image_thumb_url 0      -none- NULL     
## created_dt                 1      -none- character
## created_by_user            5      -none- list     
## columns                    3      -none- list     
## rows                       1      -none- list     
## colors                     3      -none- list

List of Cards

Use list_cards() to get detailed Information about all Cards of a specific board. This includes cards that are marked as completed.

## [1] 20
##          Length Class  Mode   
## count     1     -none- numeric
## next      0     -none- NULL   
## previous  0     -none- NULL   
## results  20     -none- list
##                  Length Class  Mode     
## id               1      -none- numeric  
## board            2      -none- list     
## title            1      -none- character
## description      1      -none- character
## cover_image_url  1      -none- character
## color            3      -none- list     
## state            1      -none- numeric  
## due_dt           0      -none- NULL     
## created_dt       1      -none- character
## created_by_user  5      -none- list     
## finished_dt      0      -none- NULL     
## finished_by_user 0      -none- NULL     
## assigned         0      -none- list     
## watched          1      -none- logical  
## num_comments     1      -none- numeric  
## num_attachments  1      -none- numeric  
## progress         2      -none- list

Getting Storypoints-Information from UpWave

An additional feature of upwaver is the storypoints_and_status() function. It’s was designed by our institue for internal reasons. Nevertheless it might be useful for your organisation as well.

If working with agile methods (i.e. SCRUM, agile testing, ASD, …) you might want to work with storypoints in order to estimate time resources. Our institute works with storypoints in the following way. Each UpWave Card has a short text at the bottom the Card description that says:
“Aufwand: X SP” or “Aufwand: X AT” as an indicator for the estimated storypoints. The value X, title and status of every Card is be caught by storypoints_and_status() and given as a list.

my_storypoints <- upwaver::storypoints_and_status("ims-fhs", 14310, "cb52b691defef3e689b47e4caa9fa24e0db6858b")
my_storypoints$storypoints_status
##                                               title status storypoints
## 1             US22 - Bestehende Touren modifizieren      0           0
## 2                          US21 - Touren planen (5)      0           0
## 3                    US20 - Zielfunktion definieren      0           0
## 4                          US19 - Touren planen (4)      0           0
## 5      US18 - Entwicklung einer Zeit-/Distanzmatrix      0          10
## 6          US17 - Milestone Workshop zur Diskussion      0          10
## 7                          US16 - Touren planen (3)      2           0
## 8            US15 - Optimierungs-Job entgegennehmen      3   Completed
## 9                  US14 - Stammdaten entgegennehmen      3   Completed
## 10 US13 - Daten des Optimierungs-Jobs bereitstellen      3   Completed
## 11                  US12 - Stammdaten bereitstellen      0          10
## 12                         US10 - Touren planen (2)      2           0
## 13        US9 - Zulässigkeit des Tourenplans prüfen      2           0
## 14            US8 - Verfügbare Ressourcen bestimmen      2          10
## 15        US7 - Bereitstellung der Testdaten Camion      3   Completed
## 16                          US6 - Touren planen (1)      3   Completed
## 17 US4 - einfache, syntethische Testfälle erstellen      3   Completed
## 18             US3 - Definition der Rückgabeobjekte      3   Completed
## 19                 US2 - IMS-Datenmodell validieren      2           0
## 20                  US1 - IMS-Datenmodell erstellen      3   Completed
my_storypoints$sum_storypoints
## [1] 40

Create a Userstory (Card) on UpWave

For own puposes we created a function that directly uploads Userstorys to the leftmost column of a desired Board from a local excel file. This might me helfpul when a list of basic tasks has been defined in an exel-sheet during a meeting or similar and you don’t want to copy paste it all into UpWave.

The function needs several input parameters to coordinate the source (excel file) with the desired UpWave Board. Keep in mind that the excel file needs the following three columns:

# create_card_from_excel(
#   excel_file = "path_to_your_excel_file", 
#   sheet = "name_of_the_excel_sheet" or number_of_the_excel_sheet, 
#   line_number = line_nr_you_want_to_upload, 
#   organisation = "your_organisation", 
#   board_id = your_board_id, 
#   board_name = "your_board_name", 
#   token = "your_token")

To upload several Cards, we recomment a simple for-loop

# for (i in 1:30) {
#   create_card_from_excel(..., line_number = i, ...)
# }