## Autorzy Michał Hajahmadov \ Mateusz Garncarczyk # Specyfikacja wymagań ### 1. Historyjki użytkownika #### Rejestracja i Profil Użytkownika: - Jako nowy użytkownik, chcę móc zarejestrować się w aplikacji, używając swojego konta e-mail lub konta społecznościowego. - Po zalogowaniu, chciałbym mieć możliwość uzupełnienia swojego profilu, dodając zdjęcie, opis oraz preferencje dotyczące trasy rowerowej. #### Śledzenie Trasy i Postępu: - Jako użytkownik, chciałbym móc uruchomić funkcję śledzenia mojej trasy podczas jazdy na rowerze. - Podczas jazdy, chciałbym mieć dostęp do informacji na temat aktualnie pokonanej odległości, średniej prędkości oraz czasu trwania trasy. - Po zakończeniu trasy, chciałbym zobaczyć szczegółową analizę mojego przejazdu, w tym wysokość przewyższenia i mapę trasy. #### Rywalizacja i Wyzwania: - Jako użytkownik, chciałbym móc brać udział w różnych wyzwaniach rowerowych, takich jak "Najwięcej kilometrów w miesiącu" lub "Najszybsza trasa". - Pragnę mieć możliwość tworzenia własnych wyzwań i zapraszania innych użytkowników do udziału. - Po zakończeniu wyzwania, chciałbym zobaczyć ranking uczestników i ewentualnie zdobyć nagrody. ### 2. Wymagania funkcjonalne #### Rejestracja i Profil Użytkownika: - Umożliwienie rejestracji przy użyciu adresu e-mail lub konta społecznościowego. - Tworzenie i edycja profilu użytkownika z opcjonalnymi informacjami i zdjęciem. #### Śledzenie Trasy i Postępu: - Funkcja GPS do śledzenia trasy i zbierania danych dotyczących przejazdu. - Wyświetlanie na bieżąco informacji o odległości, prędkości i czasie trwania trasy. - Tworzenie szczegółowych statystyk i analiz po zakończeniu trasy. #### Rywalizacja i Wyzwania: - System rankingowy dla użytkowników oparty na ilości pokonanych kilometrów. - Tworzenie i uczestnictwo w publicznych i prywatnych wyzwaniach. - Przyznawanie odznak i nagród dla zwycięzców wyzwań. #### Powiadomienia: - Wysyłanie powiadomień push o nowych wyzwaniach, zaproszeniach do przyłączenia się do grupy oraz aktualizacjach związanych z aplikacją. #### Integracja Społecznościowa: - Możliwość udostępniania tras i osiągnięć na platformach społecznościowych. - Integracja z mapami online do łatwiejszego planowania tras. #### Panel administratora - Możliwość usuwania użytkowników, grup oraz postów. - Możliwość zmiany hasła użytkownikom. - Zarządzanie (czyli dodawanie, edytowanie, usuwanie, czy samo przeglądanie), bonusów, tras, wyzwań i odznak. ### 3. Wymagania niefunkcjonalne: #### Wydajność - Aplikacja powinna szybko reagować na działania użytkownika, zapewniając płynne śledzenie trasy i aktualizacje statystyk. #### Bezpieczeństwo - Wszystkie dane użytkowników, w tym informacje o trasach, powinny być przechowywane bezpiecznie i chronione przed nieautoryzowanym dostępem. #### Dostępność - Aplikacja powinna być dostępna na popularnych platformach mobilnych, takich jak iOS i Android, zapewniając jednolite doświadczenie użytkownika. #### Skalowalność - System powinien być elastyczny i skalowalny, aby obsłużyć rosnącą liczbę użytkowników i danych związanych z trasami rowerowymi. #### Interfejs Użytkownika: - Aplikacja powinna posiadać intuicyjny interfejs użytkownika, umożliwiający łatwe nawigowanie i korzystanie z funkcji.