Prace nad AnimalShelter trwają w najlepsze. Na ten moment udało się dodać podstawową obsługę wniosków. Dostępne są akcje akceptacji oraz odrzucania. Niestety nie istnieje jeszcze weryfikacja limitu dostępnego miejsca w schronisku. Chciałbym zaprogramować to sprawdzenie jako niezmiennik, ale pozostawię je na jeden z kolejnych wpisów. Skupmy się natomiast na tym co udało się skończyć.

Zmiana sposobu raportowania

Postanowiłem, że od teraz będę prezentował listę zamkniętych zadań stworzonych na GitHubie. Mam nadzieję, że ta praktyka pokaże co tak naprawdę udało się dowieźć oraz będzie dodatkowym motywatorem dla mnie.

  • #40 Soft deletation of proposals
  • #41 Acceptance and refusal of proposals
  • #42 Disallow acceptance and refusal of proposals when status is not pending
  • #43 Soft deletation of crud data
  • #44 Save history of changing proposal status
  • #45 Save date of creation and modification of data and proposals
  • #46 Accepting or declining proposals forbids changing crud data

Aktualnie wykonywane zadania znajdziesz pod tym linkiem. W skrócie udało się dorobić mechanizm “miękkiego” usuwania danych o zwierzętach oraz wnioskach. Dorobiono wcześniej wspomniane opcje akceptowania i odrzucania wniosków. Umożliwiono zapisywanie historii procesowania wniosków. Dodano daty stworzenia i aktualizowania rekordów w bazach danych. Na koniec zabroniono zmianę danych zwierząt po zaakceptowaniu lub odrzuceniu jego wniosku.

Wszędzie widzę eventy

Postanowiłem, że moduły CRUD oraz wniosków będą ze sobą luźno powiązane poprzez zdarzenia, o czym wspomniałem w pierwszym wpisie. Z tego powodu jeśli wniosek zostanie rozpatrzony pozytywnie lub negatywnie to następstwem tego faktu będzie wyemitowany event. Moduł CRUD będzie na niego nasłuchiwał, aby w razie co zablokować modyfikację wybranych danych.

Pomysł na architekturę

Mam nadzieję, że powyższy obrazek dobrze przedstawia zaprogramowaną, obustronną komunikację. Dodanie nowego zwierzaka powoduje stworzenie wniosku. Podjęcie decyzji co do wniosku blokuje modyfikację tych danych. W skrócie idealna współpraca!

Milestones

Postanowiłem, że tym razem zaplanuję sobie odpowiednie kamienie milowe, które chciałbym mieć w swojej aplikacji. Dlatego wykorzystując Nozbe stworzyłem projekt i o to co powstało.

Podgląd na planowane milestones dla AnimalShelter
Podgląd na planowane milestones dla AnimalShelter

Te zadania mają być dla mnie drogowskazem do celu, który chcę zdobyć. Dla każdego z powyższych punktów będę tworzył dodatkowe mniejsze zadania na poziomie GitHuba. W ten sposób będę mógł monitorować czy praca porusza się do przodu. Zobaczymy na ile ten mechanizm się w ogóle sprawdzi, ale jestem dobrej myśli.

Podsumowanie

Jak widać praca techniczna i koncepcyjna cały czas mknie do przodu. Liczę na to, że tak pozostanie. Pewnie niektóre aspekty poprzewracają się do góry nogami oraz przyjdą gorsze momenty, ale teraz cieszę się chwilą i wracam dalej do kodowania. Już niedługo przybędę z kolejną porcją aktualizacji na temat aplikacji AnimalShelter.

Link do GitHub: https://github.com/cezarysanecki/animal-shelter
Tag: 20220729-animalshelter-obsluga-wnioskow