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.
![](https://cdn.prod.website-files.com/625350933660db97afa01913/64e34053b4549751a9f98525_r5mXPKwV86nd5rw4o8MehUEhXlxlWTXxD5YEPdXfDfAyVrEZW6HgG_mM8ZbF4dZCVuIw7iuwBAbp2ua76BOLDFnOMGmfWB49Na2xMdQEqI5sqXC_2gd-Fg268zZup8yYp5_JkRlAxTARhscNmnS57Q.png)
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.
![](https://cdn.prod.website-files.com/625350933660db97afa01913/64e34053366418be43a2a7df_4c0KVy3Hri06E2hWWniYJd6U1Ssd3KXSdhYqvBB7BJbSFIyctgBl3_YJ1HPhqhq7JFbFjlHApcUL4quRCb1OXhjMD8xSBzJILZFWRcWLSP3yVJR4f6oZUxwQOGaJfoKXM-K1Z4vb6GkyQCoCXgY6SQ.png)
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).
![](https://cdn.prod.website-files.com/625350933660db97afa01913/64e340532978b530efbe69b2_-KEMhYK3CIkZ2KXPs5r_K1RPVP8iw9zjIUbI3dLCmC8jCEcijDWK8lwm4c8-L-gn7Ju8V3lIQBFsI3J3rPfcByHP3wv2E6HmGCZDY9fGYSw_lydFjVcIIyW9NNCWXrwF03YVns7AXdlovchTmXu0Dw.png)
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.
![](https://cdn.prod.website-files.com/625350933660db97afa01913/64e340539f28c11da0fca626_Wa3179cGZ2tXTu_txFJkgI4rypi031J7I_7hrdG5C4kWeQlG9j_F_dhCqqVYkhRN6cYnW1aAujK4pRTYmPRytoEqJhrbwGiKynocfQUFbSApBVb-KDqsQvUTOrlhwoy9k0iNm6GW9mfl5b1V_s2gbg.png)
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ń.
![](https://cdn.prod.website-files.com/625350933660db97afa01913/64e3405358a699e193b49cc1_RZxBu-r9PZy6dBtsSw2C3ifIGNkM55xhO-ooMBXiadZPoGg1BSaqUUPNkve-c5wJMGsxkEMbUWxfp8LxP_JMuUVxh_89bLxJNW1bfuM9-LA-PjMRUlycNIRqnAPp8uHEShKsvKc87QbbRF_BtZDqCg.png)
![](https://cdn.prod.website-files.com/625350933660db97afa01913/64e34052ce0d0f4591ef4731_BeftTC41Ph48TuJslYhwzz9ceEuUiXFK_fWASBgVvroYeqff4fXtEy2HmQA5IKynXsgRj4PtACfEGjdKaapSzBKi-jOyBt17ZC_5V6tOjLMaqGl0SeJ-QnmyAy0odQQW_nZqJijNHCMsFaEvfdpHng.png)
![](https://cdn.prod.website-files.com/625350933660db97afa01913/64e3405458a699e193b49e39_y8BKQK5gmQx9KbrSx6tuX2s6V-UziIMWleu05yIuuaERUoVAHjLXb08QxrGlY_nVgJd3Mnt_dnUJ91qQ6jKmUXKuAHTTKKV_qv-WlUoVXNJpUdLCx0-nJ_Ys_uEuM_lbczKT7tnMqIlktnDcVDlbBw.png)
![](https://cdn.prod.website-files.com/625350933660db97afa01913/64e340540d239540bdff95eb_0CalnkcGgw46rVlYsuY9J4xHuBWe1tPVvS_hCBeMoNpvBKX9QvUXSVk-lOlzsXtWuOzMJXbii3DoH8OvBoKvhA1_qxLjBpSYoemJpI83hcoM6yVTS5EnprGNJwMutFckZwIDFMo2-Lq9YgZQ0FO-ug.png)
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!
![](https://cdn.prod.website-files.com/624af442a8151d5a2ef5644c/63023f0fa0f284d48cd00384_joanna-labocha%20(1).png)
![](https://cdn.prod.website-files.com/624af442a8151d5a2ef5644c/636cfc5504bf29b697d8b873_culture_book_okladka_www_desktop.png)