Hard Training: Podstawowe wymagania

#DajSięPoznać
W ostatnim wpisie dotyczącym projektu na #DajSięPoznać opisałem pomysł na aplikację. Dzisiaj postaram się podać bardziej sprecyzowane wymagania. Ma to być pewną wskazówką dla mnie podczas dalszych prac, oraz oczywiście informacją dla zainteresowanych.

Z punktu widzenia użytkownika program składa się z kilku odrębnych modułów:
Moduł logujący:
Po uruchomieniu programu użytkownik jest proszony o podanie nazwy i hasła (ewentualnego) do swojego profilu. W przypadku gdy użytkownik nie ma profilu, może uruchomić prosty kreator gdzie będzie mógł go utworzyć. Jeżeli użytkownik posiada profil, może nim zarządzać, to znaczy zmienić nazwę, hasło lub go po prostu usunąć. Gdy użytkownik zostanie zalogowany, przechodzi do okna głównego programu.
• Moduł sterowania funkcjonalnościami:
Brzmi jak coś z Power Rangers, ale w rzeczywistości jest to główne okno/panel programu. Wyświetla informację o ostatnim odbytym treningu, a także o najbliższym zaplanowanym. Użytkownik ma możliwość, z poziomu menu kontekstowego, przejścia do wybranej funkcjonalności, która wyświetli się w miejscu właśnie tego widoku.
Moduł danych użytkownika:
Pozwala wprowadzać podstawowe dane dotyczące użytkownika (wzrost, waga, obwody) i porównywać je z poprzednimi wpisami. Na podstawie czasu pomiędzy pomiarami i ilości odbytych treningów, postępy są oceniane. Potencjalnie jest to też miejsce na wprowadzenie elementów „grywalizacji”.
Moduł planu treningowego:
Najważniejsza część programu. Użytkownik ma możliwość tworzenia planów treningowych, z samodzielnie definiowanych ćwiczeń (niewielka baza najbardziej popularnych też się znajdzie), modyfikowania i usuwania ich. Gdy plan jest gotowy i wykorzystywany, użytkownik na bieżąco otrzymuje informacje dotyczącą ostatnich dwóch jednostek treningowych. Użytkownik może też na bieżąco śledzić swoje postępy na przestrzeni dowolnego czasu.
Moduł statystyk:
Funkcjonalność udostępniająca informacje „for fun” . Ilość odbytych/nieodbytych treningów, łączna ilość wykonanych serii, podniesionych ciężarów, przebiegniętych kilometrów itp.

Tak widzę funkcjonalności ‚must be’.

Teraz czas na kwestie dotyczące samego procesu tworzenia:
Jeżeli chodzi o poziom zestawów to w celu zmniejszenia zależności zdecydowałem się skorzystać z wzorca „Stairway” (o którym więcej w najbliższym czasie). Na temat zarządzania projektem na poziomie solucji nie będę się teraz więcej rozpisywał bo zamierzam napisać o tym trochę więcej w następnym wpisie. Jako, że aplikacja jest pisana przy wykorzystaniu WPF’a naturalnym jest, że korzystam z wzorca MVVM.
Kod postaram się pisać kierując się metodologią Test Driven Design. Konwencje, którymi będę się kierował są standardowymi w C# więc nie będę ich wymieniał (ewentualnie popełnię kiedyś wpis dotyczący konwencji, ale temat jest na tyle znany ,że nie wiem czy warto marnować na niego kolejne drzewa(wirtualne ofkorz :)) )
Jeśli jesteśmy już przy oczywistościach to mogę jeszcze napisać, że postaram się by kod był SOLIDny.

Myślę, że z rzeczy, które powinny być znane ewentualnym zainteresowanym byłoby to na tyle, przynajmniej w tej chwili 🙂 .

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *