System
Obsługi Regat, czyli temat zupełnie inny niż zwykle
|
1.10.2024 |
Temat, jak
widać w tytule, zupełnie inny. Ale ponieważ powoli staje
się historią, więc żeby pamiętać... ;) Od dawna chodziło mi po głowie stworzenie systemu obsługi regat. Lepszego niż są. Oczywiście pod kątem obsługi regat jachtów morskich. A to sporo zmienia, bo różne klasy, przeliczniki, inspekcje, świadectwa. W tej chwili istnieją programy do liczenia wyników (Scorer, Altura) albo systemy obsługi zgłoszeń czy prezentacji wyników. Są też systemy bardziej kompletne, używane np. na Karaibach czy w cyklu regat Rolex, Fastnet itp. Ale albo czegoś im brakuje, albo są daleko, drogie i niedostępne. I stare. To czego brakuje wielu systemom zgłoszeń to działanie on-line. Czyli nie widać listy zgłoszeń, nie widać danych jachtów i świadectw, nie widać list startowych. Zazwyczaj są obrazki i to wszystko. Dla świadomego uczestnika to za mało. Założenia od początku do teraz są w zasadzie takie same, ale szczegóły zmieniały się przez kilka lat, bo pomysł powstał dobre kilka lat temu. Powoli się krystalizował. Problem był jeden główny. Nie wiedziałem w jakim systemie stworzyć aplikację. Ale ponieważ wyszło z czasem, że ma być całkowicie netowa, to sprawa w pewnym sensie się rozwiązała. Warstwa bazodanowa była oczywista: mysql. To znam nieźle, jak i ogólnie bazy danych. Ale front? Tutaj byłem zielony jak szczypiorek. W efekcie kupiłem dwie książki o podstawach PHP i się zaczęło. System powstał całkowicie od zera, od pustego katalogu i edytora. Gdy pierwszy skrypt php pokazał pierwsze dane z testowej tabeli jachtów, w wersji jeszcze bardzo testowej, okazało się, że to ma szanse działać. W sensie, że mam szansę to stworzyć. Ale po drodze zmieniły się potrzeby. A więc kolejność realizacji bloków systemu. Jedną z bardziej upierdliwych rzeczy w regatach są inspekcje wyposażenia zgodnie z OSR. Rozwiązałem ten problem na ile się dało, przy okazji tłumacząc całe przepisy OSR. To już było coś. Do tego niemal na samym początku ważna zmiana, czyli responsywność uzyskana przy pomocy Bootstrapa. Bo system miał działać tylko przez przeglądarkę i na wszystkim, co przeglądarki obsługuje. Czyli także telefony i tablety. Bootstrap w dużej części narzucił grafikę, ale mnie to odpowiada. Przy okazji system przeszedł z wewnętrznego serwera firmy, w której pracuję na aktualny adres. To oznacza, że stał się ogólnie dostępny. Drugim uruchomionym działem był kalendarz regat. Pierwszy porządny kalendarz regat morskich w Polsce. Z wieloma przydatnymi informacjami. Zostały rozbudowane informacje o jachtach. Już nie tylko inspekcje OSR. Kolejnym etapem była obsługa zgłoszeń do imprez obsługiwanych w systemie. Czyli ta część programu, która miała być główną w założeniach. To oznaczało obsługę zgłoszeń, formalności, list startowych z danymi (czyli także pobieranie świadectw ORC ze strony orc.org). Pełne listy startowe zamknęły kolejny etap. System obsługiwał zgłoszenia, przydział do grup, świadectwa. W tym momencie zaczął być użyteczny dla organizatorów regat. Ale co z sędziami? Liczenie wyników wyścigów to była dłuższa batalia, bo wymagała dodania całej otoczki. Pobieranie danych ze świadectw ORC, grupy, wyścigi, tabele mety. Udało się doprowadzić do tego, że system potrafił liczyć wyniki wszystkimi metodami innymi niż PCS w ORC. Czyli grupy bez przeliczeń, KWR, Yardstick, proste metody liczenia wyników w ORC. Przy tej okazji trzeba było dodać liczenie wyników generalnych regat. Było już bardzo dużo, ale ciągłe tłumaczenie, że metodami PCS system nie potrafi liczyć, było frustrujące. Niemniej jednak liczenie wyników w klasach innych niż ORC okazało się bardzo przydatne w regatach klubowych AKM-u oraz w regatach Gryfu dla klas innych niż ORC. Dla mnie była to ogromna pomoc i oszczędność czasu. Ostatniej zimy (2023/2024) system nauczył się liczyć wyniki wszystkimi dostępnymi metodami. Przy okazji powstała obsługa indywidualnego startu grup lub jachtów (to na podstawie relacji z tego, jak przebiegają i są liczone wyniki generalne np. Fastnetu albo regat na Karaibach). Tego chyba nie ma nikt. A także wyliczanie wyników sezonu, na razie MŻPP. We wrześniu 2024 doszła kolejna funkcjonalność. System obsługuje trasy wyścigów (nie chodzi o trasy ORC), czyli rzeczywiste (geograficzne) trasy wyścigów. Trasy tworzy się dodając punkty (start, boje zwrotne, meta). Punkty to nazwa i pozycja geograficzna. Do systemu doszła lista znaków nawigacyjnych, które można dodawać do tras jako punkty drogi. System wylicza całkowitą długość trasy, odległości i kursy między poszczególnymi punktami. Można takie dane wydrukować, co jest pomocne i dla sędziów i dla uczestników. Trasy można importować z innych regat. Z trasy wyścigu można utworzyć szkielet trasy ORC (duża oszczędność czasu). Także we wrześniu sędziowie otrzymali możliwość wydruku tabeli mety, jeszcze przed wyścigiem. Lista jachtów i miejsca na wpisanie potrzebnych informacji są kolejnym ułatwieniem, tym razem przy obsłudze wyścigu podczas startu i na mecie. System powstawał w wolnych chwilach, wyłącznie dla mojej przyjemności i satysfakcji. Dodatkową frajdą było to, czego nie mam w pracy, czyli pełna znajomość merytoryczna zagadnienia. W pracy ciągle muszę ustalać, czego chce użytkownik, o co mu chodzi, jaki ma problem. Zrozumieć zagadnienia od księgowości po produkcję (i wiele innych). W przypadku SOR merytorycznie wiem wszystko. Od metod liczenia wyników w każdej metodzie i klasie, przez problemy organizatorów, sędziów i żeglarzy. To była i jest naprawdę wielka ulga i przyjemność, bo zawsze wiedziałem o co chodzi i co chcę uzyskać. Mogłem nie zawsze wiedzieć jak to uzyskać (i często nie wiedziałem, jako nowicjusz w PHP), ale to zupełnie inny poziom problemu. Wiele, bardzo wiele, dzieje się w procedurach mysql-a, które znam nieźle. Reasumując: pisanie tego systemu jest przyjemnością. Podstawową cechą i zaletą(?) systemu jest to, że wszystko dzieje się on-line. Każde działanie jest natychmiast widoczne dla wszystkich lub dla osób uprawnionych. Każde działanie ma jakiś cel i służy czemuś. Wysłanie zgłoszenia do regat powoduje, że zgłoszenie jest od razu widoczne. Po obrobieniu przez organizatora (formalności! i przydział grup) od razu powstają listy startowe. Widać każdy wyścig, każdy finisz jachtu, tabele mety i wyniki wyścigów. To wszystko jest od razu widoczne, co ma ten plus, że łatwo wyłapać ewentualne błędy. Kliknięcie jednego przycisku wylicza wyniki wyścigu. Kliknięcie drugiego przycisku wylicza wyniki generalne regat na dany moment. Przeliczane są wyniki każdej grupy a jacht może należeć do wielu grup. Każdy jacht w wyścigu widoczny jest tylko raz, ale w wynikach pokazuje się w każdej grupie do jakiej należy. Wyniki każdej grupy liczone są zawsze indywidualnie, tylko wśród jachtów danej grupy. Z innej strony: dodanie komunikatu, pliku, IŻ trwa kilka sekund. Można zablokować zgłoszenia, można podać link do trackingu (widoczny na czerwono). Pobieranie świadectw ze strony ORC jest lepiej przemyślane niż w programie Scorer i elastyczne. Można pobrać świadectwo nie tylko ze strony ORC, ale np. archiwalne z pliku lub testowe. Dla uczestników bardzo rozbudowane są porównania jachtów, coś jak scratch sheety w programie Scocrer, ale nie tylko dla klasy ORC i do tego z większymi możliwościami. System pokazuje dane świadectw ORC, nawet te, których na świadectwach nie widać. Sporo informacji można dodać do jachtów. Współczynniki klas innych niż ORC, dokumenty jachtu, licencję sternika, informacje o wymaganiach OSR (inspekcje wyposażenia). Można, nie trzeba. Spisów wyposażenie dla swojego jachtu zrobiłem kilka i są one widoczne. Kilka innych jachtów również ma wpisane inspekcje, a ich widoczność zależy od armatorów. Niuansów i możliwości jest znacznie więcej. Niedawno powstała instrukcja do programu w postaci pdf, a infa/helpy do każdego okna są mocno rozbudowane i uzupełniane lub korygowane. Jeszcze istotna rzecz. System zbiera dane o użytkownikach w absolutnie minimalnym stopniu (w zasadzie tylko adres e-mail) i tylko na potrzeby obsługi regat, jachtów i klasyfikacji sezonu. Co jest naprawdę rzadkie. Adres strony: https://zpokladu.pl/sor/ |