Pekaton – 24-godzinny hackaton

Pekaton to 24-godzinny hackaton, który został organizowany przez Wydziałową Radę Samorządu Studenckiego Wydziału Inżynierii Elektrycznej i Komputerowej Politechniki Krakowskiej. Maraton rozpoczął się 4 czerwca o godzinie 10:00 a zakończył się 24 godziny później. Do rywalizacji stanęło 12 drużyn.

Po wielu perturbacjach wystartowaliśmy w 3 osobowej drużynie o nazwie „Spring is coming”. Gwoli ścisłości – nikt z nas nie ogląda GoT, taki luźny pomysł. Przez pewien czas miałem pewne wątpliwości czy będziemy w stanie konkurować z drużynami, które mają po czterech członków. Na szczęście wszystkie obawy okazały się bezpodstawne.

Podział obowiązków w drużynie od samego początku był jasny: jedna osoba do czarowania (dosłownie) z przodu (Bartek), dwóch zabezpieczających tyły (Michał i ja). Stos technologiczny aplikacji dobraliśmy na kilka dni przed rozpoczęciem rywalizacji. Wybór padł na AngularJS oraz Spring. Jak łatwo się domyślić wszystkie dane były transportowane w formacie JSON. Co ciekawe, Bartek zdecydował, że nie będzie używał popularnego frameworka Bootstrap, więc aplikacja została wyposażona w autorskie rozwiązania frontowe.

WP_20160708_12_04_54_Pro

Start

Równo o godzinie 10:00 Pekaton został oficjalnie rozpoczęty. Ceremonię otwarcia zakończyło podanie tematu przewodniego całego maratonu. „Aplikacja/system wewnętrzny dla firm”. Temat bardzo ogólny, więc mogliśmy ugryźć go na kilka sposobów. Na samym początku odrzuciliśmy pomysł na aplikację do zarządzania projektami, ponieważ każdy z nas już co najmniej raz pisał tego typu oprogramowanie. Następnie zaczęliśmy zastanawiać się nad systemem monitoringu pracowników w oparciu o badge.

Pomysł powoli zaczynał nabierać kształtów, ale cały czas czegoś nam brakowało. W pewnym momencie Bartek rzucił pomysł na „system zarządzania siecią masarni”. To hasło miało dwie poważne konsekwencje. Pierwsza to taka, że do końca Pekatonu byliśmy rozpoznawani, jako „Ci od masarni”. Druga, zdecydowanie bardziej poważna, to podwaliny pod finalną wersję aplikacji. Od zarządzania siecią pomysł wyewoluował do zarządzania i analizy sprzedaży klientów na podstawie dostarczonych danych. Przez klienta rozumieliśmy tutaj właścicieli np. sklepów internetowych.

Po znalezieniu motywu przewodniego przystąpiliśmy do spisywania pomysłów na konkretne funkcjonalności. Ten element okazał się znacznie przyjemniejszy niż poprzedni. Propozycje sypały się z każdej strony, a każda nowa funkcjonalność rodziła kolejne.

Po sporządzeniu podstawowej listy funkcjonalności stworzyliśmy prostą tablicę na Trello, podzieliliśmy zadania i przystąpiliśmy do kodowania.

Cały ten etap zajął nam około 2h, czyli przez pierwsze dwie godziny nie napisaliśmy ani jednej linii kodu. Nie przejmowaliśmy się tym. Atmosfera w drużynie była cały czas bardzo dobra – prawdopodobnie słyszał to każdy, kto znajdował się z nami w sali.

Pekaton - start

Kodowanie

Początki zawsze bywają trudne. Powoli powstawał zarys aplikacji. Na początku tworzenia rdzenia aplikacji przez długi czas współpracowaliśmy z Michałem nad utworzeniem modelu. Było to niezbędne do samodzielnej pracy w dalszych fazach rozwijania funkcjonalności. Po kilku godzinach i różnych problemach model był gotowy.

Moim pierwszym zadaniem było przygotowanie wskaźnika odpowiedzialnego za określenie jak bardzo klient jest klientem obiecującym. Do tego celu użyłem danych takich jak:

  1. Ilość zamówień
  2. Sumaryczna wartość zamówień
  3. Średni czas wizyty na stronie
  4. Ilość wizyt na stronie
  5. Ilość bezpośrednich wejść na stronę

Wzór na współczynnik został opracowany na kartce papieru w przeciągu 10 minut. Na samym końcu niezbędne było dostrojenie/wyważenie poszczególnych jego składowych.

Kolejne zadanie to generowanie listy rekomendowanych produktów. W tym miejscu wykorzystałem algorytm Apriori. Do każdego produktu generowane były 3inne, które były razem z nim zamawiane.

