Hackathon by Newbies RST - drugie życie projektu!
Hejka, z tej strony RST-owe Newbies, czyli otwarta grupa młodych pasjonatów programowania i technologii. Spotykamy się co środę, programujemy, dyskutujemy o IT i „latamy w kosmos”. Ci, którzy nas jeszcze nie znają, mogą się o nas dowiedzieć więcej tutaj.
Lubimy angażować się w różne projekty, praktyki i interesujące nas tematy. Na ostatniej #19 edycji zauważyliśmy potrzebę powrotu do jednego z naszych niezakończonych tworów (Kto zakańcza wszystkie rozpoczęte projekty, niech pierwszy rzuci kamieniem! 🪨), czyli do strony z oceną wydarzeń Feedmeback. Ponieważ jesteśmy twórcami tego rozwiązania, poczuliśmy się zobowiązani do wznowienia prac w celu poprawienia usługi zgodnie z otrzymanym feedbackiem. W pewien słoneczny piątek 28 lipca spotkaliśmy się we Wrocławskim biurze RST, żeby wspólnie robić „fajne rzeczy” , o których Wam opowiemy.
Wszystko zaczęło się od Feedmeback
Czyli najpierw wyciągamy przysłowiowego „trupa z szafy”. Projekt ten realizowaliśmy podczas stażu w lipcu 2018, już nawet wtedy wykorzystywanie jQuery na froncie i PHP na panelu admina powinno być karane wyciąganiem klawiszy z klawiatury. ;) Szybko zdecydowaliśmy, że zamiast dodawać funkcjonalności do Feedmeback, lepiej będzie dokończyć pracę nad kolejną wersją tego projektu.
Tak naprawdę pierwsze działania nad reanimacją projektu wykonywaliśmy już we wrześniu 2021 roku przy wsparciu praktykantów. Sprawdziliśmy również stan tego projektu:
- Backend - napisany w Kotlinie, ale nie w Springu, z requestami walczył tam Ktor. Szybkie rozeznanie w zespole pokazało, że nie jest to na chwilę obecną technologia, do której mamy wystarczająco dużo chęci i doświadczenia.
- Frontend - bez nowinek, web ogarnięty jest React’em, pojawił się natomiast inny problem, początkowo strona pisana była z myślą o komunikacji REST’owej. W połowie życia projektu uznaliśmy, że chcemy przetestować GraphQL — technologię, na którą kręcił się wtedy duży hype. Jak się później okazało, był to pomysł, który dobił nasze chęci kontynuacji prac nad projektem.
TL;DR: (z j.ang. too long; didn't read ): nadmierne skomplikowanie projektu w tym wydaniu wymusiło na nas decyzję na przepisanie projektu jeszcze raz. Long live Jeteo.
Jeteo? A co to właściwie jest?
Zanim opiszemy, co działo się na hackathonie, przyjrzyjmy się Jeteo, jakie ma spełniać cele i z jakich technologii korzystamy tym razem.
Cele aplikacji spełniają różne potrzeby.
- Prelegenci otrzymują zagregowany feedback wraz z ocenami publiczności.
- Słuchacze mogą oceniać wydarzenia i prelekcje, mogą sprawdzić nadchodzące i archiwalne eventy (wraz z opisami, agendą i lokalizacją).
Tech stack
Aby nie komplikować prac, a jednocześnie nie zamykać się na przestarzałe technologie wykorzystaliśmy znane nam frameworki: NestJS z Prismą na backendzie oraz NextJS z Reactem na frontendzie. Nest pozwoli nam na w miarę szybkie zrealizowanie REST API, dzięki temu w przyszłości bez problemu będziemy mogli rozszerzyć Jeteo np. o aplikację mobilną. NextJS zapewni nam natomiast duży performance strony dzięki swoim mechanizmom cache’owania. Jest to temat bardzo ważny, ponieważ nie we wszystkich miejscach, w których organizowane są wydarzenia, mamy dostęp do dobrego połączenia internetowego (jak np. podczas ostatniego MeetJS w piwnicy Klubokawiarni Mleczarnia.
Hackathon
Na organizację wydarzenia zdecydowaliśmy się po przygotowaniu wstępnego planu działania. Uznaliśmy, że jednodniowy kick-off projektu bardzo nam pomoże w intensywnym rozpoczęciu oraz rozplanowaniu prac na późniejszą kontynuację. Hackathon był przede wszystkim świetnym pomysłem na zintegrowanie zespołu. Fajnie było móc skorzystać z naszego wrocławskiego biura RST, gdzie czekały na nas smaczne przekąski i świetna atmosfera!
Spotkanie rozpoczęliśmy o 10:00, planowaliśmy przeznaczyć na nie 10 godzin. To dużo przestrzeni dla 6 osób do zrobienia czegoś ciekawego! Zaczęliśmy od konfiguracji środowisk, pobrania repo (bo tym razem nie zaczynaliśmy z pustym repozytorium) i od podziału prac.
2 osoby pracowały głównie przy backendzie, 4 osoby pracowały przy frontendzie. Podział ten podyktowany był częściowo tym, w której części aplikacji developerzy czuli się najwygodniej. Dodatkowo wyznaczyliśmy mini-liderów w danej dziedzinie, to oni byli koordynatorami i wyznaczali priorytety wykonywanych prac. Zadania zapisywaliśmy tradycyjnie na Trello w metodyce Kanban (TODO, WIP, DONE, rozbudowane o kolumnę IN REVIEW).
Faktyczne prace rozpoczęliśmy od przygotowania schematów bazodanowych, po szybkiej dyskusji zdecydowaliśmy się na skorzystanie ze strony prismabuilder.io. Wygenerowany w ten sposób schemat pomógł nam w rozpisaniu endpointów oraz modeli w głównej części API.
Kolejno podzieliliśmy się zadaniami na realizację podstron, endpointów czy też komponentów, udało nam się w ten sposób zrealizować całą główną stronę Jeteo, część logowania, podstronę Jeteo studio (tak nazwaliśmy cały panel administratorów/prelegentów) oraz kilkanaście komponentów, które już po hackathonie umieściliśmy w samym studio, m.in. w kreatorze wydarzeń.
Ponieważ serwis docelowo wykorzystywany ma być na urządzeniach mobilnych, podczas przygotowywania makiet, podstron i komponentów skupiliśmy się na tym, by wszystkie komponenty prezentowały się poprawnie również na telefonach. Po odpowiednim wykorzystaniu Figmy zauważyliśmy, że kwestia stworzenia stylów komponentów sprowadza się w większości do przekopiowania tego, co wygenerowała Figma.
Czas minął nam bardzo szybko i przyjemnie, około godziny 19:40 zrobiliśmy krótkie podsumowanie efektów naszych prac i zakończyliśmy hackathon. Do zrealizowania zostało nam jeszcze sporo funkcjonalności. Nauczyliśmy się, z czym wiąże się przeprowadzanie hackathonów. Nie jest to jednak koniec prac z Jeteo!
Co dalej w Newbies?
Od samego początku wiedzieliśmy, że czasowo nie wyrobimy się z realizacją całości aplikacji. Wybraliśmy te zadania, które odblokowały nam możliwość dalszej pracy, dzięki temu stan aplikacji na chwilę obecną mocno się zmienił, zrealizowaliśmy już większość zadań, które wyznaczyliśmy w MVP. Jeśli wszystko dalej będzie tak sprawnie szło, to efekt końcowy będzie można zobaczyć podczas kolejnego wydarzenia CodeMeetings #20. Na chwilę obecną Jeteo jest tematem przewodnim na naszych środowych Newbiesowych spotkaniach.
Jeszcze raz dziękujemy wszystkim osobom, które wsparły merytorycznie i organizacyjnie nasz hackathon. Do zobaczenia przy kolejnych projektach.
Masz pytania? Koniecznie napisz!
poznaj bliżej nas i nasze wartości