Krok trzeci

Dokładniejszy opis kroku trzeciego, który mógłby być jeszcze rozwijany.

Moduł Rejestracji

Moduł ten odpowiedzialny jest za przygotowanie danych potrzebnych do rejestracji użytkownika. Również tutaj zdefiniowane są grupy kolarskie, weryfikacja mejlowa rejestrowanego użytkownika oraz podsumowanie rejestracji w formie wygenerowania majla powitalnego. Końcowym etapem jest wpisanie użytkownika do tabeli w grupie rezerwowej.
Co do problemów, które napotkałem to sposób informowania użytkownika o dostępności numer startowych. Informacja jest bardzo istotna gdyż numery są ilościowa ograniczone, jest ustalony pewien limit.
Użytkownik może zawsze się zarejestrować, nawet jeżeli limit został osiągnięty. W tym przypadku użytkownik trafia do grupy rezerwowej oczekując na zwolnienie się numeru. Dopiero gdy to nastąpi może wnieść opłatę i stać się zawodnikiem.

Moduł 1, rejestracja użytkownika

Moduł Zarządzania zawodnikiem

W tym module otrzymujemy informację o wpłacie użytkownika. Zdarzenie to ma wpływ na dalsze ruchy w obrębie tego modułu. Wniesienie opłaty powoduje zmianę stanu użytkownika, użytkownik staje się zawodnikiem, przydzielony zostaje numer startowy. Listy startowe są generowane określonego dnia przed rozpoczęciem samego maratonu (jest to ujęte w regulaminie). Po wygenerowaniu list startowych i przypisaniu do nich zawodników, którzy w tym momencie wpłacili, jest czas na roszady w grupach startowych. Każdy zawodnik ma możliwość jednej zmiany w grupy w obrębie swojego dystansu. Po zakończeniu tego okresu system automatycznie kieruje każdego nowego zawodnika do wolnej grupy. Są wyjątki od tej reguły, jeżeli zawodnik (nieopłacony) wysłał mejla z informacją o zmianie grupy w czasie trwania „okresu zmiany grupy”, można na tej podstawie dodać go do wybranej grupy ale musi być to zgodne z postanowieniami regulaminu (grupy maksymalnie piętnastoosobowe).

Zawodnik przed rozpoczęciem maratonu ma szanse na rezygnację i zwrot pieniędzy. Warunkiem zwrotu jest rezygnacja z udziału przed data zawartą w regulaminie, wtedy zawodnik otrzyma pełny zwrot kosztów, po przekroczeniu pewnej daty (regulamin) użytkownik nie otrzyma żadnych pieniędzy. Dodatkowo zawodnik może zmienić dystans na niższy lub wyższy przed startem danego dystansu, musi dopłacić brakującą kwotę ale niekoniecznie otrzyma zwrot nadpłaconej kwoty. Zwrotu nie otrzyma jeżeli informacja o zmianie dystansu wpłynie po dacie możliwości zwrotu pełnych środków za uczestnictwo w maratonie (data w regulaminie).

Zakończeniem tego modułu jest wystawienie zamkniętych list startowych.

Moduł 2 odpowiedzialny za generacje list startowych, przydzielenie numerów

Po napisaniu powyższego tekstu stwierdzam, że na ścianie można by jeszcze dopisać pewne zdarzenia.

Moduł Rejestracja czasu

Moduł ten odpowiedzialny jest start zawodników, zbieranie czasów odbić na poszczególnych punktach i wygenerowanie wyników. Moduł ten właściwie kończy się na wygenerowaniu wyników ale ja wciągnołem tu generowanie certyfikatu. Uznając że zdarzenie te jest za małe żeby robić z tego osobny moduł. Aktualnie w aplikacji jest to osobny moduł i docelowo tak pozostanie.

Zawodnik w każdej chwili może zrezygnować z dalszej jazdy, pieniądze nie zostaną mu zwrócone, a certyfikat zostanie wygenerowany tylko jeżeli zostanie wygenerowany wynik tzn. zawodnik musi przejechać co najmniej jedną pętle. Certyfikat (ukończenia maratonu) będzie wtedy zawierał dystans i czas jaki został faktycznie przejechany przez zawodnika, bez względu na zadeklarowany przy rejestracji. Zawodnik może również podjąć próbę przejechania większego dystansu niż zadeklarował ale wtedy będzie poza klasyfikacją tego większego dystansu bez względu na osiągnięty wynik.

Moduł odpowiedzialny za rejestracje czasu, generacje wyniku oraz tworzenie certyfikatu

Legenda

W tym miejscu postanowiłem umieścić legendę, różni się ona od tej standardowej, między innymi z powodu braku karteczek (kolor pomarańczowy i zielony) ale tak jak na początku zaznaczyłem każdy tworzy swoją legendę.

Legenda