Datasobota, 5 września 2026 Czas05:51:25
Aplikacja desktopowa / mobilna 👥 4 osoby 📅 5 tygodni

Tracker nawyków

Codzienne nawyki z serią dni „pod rząd" i podsumowaniem tygodniowym postępu.

Technologie: .NET MAUI (mobilna) + SQLite

Po co ten projekt

Zbudujecie aplikację do budowania nawyków: definiujesz nawyk (nauka, sport, woda), odhaczasz każdy dzień, a program liczy Twoją „serię" dni pod rząd i pokazuje postęp w tygodniu. Mechanizm serii to prosta, ale ciekawa logika z datami.

Co budujemy

  • definiowanie nawyków (nazwa, cel np. „codziennie", kolor/ikona),
  • odhaczanie nawyku na dany dzień,
  • liczenie serii — ile dni pod rząd nawyk był wykonany,
  • podsumowanie tygodnia: ile dni z 7 dla każdego nawyku,
  • historia wykonania (kalendarz lub lista).

Struktura danych

Nawyki 1 ────< Wpisy

Nawyki(id, nazwa, cel, kolor)
Wpisy(id, nawyk_id →, data, wykonany)
   REGUŁA: (nawyk_id, data) niepowtarzalne — jeden wpis na nawyk na dzień

Kontekst z życia

Aplikacje typu „streak" (jak seria w Duolingo) działają na tej zasadzie: liczą, ile dni pod rząd coś robisz, i motywują, żeby nie przerwać. Wy zaprogramujecie ten sam mechanizm serii dni.

Podział obowiązków

RolaKonkretne zadania w tym projekcie
Lider / analitykustala zakres, rysuje diagram danych, zakłada tablicę w Trello, pilnuje terminów, pisze dokumentację (instrukcja użytkownika + opis bazy), przygotowuje i prowadzi prezentację, scala pracę zespołu (Git / wspólny dysk)
Projektant bazy danychbaza SQLite (2 tabele, klucz + reguła unikalności wpisu na dzień), dane testowe (kilka nawyków + wpisy z ostatnich 2 tygodni), zapytania: dni wykonane w tygodniu, najdłuższa seria
Programista interfejsu (UI)widoki: lista nawyków z aktualną serią, ekran odhaczania na dziś, podsumowanie tygodnia, historia (kalendarz/lista)
Programista logiki / testerodhaczanie nawyku (jeden wpis na dzień), liczenie serii dni pod rząd, podsumowanie tygodnia, walidacja (brak podwójnego wpisu na ten sam dzień), testy

Harmonogram

TydzieńKamień milowy
1Analiza i projekt: zakres, diagram danych, podział zadań, harmonogram
2Baza SQLite + szkielet aplikacji działa
3Lista nawyków i odhaczanie połączone z bazą
4Liczenie serii dni + podsumowanie tygodnia + testy
5Scalenie, poprawki, dokumentacja, prezentacja przed klasą

Kryteria oceny

Każdy uczeń dostaje ocenę indywidualną za swoją rolę (kryteria zero-jedynkowe) plus wspólny bonus zespołowy. Proporcja: 70% rola + 30% zespół.

Projektant bazy danych (0–10 pkt):

  • baza SQLite z 2 tabelami i kluczem obcym (2)
  • reguła: jeden wpis na nawyk na dany dzień (2)
  • dane testowe: kilka nawyków + wpisy z 2 tygodni (2)
  • zapytanie „dni wykonane w tygodniu" (2)
  • zapytanie „najdłuższa seria" (2)

Programista logiki / tester (0–10 pkt):

  • odhaczenie zapisuje wpis na dziś (2)
  • seria dni pod rząd liczy się poprawnie (3)
  • podsumowanie tygodnia pokazuje X z 7 dni (2)
  • walidacja: brak dwóch wpisów na ten sam dzień (2)
  • spisane wyniki testów (1)

Analogiczne zestawy kryteriów obowiązują Lidera (dokumentacja, harmonogram, prezentacja, scalanie) oraz Programistę UI (kompletność widoków, czytelność, połączenie z bazą, walidacja formularzy).

Ocena zespołowa (0–10 pkt):

  • aplikacja uruchamia się i działa jako całość (3)
  • części zespołu są zintegrowane, nie luźne kawałki (3)
  • prezentacja jasno pokazuje działanie i podział pracy (2)
  • dokumentacja kompletna: instrukcja + opis bazy (2)

Typowe błędy w pracy zespołowej

  • brak wspólnego miejsca na kod → wersje się rozjeżdżają; ustalcie od razu Git albo jeden dysk,
  • „zrobimy wszystko na końcu" → kamienie milowe są po to, żeby tego uniknąć,
  • każdy pisze w swoim stylu → uzgodnijcie nazewnictwo tabel i zmiennych na starcie,
  • nikt nie testuje integracji → tester wchodzi już w 4. tygodniu, nie na końcu.

W tym projekcie szczególnie: błędne liczenie serii przy przerwie (jeden opuszczony dzień musi zerować serię) — przetestujcie na danych z luką.

Nawiązanie do egzaminu

Ten projekt łączy logikę aplikacji, interfejs i lokalną bazę SQLite — czyli rdzeń części praktycznej INF.04 (aplikacja desktopowa/mobilna). Podział ról pozwala każdemu skupić się na innym fragmencie tego, co na egzaminie robi się w pojedynkę.