Równolegle Michał pracował nad generowaniem produktów popularnych oraz danych do wykresów sprzedaży i ruchu na stronie. Przez ten cały czas Bartek dopisywał kolejne skrypty, które były odpowiedzialne za pobranie danych oraz eleganckie przedstawienie ich na froncie aplikacji. Komunikacja pomiędzy naszą dwójką, a Bartkiem opierała się na pewnym prostym schemacie:

My: „Bartek, a jest szansa na zrobienie wyszukiwarki?”

Bartek: „Jest”

5 minut później

Bartek: „Wyszukiwarka już działa”

My: O.o

Chwilę później

My: „Bartku, jakby dało się zrobić sortowanie po konkretnych kolumnach w tabeli to byłby czad!”

Bartek: „Spoko, będzie”

5 minut później

Bartek: „Sortowanie już działa”

My: O.o O.o

Z czasem zaczęło nas łapać zmęczenie, ale spacery chwilowo rozwiązywały problemy.  Większość z powyższych funkcjonalności została zaimplementowana do godziny 02:00, więc musieliśmy wymyślić coś nowego.

Padła propozycja na integrację aplikacji z aplikacją Facebook. Około godziny poświęciliśmy na czytanie dokumentacji, zakładanie kont. Cały proces wydawał się bardzo prosty, ponieważ Spring zapewniał odpowiednie narzędzia do takich rzeczy. Niestety pierwsze próby pokazały, że mamy w tym temacie bardzo ograniczone pole działania. Zdecydowaliśmy się na tymczasowe rozwiązanie, które zapewniło nam dane niezbędne do wygenerowania widoku po stronie frontu aplikacji.

Około godziny 05:00 mieliśmy już gotowy moduł integracji z Facebookiem. Czas na kolejne pomysły. „Może mapka Polski pokolorowana per województwo w zależności od ilości zmówień?”. Wszystkim pomysł się spodobał, więc przystąpiliśmy do realizacji. Tą funkcjonalnością zapewniliśmy sobie zajęcie aż do końca rywalizacji. Jej najciekawszym elementem jest integracja z kodypocztoweapi.pl.

Pekaton - kodowanie

Prezentacja i oczekiwanie na wyniki

Ostatnim etapem Pekatonu była prezentacja stworzonych aplikacji. Zostaliśmy umiejscowieni w środku stawki, więc idealnie – ani początek, ani koniec.

Prezentacja nie poszła nam najgorzej. Niestety duży wpływ na jej efekt końcowy miało narastające zmęczenie. Od godziny około 09:00 chcieliśmy jak najszybciej skończyć zabawę i iść spać.

Po wszystkich prezentacjach 3-osobowe jury zaczęło obrady nad wyłonieniem zwycięskiego projektu. Na szczęście nie trwało to zbyt długo i organizatorzy przystąpili do ogłoszenia wyników.

Decyzją jury (z tego co wiemy niejednogłośną) aplikacja stworzona przez zespół „Spring is coming” została wybrana aplikacją zwycięską.

W Pekatonie startowaliśmy w celu zebrania nowych doświadczeń, poprawy umiejętności i przede wszystkim dobrej zabawy. Napisana przez nas aplikacja wygrała, co było wisienką na torcie, którego podstawą były 3 poprzednie punkty.

Pekaton - wyniki

Podsumowanie

Start w Pekatonie dał nam dużo motywacji do dalszej pracy i rozwijania umiejętności. Jako zespół jesteśmy dumni z tego osiągnięcia i mamy już plany na kolejne starty. Co więcej, mamy również ambitne plany na dalszy rozwój naszej aplikacji. Może w przyszłości powstanie z tego jakiś start-up 😀

Z tego miejsca chciałbym pogratulować organizatorom. Wykonaliście kawał wspaniałej pracy. Wymieniając nasze doświadczenia z innych tego typu imprez jednogłośnie stwierdziliśmy, że na tak dobrze zorganizowanej jeszcze nie byliśmy. Jedzenie, napoje, mentorzy – idealnie. Przez 24-godziny zapewnialiście nam wszystko, co niezbędne do wspaniałej rywalizacji.

Wszystkie zdjęcia pochodzą ze strony Samorząd Studencki WIEiK.

Na sam koniec kilka screenshotów z aplikacji.

Pekaton - districts
Mapa Polski z województwami pokolorowanymi względem ilości zamówień oraz historia ilości polubień FB

 

Pekaton - charts
Statystyki przedstawione na wykresach

 

Pekaton - promising customers
Obiecujący klienci

 

Pekaton - customer
Informacje o kliencie

 

Pekaton - products
Produkt i produkty powiązane

 

Pekaton - purchases
Informacje o zamówieniach

 

Pekaton - socialmedia
Panel integracji z Facebook

You may also like