• O WordPressie
    • WordPress.org
    • Dokumentacja
    • Naucz się WordPressa
    • Pomoc techniczna
    • Uwagi
  • Zaloguj się
Marek Zając Marek Zając
  • contact@zajacmarek.com Zapraszam do kontaktu
  • Strona główna
  • O mnie
  • Kursy
  • Konsultacje
  • Kanał Youtube
  • 22 lipca 2017
  • Marek Zając
  • 2 Comments

Firmowy hackaton czyli walka z Bot Framework

Wczoraj razem z kolegą z zespołu wzięliśmy udział w 12 godzinnym hackatonie organizowanym przez naszą firmę. Technologia dowolna, tematy wybierane z listy zgłoszonych przez pracowników.

Wybraliśmy temat związany z naszym zespołem. Mianowicie zabraliśmy się za robienie mechanizmu do kudosów online. Projekt nazwaliśmy „Kudospol”.

Kudosy w naszej firmie to forma nagradzania/punktowania osób z zespołu. Kudosa można dostać np. pomagając komuś, zgłaszając ciekawe pomysły, rozwiązując jakiś problem itd. Jest to zabawa przyczyniająca się do zdrowej rywalizacji i wymiany wiedzy.

Do tej pory kudosy w zespole były reprezentowane przez fizyczne żetony. Jednak od momentu rozproszenia się zespołu sama idea podupadła bo ciężko było dawać kudosa osobom spoza jednej lokalizacji.

Ta technologia!

Musieliśmy przygotować coś co będzie jednocześnie działało online i było proste w użyciu. Padł pomysł zrobienia bota do komunikatora Microsoft Teams, który jest główną formą komunikacji wewnątrz firmy.

Ponieważ komunikator od Microsoftu to i bot również powstawał w technologii Microsoftu. Konkretnie użyliśmy Microsoft Bot Framework.

Biblioteka ma gotowe wersje dla kilku technologii. My wybraliśmy NodeJS jako coś czego przy okazji można się poduczyć.

Działanie

Pomysł był taki, że bot powinien działać w ramach kanałów na Teamsach i umożliwiać obsługę z poziomu zwykłych wiadomości.

Ostatecznie w podstawowej wersji udało nam się zawrzeć:

  • Obsługę dawania kudosa poprzez polecenie '+ Osoba’. Nawet zadział mechanizm wspominania osób w konwersacji dzięki czemu mieliśmy za darmo ograniczenie dawania kudosów tylko dla osób na kanale.
  • Wyświetlanie listy wyników. Zarówno wszystkich jak i top 3 posortowanego wg ilości.
  • Ograniczenie ilości kudosów do wykorzystania. Takie ograniczenie działało w przypadku fizycznych żetonów gdzie mieliśmy do dyspozycji 5 sztuk dlatego postanowiliśmy przenieść ten mechanizm również do wersji online
  • Resetowanie wyników w obrębie konwersacji. Kudosy są rozliczane co 2-3 tygodnie kiedy to osoba z największą ilością otrzymanych sztuk dostaje małą nagrodę np. czekoladę. W tym momencie jest potrzeba przywrócenia początkowej ilości kudosów i rozpoczęcia zabawy ponownie.

Nie zdążyliśmy dodać obsługi bazy danych więc na razie całość działa w pamięci i służy głównie prezentacji pomysłu.

Mamy jeszcze kilka pomysłów, które fajnie by było dodać jednak obecna wersja po dodaniu zapisu do bazy jak najbardziej nadaje się do wykorzystania chociażby w naszym zespole.

Problemy

Pewnie udało by się bardziej dopracować cały projekt gdyby nie kilka mniejszych lub większych problemów. Z tych najbardziej dotkliwych to tak:

  • Wymóg zastosowania serwera z SSL do testów „na produkcji”. Żeby użyć bota w prawdziwych Teamsach musieliśmy go zarejestrować. Rejestracja wymagała podania jego endpointa na serwerze, z których połączenie by było wykonywane przez https. To całkowicie pogrzebało nasze szanse na użycie Azurowego VPSa z zainstalowanym Ubuntu. Ostatecznie musieliśmy skorzystać z dedykowanej usługi Bot Service na platformie Microsoft Azure. 4h z 12 stracone na zabawę w DevOpsów…
  • Marna dokumentacja. Obsługa MS Teams w Bot Frameworku została dodana relatywnie niedawno przez co dokumentacja nadal powstaje, a przykładów jest jak na lekarstwo. Chcąc obsłużyć mechanizmy specyficzne dla tego czatu, jak np. wspominanie osoby w rozmowie musieliśmy czasami wręcz metodą prób i błędów wyświetlać testowo dane „na produkcji”
  • Problem z łatwym testowaniem. Co prawda istnieje Bot Framework Emulator, który pozwala testować bota lokalnie. Problem powstaje jednak kiedy chcemy użyć mechanizmów specyficznych dla MS Teams bo tych emulator nie obsługuje, a to one sprawiały najwięcej kłopotów. Dlatego każdą zmianę trzeba było commitować, uruchamiać i testować na prawdziwym czacie. Koledzy z zespołu chyba już mieli dosyć naszej testowej konwersacji w Teamsach :P
Related Posts
  • Asynchroniczność w ASP.NET Core 16 stycznia 2020
  • Nie lubię TEGO projektu! 15 stycznia 2020
  • Pierwsze portfolio na GitHubie – Przewodnik 14 stycznia 2020
2 komentarze
  1. Reply
    Pan Ktos 26 września 2018

    Pytanko Czy nie mogliście utworzyć w Teamsach dla 2 osób do testów?;)

    • Reply
      Marek Zając 26 września 2018

      Teamsy działają tak, że bota się instaluje dla całego zespołu, a nie pojedynczego czatu więc musielibyśmy tworzyć nowy zespół i do niego dołączać, żeby testować bota bez spamowania. Nie było na to czasu tym bardziej, że dopiero zagłębialiśmy się w to jak boty działają.

Leave a Comment Cancel Comment

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

Copyright 2020 Bizix, All rights reserved.
  • POLITYKA PRYWATNOŚCI I PLIKÓW COOKIES