mzkwcim.net projekt Rekordy klubu

Projekt publiczny

Rekordy klubu

Strona z rekordami pływackimi KS Posnania Poznań. Projekt powstał z potrzeby zawodników i mojej własnej potrzeby z czasów, gdy sam pływałem: mieć jedno miejsce, w którym można szybko sprawdzić rekord w swojej kategorii.

Publiczna strona z rekordami pływackimi KS Posnania Poznań

Po co powstał projekt

Rekordy to coś więcej niż tabela

Rekordy klubowe są dla zawodników punktem odniesienia, celem treningowym i sposobem na zobaczenie, gdzie jest się na tle historii klubu.

Kiedy sam pływałem, brakowało mi w klubie miejsca, w którym można byłoby łatwo sprawdzić rekordy. Później, kiedy byłem już po drugiej stronie basenu jako trener, zobaczyłem, że ten problem dalej istnieje. Zawodnicy i rodzice pytali o rekordy, ale nie było wygodnej, aktualnej strony, na której można byłoby je szybko sprawdzić.

Wcześniej rekordy funkcjonowały bardziej jako coś statycznego: kartka w klubie, ręczne aktualizacje i dane, które łatwo było przegapić albo odłożyć „na później”. Chciałem zrobić coś, co będzie prostsze w utrzymaniu i bardziej dostępne dla zawodników.

Dla kogo

Dla zawodników i rodziców

Projekt zrobiłem głównie dla zawodników. Chciałem, żeby mogli wejść na stronę po treningu, przed zawodami albo z ciekawości i sprawdzić, jaki wynik jest aktualnym rekordem w ich kategorii.

To narzędzie jest też wygodne dla rodziców i trenerów, bo nie trzeba szukać danych w plikach ani pytać za każdym razem, gdzie znajduje się aktualna tabela.

Zakres danych

Kategorie i filtry

Strona pokazuje rekordy pływackie klubu w kategoriach wiekowych, osobno dla krótkiego i długiego basenu.

Dane można filtrować między innymi po klubie, płci, basenie 25 m / 50 m, wieku i konkurencji. Przy rekordzie widoczny jest zawodnik, rocznik, czas, data i miejsce uzyskania wyniku.

Jak to się zaczęło

Od statycznej strony do aktualizacji danych

Pierwsza wersja nie była dużym systemem. Zaczęło się od potrzeby uporządkowania danych i pokazania ich w czytelnej formie.

Na początku stworzyłem statyczną stronę z rekordami. To już rozwiązywało część problemu, bo rekordy były dostępne publicznie i wyglądały lepiej niż zwykła tabela.

Szybko jednak pojawiło się pytanie: co z aktualizacją?

Ręczne poprawianie strony przy każdej zmianie rekordu nie miało sensu. To byłoby dokładnie to samo, co wcześniej, tylko w trochę ładniejszym opakowaniu. Dlatego kolejnym krokiem było zbudowanie procesu, w którym dane można przetworzyć i wyświetlić bez mozolnego grzebania w HTML-u.

Przepływ danych

Jak działa aktualizacja

Aktualizacja jest wykonywana raz w tygodniu jako prosta operacja. Nie jest to już ręczne przepisywanie rekordów do strony, tylko uporządkowany proces przetwarzania danych.

plik z wynikami przetworzenie danych wewnętrzna baza wybranie najlepszych wyników publiczna strona

Dane wejściowe pochodzą z pliku z wynikami. Następnie system, który zbudowałem, przetwarza je, normalizuje i zapisuje w bazie. Najważniejsze nie było samo wyświetlenie tabeli. Najważniejsze było to, żeby poprawnie wybrać rekordy.

System musi sprawdzić, czy dany wynik jest najlepszy w swojej kategorii. Musi też obsłużyć sytuacje, w których młodszy zawodnik uzyskuje wynik lepszy niż rekord w starszej kategorii. W takim przypadku taki wynik również powinien być widoczny wyżej, bo rekord młodszego zawodnika może być jednocześnie rekordem starszej kategorii.

Fragment pliku z wynikami pływackimi używanego jako dane wejściowe
Dane wejściowe nie były gotową tabelą rekordów. Trzeba było je przetworzyć, porównać i zapisać tylko najlepsze wyniki.
Panel filtrów na stronie rekordów klubowych
Najważniejsze było to, żeby zawodnik mógł szybko znaleźć rekord w swojej kategorii.

Najtrudniejsza część

Dużo pracy było pod spodem

Największym wyzwaniem było przetwarzanie danych. Plik z wynikami nie jest gotową bazą rekordów. To zbiór rezultatów, które trzeba dopiero przeanalizować.

Trzeba odczytać konkurencje, płeć, roczniki, basen, czasy, daty i miejsca zawodów. Potem trzeba porównać wyniki, wybrać najlepsze i zapisać je w taki sposób, żeby dało się je szybko wyświetlić na stronie.

Dużo pracy było też w rzeczach, których użytkownik końcowy nie widzi: normalizacji nazwisk, dopasowywaniu danych z arkuszy, mergowaniu danych z bazą, pilnowaniu kategorii wiekowych, optymalizacji czasu wykonania i poprawianiu sposobu odwoływania się do konkretnych arkuszy oraz zakresów.

Technologie

Prosty zestaw, dużo nauki

  • Google Sheets
  • Python
  • pandas
  • HTML, CSS, JavaScript
  • Cloudflare Pages
  • Cloudflare Workers
  • Cloudflare D1

Dlaczego ważny

Pierwszy większy projekt

To był mój pierwszy większy projekt, w którym tak dużo działo się „pod spodem”. Z zewnątrz widać tabelę z rekordami i filtry. Dla mnie była to jednak nauka pracy z danymi, bazą, transformacją wyników i publikacją gotowego narzędzia.

Rekordy klubu były jednym z pierwszych projektów, w których połączyłem pływanie z IT w praktyczny sposób. Dzięki temu mogłem rozwijać się w kierunku większych projektów, takich jak Swimtopia.

Zobacz projekt

Publiczna strona z rekordami

Strona jest dostępna publicznie i pokazuje aktualne rekordy w czytelnej formie z filtrami.