Skip to content

Latest commit

 

History

History
103 lines (72 loc) · 6.74 KB

README.md

File metadata and controls

103 lines (72 loc) · 6.74 KB

Pole Dance Training Assistant

Aplikacja została napisana w języku Kotlin przy użyciu frameworku Jetpack Compose i przeznaczona jest dla systemu Android. Jest dedykowana dla osób trenujących pole dance, mając na celu wspieranie treningów w tej dziedzinie. Ze względu na wybór grupy docelowej, interfejs aplikacji jest w języku polskim.

Opis Projektu

Projekt składa się z kilku głównych modułów:

Data Structure

Moduł data_structure stanowi rdzeń aplikacji, zawierając wszystkie elementy związane z zarządzaniem danymi w bazie. Głównym celem tego modułu jest obsługa bazy danych opartej na Room, która przechowuje kluczowe informacje dotyczące figur pole dance. Centralną tabelą jest Pose, zawierająca nazwy figur, zdjęcia, poziomy trudności i tagi. Dodatkowo, ta tabela gromadzi dane użytkownika, takie jak poziom opanowania figury czy osobiste notatki. Moduł ten zawiera podfoldery:

Navbar

W module navbar znajduje się logika nawigacji między ekranami mojej aplikacji oraz implementacja wysuwanego menu. Ten moduł umożliwia użytkownikowi wygodne poruszanie się po aplikacji.

Moduły ekranów

Kolejne moduły związane są z poszczególnymi ekranami interfejsu aplikacji. Każdy z nich zawiera podfolder composables z kompozytami napisanymi z użyciem Jetpack Compose. Główny ekran zawsze znajduje się w pliku o nazwie postaci [nazwa widoku]Screen.kt. Każdy widok ma dedykowany ViewModel znajdujący się poza podfolderem composables.

Moduł pose_adding_view pozwala użytkownikowi na dodanie nowej figury do bazy danych. Jeśli dana figura jeszcze nie istnieje, użytkownik może ją wprowadzić, zapewniając unikalność i elastyczność listy treningowej.

W pose_detail_view użytkownik może sprawdzić szczegóły wybranej figury pole dance, takie jak jej opis i poziom trudności. To miejsce umożliwia wprowadzenie zmian w edytowalnych polach takich jak notatki i poziom opanowania figury. Użytkownik ma także możliwość edycji i usuwania figur dodanych przez siebie.

Dodatkową funkcjonalnością aplikacji jest codzienne losowanie "figury dnia", która wyświetlana jest na głównym (początkowym) ekranie aplikacji. . Ta funkcjonalność motywuje użytkowników do eksploracji nowych elementów treningowych.

poses_list_view zawiera listę wszystkich dostępnych figur w aplikacji. Użytkownik Z tego widoku użytkownik może dodawać figury do polubionych oraz wchodzić do ich podglądu (Detail view). Ponadto zaimplementowana jest zakładka pozwalająca na filtrowanie oraz pasek wyszukiwania

Testy

Projekt zawiera rozbudowany zestaw testów, co pozwala na zapewnienie solidnej jakości kodu i działania aplikacji.

Testy Jednostkowe

Testy jednostkowe znajdują się w dwóch głównych podfolderach i są uruchamiane za pomocą AndroidJUnit4:

Folder daoTests zawiera testy jednostkowe dla operacji bazodanowych. Testy te sprawdzają poprawność działania interfejsów komunikacji z bazą danych (DAOs), zapewniając integralność przechowywanych danych.

viewmodelsTests zawiera testy jednostkowe dla poszczególnych ViewModels. Dane są mockowane w celu sprawdzenia poprawności logiki biznesowej oraz interakcji między warstwą prezentacji a warstwą danych.

Instrukcje instalacji

Aby zainstalować aplikację:

  1. Sklonuj repozytorium: git clone https://github.com/Hortensjaa/Pole_Planner
  2. Otwórz projekt w Android Studio.
  3. Skompiluj i uruchom aplikację na emulatorze lub fizycznym urządzeniu.

Plany rozwoju aplikacji

Na aktualnym etapie projekt jest działającą aplikacją, która zapewnia podstawowe funkcjonalności ujęte w założeniach. Nie mniej jednak mam wiele pomysłów na jej dalsze rozbudowywanie, które planuję zaimplementować w przyszłości (lista aktualizowana na bieżąco, więc część została już zaimplementowana):

  • możliwość dodawania własnych figur, z własnymi zdjęciami
  • losowanie "figury dnia"
  • opcja dodawania swojego zdjęcia do figury istniejącej w bazie
  • możliwość grupowania figur w numerowane kolekcje (układy taneczne)
  • kalendarz do umożliwiający planowanie treningów
  • wersja aplikacji na system iOS (preferowany przez przytłaczającą większość społeczności pole dance...)