Wie erstelle ich ein Trello-Dashboard, damit Aufgaben aus 5 Boards in einem gesammelt werden?

Problematisch

Bei meiner Arbeit sah ich mich der Notwendigkeit gegenüber, die Aufgaben der Mitarbeiter der Analyseabteilung in einem einzigen Fenster zu organisieren und ein transparentes Schema für die Bewertung ihrer Arbeitsbelastung zu erstellen.





Was sind die Möglichkeiten?

Beim Vergleich verschiedener Tools und Task-Manager fiel die Wahl auf einen der beliebtesten Marktteilnehmer - Trello. Unmittelbar nach Auswahl des Programms trat jedoch ein neues Hindernis auf. In der kostenlosen Version dieser Anwendung war es nicht möglich, die Vorstände mehrerer Mitarbeiter ohne Dienste von Drittanbietern wie Zapier zu synchronisieren, für die auch für ein großes Projekt eine Lizenz erforderlich ist.





Was bedeutet Vereinigung?

  1. Gehen Sie in 5 Tafeln und sehen Sie sich jede einzeln an. Es gibt einfach nicht genug Zeit und Mühe.





  2. Wenn Sie keine Karten auf einem Bildschirm synchronisieren, ist es äußerst schwierig, einen Mitarbeiter im Hinblick auf die aktuelle Arbeitslast mit einem anderen zu vergleichen.





  3. Die Mitarbeiter möchten die Arbeitsbelastung jedes einzelnen Teammitglieds verstehen, und auch hier müssen Sie irgendwie alles zusammenbringen.     





Solche Synchronisationsfunktionen stehen einigen Wettbewerbern, die sich auf agile Task-Manager spezialisiert haben, kostenlos zur Verfügung. Trello war jedoch nur vertrauter, da ich sie seit mehreren Jahren zur persönlichen Kontrolle von Aufgaben verwende. Um einen gemeinsamen Befehlsaufgabenmanager in die Arbeit der Abteilung einzuführen, muss nur noch ein Problem gelöst werden:





Wie synchronisiere ich Boards mit 5 Mitarbeitern in einem Dashboard, ohne eine Lizenz in Trello zu bezahlen oder Dienste wie Zapier zu übertragen?





Die Lösung des Problems:

trello R, API , .





:

API https://trello.com/app-key ( Trello )





,





R.    . R    RStudio.





:





  • API Trello — «trelloR»





  • — «lubridate»





  • — «dplyr»   





CRAN install.packages, github install_github:





remotes::install_github("jchrom/trelloR")
install.packages("lubridate", dependencies = TRUE)
install.packages("dplyr ", dependencies = TRUE)
      
      



API :





#         token
setwd("C:\\*********\\R_script\\trello")

#  token
my_token = get_token("my_app", key = "", secret = "",
                     expiration = c( "never"))
      
      



, , , :





trelloadd <- function(delcard = NULL,
                      addcard = NULL,
                      nlista = NULL){
  #          
     
  ishod_tab <- get_list_cards(addcard)
  
  #      
  bid = get_id_board(delcard)
  
  #        
  lid <- get_board_lists(bid)$id[nlista]
  
  #        
  cid<-get_list_cards(lid)
  
  #  ,        
  if (length(cid$id)>0) {
    for (i in 1:length(cid$id)) {
      delete_resource(resource = "card", id = cid$id[i])
    }
  }else{
    print("no-del")
  }
  
  #       
  dateList<- data.frame(dateadd = NA)
  for (i in 1:length(ishod_tab$id)) {
    cardID <- ishod_tab$id[i]
    dateList[i,1] <- strtoi(strtrim(cardID, 8), 16L)
  }
  dateList$dateadd <-as.POSIXct(dateList$dateadd, origin = "1970-01-01")
  
  #           
  if (length(ishod_tab$name)>0) {
    for (i in 1:length(ishod_tab$name)) {
        payload = list(
        idList = lid,
        name = ishod_tab$name[i],
        desc = paste0(ishod_tab$desc[i],"Date Add: " ,dateList$dateadd[i], " 
                       ", floor(as.vector(difftime(today(),dateList$dateadd[i], units='days'))), " "),
        start = ishod_tab$start [i],
        due = ishod_tab$due [i],
        pos = "bottom"
      )
      r <- create_resource("card", body = payload)
    }
  }else{
    print("Ok")
  }
  if (nrow(bind_rows(ishod_tab$labels[]))>0) {
  
    #   ()
    bid = get_id_board(delcard)
    lid <- get_board_lists(bid)$id[nlista]
    cid <-get_list_cards(lid)
    
    #    
    nlab <- which( lapply(ishod_tab$labels, length)!=0 %in% T)
    for (i in nlab) {
      labl <- ishod_tab$labels[[i]]
      for (xi in 1:nrow(labl)) {
        r <-  add_label(cid$id[i], color = ishod_tab$labels[[i]][xi,4],
                        name = ishod_tab$labels[[i]][xi,3] )  
      }
    }
   }else{
    print("no_lable")
  }
}
      
      



:





  • delcard - id





  • addcard - id





  • nlista -





delcard

id , , id





Linkbeispiel: https://trello.com/b/*********/general-tasks - wobei ****** Werte die ID einer bestimmten Karte sind
: https://trello.com/b/*********/- - ****** Id

addcard

, delcard , :





get_board_lists("https://trello.com/b/*****/1",
 query = list(customFieldItems = "true")
)
      
      



, R id





.





:





# 1 ####
trelloadd(delcard = "od*****W", 
          addcard = "600**********04",
          nlista = 2)
# 2 ####
trelloadd(delcard = "od*****W", 
          addcard = "5fc4********24",
          nlista = 3)
# 3 ####
trelloadd(delcard = "od*****W", 
          addcard = "5e94*********8ce",
          nlista = 4)
# 4 ####
trelloadd(delcard = "od*****W",
          addcard = "5faa*********c522",
          nlista = 5)
# 5 ####
trelloadd(delcard = "od*****W",
          addcard = "60744*******3394",
          nlista = 6)
# 6 ####
trelloadd(delcard = "od*****W",
          addcard = "5e73******b07",
          nlista = 7)
      
      



, , , , , ( ). .     .





Bereit Dashboard
Bereit Dashboard

Zusammenfassend:





  1. Wir haben die vollständige Synchronisierung aller Vorstände einer beliebigen Anzahl von Mitarbeitern in Trello erhalten





  2. Wir haben das Problem gelöst, um visuell auf das Erstellungsdatum jeder Aufgabe zugreifen zu können





  3. Wir haben eine Grundlage für die Analyse der Mitarbeiterproduktivität in jeder Hinsicht, dank der Möglichkeit, dem Code verschiedene neue Verbesserungen hinzuzufügen und den Code basierend auf der Trello-API zu erweitern, basierend auf der Geschäftslogik Ihres Unternehmens und den Fähigkeiten der R-Sprache.








All Articles