Zaktualizuj 'Witkowski/aport-me/dokument_wymagan_projektowych.md'

This commit is contained in:
Dawid Wietrzych 2021-01-16 13:21:08 +01:00
parent f7091f82f0
commit 907659e28a

View File

@ -1,215 +1,216 @@
# Dokument wymagań projektowych # Dokument wymagań projektowych
## Nazwa projektu: **AportMe** ## Nazwa projektu: **AportMe**
## Autorzy: _Dawid Wietrzych, Jacek Krakowski, Matusz Lesiecki, Wojciech Jarmosz_ ## Autorzy: _Dawid Wietrzych, Jacek Krakowski, Matusz Lesiecki, Wojciech Jarmosz_
## Data: 13.11.2020r. ## Data: 13.11.2020r.
## **0. Wersje dokumentu** ## **0. Wersje dokumentu**
| Wersja | Data | Zmiany | | Wersja | Data | Zmiany |
| :----: | :----------: | :---------------------------------------: | | :----: | :----------: | :---------------------------------------: |
| 1.0 | 13.11.2020r. | Utworzenie dokumentu wymagań projektowych | | 1.0 | 13.11.2020r. | Utworzenie dokumentu wymagań projektowych |
| 1.1 | 16.01.2021r. | Poprawka opisu organizacji pracy zespołu |
## **1. Elementy składowe projektu (produkty projektu)**
## **1. Elementy składowe projektu (produkty projektu)**
#### **Programistyczne:**
#### **Programistyczne:**
- Aplikacja webowa oparta o framework Vue.js.
- Aplikacja mobilna dla systemów Android 16+ i iOS 9+. - Aplikacja webowa oparta o framework Vue.js.
- Instancja serwera bazodanowego oparta o silnik PostgreSQL. - Aplikacja mobilna dla systemów Android 16+ i iOS 9+.
- Aplikacja serwerowa w języku Java oparta o framework Spring Boot. - Instancja serwera bazodanowego oparta o silnik PostgreSQL.
- Aplikacja serwerowa w języku Java oparta o framework Spring Boot.
#### **Nieprogramistyczne:**
#### **Nieprogramistyczne:**
- Zbieranie wymagań projektowych przy współpracy z przedstawicielem fundacji.
- Stworzenie dokumentu wizji projektu. - Zbieranie wymagań projektowych przy współpracy z przedstawicielem fundacji.
- Dokument wymagań projektowych. - Stworzenie dokumentu wizji projektu.
- Dokumentacja techniczna. - Dokument wymagań projektowych.
- Diagram UML, obrazujący schemat bazy danych. - Dokumentacja techniczna.
- Ankieta użyteczności/wrażeń użytkownika projektu. - Diagram UML, obrazujący schemat bazy danych.
- Ankieta użyteczności/wrażeń użytkownika projektu.
## **2. Granice projektu**
## **2. Granice projektu**
- **Dlaczego aplikacja nie zostanie udostępniona w Apple Store?**
Produkt na urządzenia marki Apple, wymagają posiadania sprzętu tego producenta. Zespół nie dysponuje obecnie wystarczającą ilością sprzętu umożliwiającą przetestowanie aplikacji w stopniu umożliwiającym jej bezpieczne i pewne wdrożenie. Projekt zakłada wydanie wersji oraz rozwój na platformę iOS w przypadku sukcesu aplikacji na platformę Android. Cały proces wiąże się z kosztami, których w obecnej chwili nie jesteśmy w stanie pokryć. - **Dlaczego aplikacja nie zostanie udostępniona w Apple Store?**
Produkt na urządzenia marki Apple, wymagają posiadania sprzętu tego producenta. Zespół nie dysponuje obecnie wystarczającą ilością sprzętu umożliwiającą przetestowanie aplikacji w stopniu umożliwiającym jej bezpieczne i pewne wdrożenie. Projekt zakłada wydanie wersji oraz rozwój na platformę iOS w przypadku sukcesu aplikacji na platformę Android. Cały proces wiąże się z kosztami, których w obecnej chwili nie jesteśmy w stanie pokryć.
- **Dlaczego funkcjonalność płatności nie została wdrożona?**
Obecnie większość systemów do płatności online wymaga przesłania pieniędzy na nasze konto, a my bezpośrednio przelewamy na konto fundacji. Obecnie posiadamy za mało wiedzy żeby móc działać w tym zakresie w pełni legalnie. Rozważamy założenie fundacji która pozwoli nam na legalne obsługiwanie tej funkcjonalności, bez ryzyka problem ze strony Urzędu Skarbowego. - **Dlaczego funkcjonalność płatności nie została wdrożona?**
Obecnie większość systemów do płatności online wymaga przesłania pieniędzy na nasze konto, a my bezpośrednio przelewamy na konto fundacji. Obecnie posiadamy za mało wiedzy żeby móc działać w tym zakresie w pełni legalnie. Rozważamy założenie fundacji która pozwoli nam na legalne obsługiwanie tej funkcjonalności, bez ryzyka problem ze strony Urzędu Skarbowego.
- **Dlaczego konta dla fundacji są tworzone na bazie po stronie naszego zespołu?**
Nasza aplikacja zakłada rejestrację fundacji za pośrednictwem naszego zespołu, ze względów bezpieczeństwa i ograniczenia do minimum podszywania się zwykłych użytkowników pod konta fundacji. Po naszej stronie leży sprawdzenie wiarygodności fundacji, która zechce u nas założyć konto i takowe konto przekazać z hasłem tymczasowym, które potem fundacja może zmienić w panelu użytkownika. - **Dlaczego konta dla fundacji są tworzone na bazie po stronie naszego zespołu?**
Nasza aplikacja zakłada rejestrację fundacji za pośrednictwem naszego zespołu, ze względów bezpieczeństwa i ograniczenia do minimum podszywania się zwykłych użytkowników pod konta fundacji. Po naszej stronie leży sprawdzenie wiarygodności fundacji, która zechce u nas założyć konto i takowe konto przekazać z hasłem tymczasowym, które potem fundacja może zmienić w panelu użytkownika.
- **Dlaczego nie zdecydowano się na integrację z zewnętrznymi systemami (np. systemami autoryzacji)?**
Nie zdecydowaliśmy się na wykorzystanie usługi Keycloak (rozważaliśmy taką opcję autoryzacji użytkowników) z powodu braku doświadczenia w jej wykorzystaniu. Braliśmy również pod uwagę zintegrowanie aplikacji z usługą Firebase, jednak wymagał on zbyt dużej (jak nie całkowitej) integracji naszego projektu z usługami Googlea czego nie chcieliśmy robić. - **Dlaczego nie zdecydowano się na integrację z zewnętrznymi systemami (np. systemami autoryzacji)?**
Nie zdecydowaliśmy się na wykorzystanie usługi Keycloak (rozważaliśmy taką opcję autoryzacji użytkowników) z powodu braku doświadczenia w jej wykorzystaniu. Braliśmy również pod uwagę zintegrowanie aplikacji z usługą Firebase, jednak wymagał on zbyt dużej (jak nie całkowitej) integracji naszego projektu z usługami Googlea czego nie chcieliśmy robić.
- **Dlaczego niektóre funkcjonalności nie zostały (lub nie zostaną) wdrożone, chociaż nie wymagają istotnego nakładu prac?**
Staramy się na ten moment wypuścić produkt spełniający minimalne wymagania fundacji i użytkowników (model MVP). Umożliwi to wcześniejsze zebranie opinii na temat przyszłych funkcjonalności projektu i dalszego rozwoju. Pozwoli też na uniknięcie wprowadzania niepotrzebnych modułów. Projekt wymaga również większego nakładu prac (z racji używanych technologii i platform - mobilna oraz webowa). - **Dlaczego niektóre funkcjonalności nie zostały (lub nie zostaną) wdrożone, chociaż nie wymagają istotnego nakładu prac?**
Staramy się na ten moment wypuścić produkt spełniający minimalne wymagania fundacji i użytkowników (model MVP). Umożliwi to wcześniejsze zebranie opinii na temat przyszłych funkcjonalności projektu i dalszego rozwoju. Pozwoli też na uniknięcie wprowadzania niepotrzebnych modułów. Projekt wymaga również większego nakładu prac (z racji używanych technologii i platform - mobilna oraz webowa).
## **3. Lista wymagań funkcjonalnych**
## **3. Lista wymagań funkcjonalnych**
#### **Aplikacja mobilna**
#### **Aplikacja mobilna**
- Użytkownik loguje się do aplikacji mobilnej.
- Użytkownik rejestruje się loguje do aplikacji mobilnej. - Użytkownik loguje się do aplikacji mobilnej.
- Użytkownik może przejść do aplikacji bez autoryzacji. - Użytkownik rejestruje się loguje do aplikacji mobilnej.
- Użytkownik może wysłać email z linkiem do resetu hasła. - Użytkownik może przejść do aplikacji bez autoryzacji.
- Użytkownik przegląda listę zwierząt dostępnych w systemie. - Użytkownik może wysłać email z linkiem do resetu hasła.
- Użytkownik przegląda listę fundacji dostępnych w systemie. - Użytkownik przegląda listę zwierząt dostępnych w systemie.
- Użytkownik może przejrzeć szczegółowy opis zwierzęcia. - Użytkownik przegląda listę fundacji dostępnych w systemie.
- Użytkownik może skontaktować się z fundacją za pośrednictwem telefonu lub maila (przekierowanie do dedykowanej aplikacji). - Użytkownik może przejrzeć szczegółowy opis zwierzęcia.
- Zalogowany użytkownik może dodać zwierzęta do ulubionych. - Użytkownik może skontaktować się z fundacją za pośrednictwem telefonu lub maila (przekierowanie do dedykowanej aplikacji).
- Zalogowany użytkownik może dodać fundacje do ulubionych. - Zalogowany użytkownik może dodać zwierzęta do ulubionych.
- Zalogowany użytkownik może przeglądać polubione zwierzęta i fundacje. - Zalogowany użytkownik może dodać fundacje do ulubionych.
- Zalogowany użytkownik może się wylogować. - Zalogowany użytkownik może przeglądać polubione zwierzęta i fundacje.
- Zalogowany użytkownik może utworzyć ankietę adopcyjną. - Zalogowany użytkownik może się wylogować.
- Zalogowany użytkownik może przeglądać swoje ankiety adopcyjne. - Zalogowany użytkownik może utworzyć ankietę adopcyjną.
- Możliwość filtrowania, wyszukiwania określonych zwierząt według kryteriów określonych przez fundacje.. - Zalogowany użytkownik może przeglądać swoje ankiety adopcyjne.
- Możliwość wsparcia finansowego zwierząt/schronisk. - Możliwość filtrowania, wyszukiwania określonych zwierząt według kryteriów określonych przez fundacje..
- Możliwość wyrażenia chęci adopcji wybranego zwierzaka. - Możliwość wsparcia finansowego zwierząt/schronisk.
- Możliwość zmiany hasła. - Możliwość wyrażenia chęci adopcji wybranego zwierzaka.
- Dodawanie do polubionych fundacji i zwierząt. - Możliwość zmiany hasła.
- Obliczanie odległości od schroniska na podstawie lokalizacji użytkownika. - Dodawanie do polubionych fundacji i zwierząt.
- Optymalizacja pobierania wpisów. - Obliczanie odległości od schroniska na podstawie lokalizacji użytkownika.
- Autoryzacja. - Optymalizacja pobierania wpisów.
- Autoryzacja.
#### **Aplikacja webowa**
#### **Aplikacja webowa**
- Pozwala zalogować się fundacji.
- Pozwala zarządzać ogłoszeniami zwierząt fundacji. - Pozwala zalogować się fundacji.
- Pozwala aktualizować dane fundacji. - Pozwala zarządzać ogłoszeniami zwierząt fundacji.
- Fundacja ma wgląd w ankiety adopcyjne. - Pozwala aktualizować dane fundacji.
- Dodanie kreatora ankiet, które użytkownicy będą wypełniać w celu złożenia wniosku o adopcję danego zwierzęcia. - Fundacja ma wgląd w ankiety adopcyjne.
- Dodanie możliwości przeglądania nadesłanych wniosków z poziomu aplikacji. - Dodanie kreatora ankiet, które użytkownicy będą wypełniać w celu złożenia wniosku o adopcję danego zwierzęcia.
- Dodanie małego workflow obiegu wniosków (zaakceptowany/odrzucony etc.). - Dodanie możliwości przeglądania nadesłanych wniosków z poziomu aplikacji.
- Przystosowanie aplikacji webowej również dla urządzeń mobilnych (breakpointy). - Dodanie małego workflow obiegu wniosków (zaakceptowany/odrzucony etc.).
- Podpięcie api związanego z logowaniem zmianą hasła użytkowników. - Przystosowanie aplikacji webowej również dla urządzeń mobilnych (breakpointy).
- Panel umożliwiający prezentację płatności, które zostały przekazane na rzecz zwierząt z określonej fundacji. - Podpięcie api związanego z logowaniem zmianą hasła użytkowników.
- Zrealizowanie poprawek przekazanych przez komisję na pierwszej obronie projektu. - Panel umożliwiający prezentację płatności, które zostały przekazane na rzecz zwierząt z określonej fundacji.
- Zrealizowanie poprawek przekazanych przez komisję na pierwszej obronie projektu.
#### **Serwer**
#### **Serwer**
- Wdrożenie modułu płatności umożliwiającego datkowanie zwierząt.
- Tworzenie logiki biznesowej do ankiet adopcyjnych. - Wdrożenie modułu płatności umożliwiającego datkowanie zwierząt.
- Pokrycie testami. - Tworzenie logiki biznesowej do ankiet adopcyjnych.
- Autoryzacja. - Pokrycie testami.
- Autoryzacja.
## **4. Lista wymagań niefunkcjonalnych**
## **4. Lista wymagań niefunkcjonalnych**
- Aplikacja webowa, powinna posiadać interfejs wielojęzyczny (język angielski oraz polski).
- Maksymalny czas ładowania się aplikacji webowej powinien wynosić maksymalnie 10s. - Aplikacja webowa, powinna posiadać interfejs wielojęzyczny (język angielski oraz polski).
- Aplikacja webowa będzie wspierać wszystkie najpopularniejsze przeglądarki (tj. Google Chrome, Mozilla Firefox, Opera, Microsoft Edge, Safari) z wyłączeniem Internet Explorer z racji zapowiedzianego przez firmę Microsoft braku dalszego wsparcia oraz ewentualnych problemów z wczytywaniem paczek npm. - Maksymalny czas ładowania się aplikacji webowej powinien wynosić maksymalnie 10s.
- Aplikacja webowa będzie wspierać wszystkie najpopularniejsze przeglądarki (tj. Google Chrome, Mozilla Firefox, Opera, Microsoft Edge, Safari) z wyłączeniem Internet Explorer z racji zapowiedzianego przez firmę Microsoft braku dalszego wsparcia oraz ewentualnych problemów z wczytywaniem paczek npm.
## **5. Mierzalne wskaźniki wdrożeniowe**
## **5. Mierzalne wskaźniki wdrożeniowe**
- Aplikacja mobilna zostanie wdrożona w sklepie Google Play.
- System do zarządzania ogłoszeniami zwierząt dla fundacji zostanie wdrożony na domenie publicznej. Ogłoszenia zostaną dodane przez przynajmniej jedną współpracującą fundację. - Aplikacja mobilna zostanie wdrożona w sklepie Google Play.
- Pod koniec pierwszego semestru wersja testowa zostanie przedstawiona współpracującej fundacji oraz zostaną zebrane informacje zwrotne o tym co należy poprawić. - System do zarządzania ogłoszeniami zwierząt dla fundacji zostanie wdrożony na domenie publicznej. Ogłoszenia zostaną dodane przez przynajmniej jedną współpracującą fundację.
- Pod koniec drugiego semestru system zostanie przedstawiony potencjalnym użytkownikom względem zebrania informacji o konwersji aplikacji. - Pod koniec pierwszego semestru wersja testowa zostanie przedstawiona współpracującej fundacji oraz zostaną zebrane informacje zwrotne o tym co należy poprawić.
- System backendowy zostanie wdrożony na dedykowany serwer. - Pod koniec drugiego semestru system zostanie przedstawiony potencjalnym użytkownikom względem zebrania informacji o konwersji aplikacji.
- System backendowy zostanie wdrożony na dedykowany serwer.
## **6. Kryteria akceptacji projektu dla I semestru prac**
## **6. Kryteria akceptacji projektu dla I semestru prac**
#### **Aplikacja mobilna:**
#### **Aplikacja mobilna:**
- Główna lista zwierzaków do adopcji i podgląd profilu wraz ze szczegółami o danych zwierzęciu. - **wymagane**
- Lista fundacji występująca w aplikacji i podgląd szczegółowych informacji. - **wymagane** - Główna lista zwierzaków do adopcji i podgląd profilu wraz ze szczegółami o danych zwierzęciu. - **wymagane**
- Ekrany logowania i rejestracji użytkowników. - **oczekiwane** - Lista fundacji występująca w aplikacji i podgląd szczegółowych informacji. - **wymagane**
- Zakładka “ulubione” z fundacjami i zwierzętami. - **planowane** - Ekrany logowania i rejestracji użytkowników. - **oczekiwane**
- Ekran profilu użytkownika. - **oczekiwane** - Zakładka “ulubione” z fundacjami i zwierzętami. - **planowane**
- Intro slider. - **oczekiwane** - Ekran profilu użytkownika. - **oczekiwane**
- Intro slider. - **oczekiwane**
#### **Aplikacja webowa:**
#### **Aplikacja webowa:**
- Stworzenie interfejsu zarządzania profilami tj. główna lista dodanych profili, a także ich podgląd oraz edycja (CRUD). - **wymagane**
- Stworzenie panelu edycji profilu fundacji oraz ustawień konta. - **wymagane** - Stworzenie interfejsu zarządzania profilami tj. główna lista dodanych profili, a także ich podgląd oraz edycja (CRUD). - **wymagane**
- Wdrożenie możliwości kadrowania oraz dodawania zdjęć do profili zwierząt. - **oczekiwane** - Stworzenie panelu edycji profilu fundacji oraz ustawień konta. - **wymagane**
- Stworzenie podstron: “Strony głównej”, “O nas”, “Kontakt”. - **oczekiwane** - Wdrożenie możliwości kadrowania oraz dodawania zdjęć do profili zwierząt. - **oczekiwane**
- Stworzenie interfejsu logowania użytkowników. - **oczekiwane** - Stworzenie podstron: “Strony głównej”, “O nas”, “Kontakt”. - **oczekiwane**
- Stworzenie interfejsu logowania użytkowników. - **oczekiwane**
#### **Aplikacja backendowa:**
#### **Aplikacja backendowa:**
- Stworzenie encji ORM fundacji, użytkownika, profili zwierząt oraz danych użytkownika. - **wymagane**
- Stworzenie REST API dla profili, danych użytkownika, a także profili fundacji. - **wymagane** - Stworzenie encji ORM fundacji, użytkownika, profili zwierząt oraz danych użytkownika. - **wymagane**
- Stworzenie podstawowego modelu autoryzacji użytkowników. - **wymagane** - Stworzenie REST API dla profili, danych użytkownika, a także profili fundacji. - **wymagane**
- Zgodność aplikacji z polityką RODO. - **wymagane** - Stworzenie podstawowego modelu autoryzacji użytkowników. - **wymagane**
- Testy obciążeniowe aplikacji. - **oczekiwane** - Zgodność aplikacji z polityką RODO. - **wymagane**
- zdajemy sobie sprawę z ryzyka dużej liczebności użytkowników naszej aplikacji, co za tym idzie ze zwiększonego “ruchu” i obciążenia serwera. Dołożymy wszelkich starań aby aplikacja była jak najbardziej wydajna w stosunku do liczby korzystających z niej osób. - Testy obciążeniowe aplikacji. - **oczekiwane**
- zdajemy sobie sprawę z ryzyka dużej liczebności użytkowników naszej aplikacji, co za tym idzie ze zwiększonego “ruchu” i obciążenia serwera. Dołożymy wszelkich starań aby aplikacja była jak najbardziej wydajna w stosunku do liczby korzystających z niej osób.
## **7. Kryteria akceptacji projektu dla II semestru prac**
## **7. Kryteria akceptacji projektu dla II semestru prac**
#### **Aplikacja mobilna:**
#### **Aplikacja mobilna:**
- Możliwość filtrowania, wyszukiwania określonych zwierząt według kryteriów określonych przez fundacje. - **wymagane**
- Możliwość wsparcia finansowego zwierząt/schronisk. - **planowane** - Możliwość filtrowania, wyszukiwania określonych zwierząt według kryteriów określonych przez fundacje. - **wymagane**
- Możliwość wyrażenia chęci adopcji wybranego zwierzaka. - **wymagane** - Możliwość wsparcia finansowego zwierząt/schronisk. - **planowane**
- Dodawanie do polubionych fundacji i zwierząt. - **oczekiwane** - Możliwość wyrażenia chęci adopcji wybranego zwierzaka. - **wymagane**
- Możliwość zmiany hasła. - **wymagane** - Dodawanie do polubionych fundacji i zwierząt. - **oczekiwane**
- Obliczanie odległości od schroniska na podstawie lokalizacji użytkownika. - **planowane** - Możliwość zmiany hasła. - **wymagane**
- Optymalizacja pobierania wpisów. - **wymagane** - Obliczanie odległości od schroniska na podstawie lokalizacji użytkownika. - **planowane**
- Autoryzacja. - **wymagane** - Optymalizacja pobierania wpisów. - **wymagane**
- Autoryzacja. - **wymagane**
#### **Aplikacja webowa:**
#### **Aplikacja webowa:**
- Dodanie kreatora ankiet, które użytkownicy będą wypełniać w celu złożenia wniosku o adopcję danego zwierzęcia. - **wymagane**
- Dodanie możliwości przeglądania nadesłanych wniosków z poziomu aplikacji. - **wymagane** - Dodanie kreatora ankiet, które użytkownicy będą wypełniać w celu złożenia wniosku o adopcję danego zwierzęcia. - **wymagane**
- Dodanie małego workflow obiegu wniosków (zaakceptowany/odrzucony etc.). - **oczekiwane** - Dodanie możliwości przeglądania nadesłanych wniosków z poziomu aplikacji. - **wymagane**
- Przystosowanie aplikacji webowej również dla urządzeń mobilnych (breakpointy). - **oczekiwane** - Dodanie małego workflow obiegu wniosków (zaakceptowany/odrzucony etc.). - **oczekiwane**
- Podpięcie api związanego z logowaniem zmianą hasła użytkowników. - **wymagane** - Przystosowanie aplikacji webowej również dla urządzeń mobilnych (breakpointy). - **oczekiwane**
- Panel umożliwiający prezentację płatności, które zostały przekazane na rzecz zwierząt z określonej fundacji. - **planowane** - Podpięcie api związanego z logowaniem zmianą hasła użytkowników. - **wymagane**
- Zrealizowanie poprawek przekazanych przez komisję na pierwszej obronie projektu. - **wymagane** - Panel umożliwiający prezentację płatności, które zostały przekazane na rzecz zwierząt z określonej fundacji. - **planowane**
- Zrealizowanie poprawek przekazanych przez komisję na pierwszej obronie projektu. - **wymagane**
#### **Aplikacja backendowa:**
#### **Aplikacja backendowa:**
- Wdrożenie modułu płatności umożliwiającego datkowanie zwierząt. - **planowane**
- Pokrycie testami. - **oczekiwane** - Wdrożenie modułu płatności umożliwiającego datkowanie zwierząt. - **planowane**
- Tworzenie logiki biznesowej do ankiet adopcyjnych. - **wymagane** - Pokrycie testami. - **oczekiwane**
- Autoryzacja. - **wymagane** - Tworzenie logiki biznesowej do ankiet adopcyjnych. - **wymagane**
- Autoryzacja. - **wymagane**
## **8. Organizacja pracy zespołu**
## **8. Organizacja pracy zespołu**
- Komunikacją z klientem zajmował się Mateusz Lesiecki, polegała ona na wykonywaniu wideokonferencji z klientem oraz zespołem AportMe po ukończonym sprincie i prezentacji aktualnego stanu projektu. Klient oceniał funkcje projektu oraz ich UX. Głównym interesariuszem projektu jest TTB Poznań - fundacja zajmująca się pomocą Bulterierom. Fundacja ta jest również przyszłym klientem korzystającym z aplikacji w roli fundacji/schroniska.
Podział zespołu ze względu na technologię przedstawia się następująco: - Komunikacją z klientem zajmował się Mateusz Lesiecki, polegała ona na wykonywaniu wideokonferencji z klientem oraz zespołem AportMe po ukończonym sprincie i prezentacji aktualnego stanu projektu. Klient oceniał funkcje projektu oraz ich UX. Głównym interesariuszem projektu jest TTB Poznań - fundacja zajmująca się pomocą Bulterierom. Fundacja ta jest również przyszłym klientem korzystającym z aplikacji w roli fundacji/schroniska.
- _Dawid Wietrzych_ - Frontend Podział zespołu ze względu na technologię przedstawia się następująco:
- _Wojciech Jarmosz_ - Frontend, Backend - _Dawid Wietrzych_ - Frontend
- _Mateusz Lesiecki_ - Backend, Mobile - _Wojciech Jarmosz_ - Frontend, Backend
- _Jacek Krakowski_ - Backend, Mobile - _Mateusz Lesiecki_ - Backend, Mobile
- _Jacek Krakowski_ - Backend, Mobile
- Z racji chęci ścisłej współpracy z fundacją pod kątem użyteczności funkcji w aplikacji, zdecydowaliśmy się na metodykę zwinną, opartą o kilkutygodniowe sprinty, po których następowała konsultacja z klientem.
- Jakie narzędzia wspomagające prace projektowe wykorzystuje zespół? W jaki sposób zespół zarządza kodami źródłowymi? W jaki sposób zarządza przebiegiem projektu? Czy wykorzystuje się narzędzia CI/CD? Czy stosowane narzędzia są ze sobą zintegrowane? Jeśli tak, to w jaki sposób?<br/> - Z racji chęci ścisłej współpracy z fundacją pod kątem użyteczności funkcji w aplikacji, zdecydowaliśmy się na metodykę zwinną, opartą o kilkutygodniowe sprinty, po których następowała konsultacja z klientem.
**Narzędzia:** Git, Github, Jira, Postman, Swagger, ESlint + Prettier, Husky<br/> - Jakie narzędzia wspomagające prace projektowe wykorzystuje zespół? W jaki sposób zespół zarządza kodami źródłowymi? W jaki sposób zarządza przebiegiem projektu? Czy wykorzystuje się narzędzia CI/CD? Czy stosowane narzędzia są ze sobą zintegrowane? Jeśli tak, to w jaki sposób?<br/>
**Zarządzanie kodem:** Wzajemny Code Review członków zespołu<br/> **Narzędzia:** DBeaver, Jira, Postman, Swagger, ESlint + Prettier, Husky<br/>
**Ci\CD:** Brak<br/> **Zarządzanie kodem:** Git, Github, wzajemny Code Review członków zespołu<br/>
**Czy zintegrowane:** Tak, w postaci zdalnego repozytorium, korzystanie z jego funkcji (PR,CR) **CI\CD:** Docker, GitHub Actions<br/>
- Cykl życia oprogramowania zaczyna się od dodania zadania do backlogu, programista przypisuje się do zadania, a następnie przystępuje do jego realizacji, każda nowa funkcjonalność jest tworzona na osobnym branchu na gicie. Co 3 dni odbywają się spotkania (na wzór daily) gdzie omawiamy problemy i ewentualne ich rozwiązania. Po skończeniu pracy nad funkcjonalnością, wystawiany jest pull request, a następnie przeprowadzanie Code Review. Po poprawkach w Code Review branch jest mergowany do głównego brancha - _develop_. **Czy zintegrowane:** Tak, w postaci zdalnego repozytorium, korzystanie z jego funkcji (PR,CR)
- Cykl życia oprogramowania zaczyna się od dodania zadania do backlogu, programista przypisuje się do zadania, a następnie przystępuje do jego realizacji, każda nowa funkcjonalność jest tworzona na osobnym branchu na gicie. Co 3 dni odbywają się spotkania (na wzór daily) gdzie omawiamy problemy i ewentualne ich rozwiązania. Po skończeniu pracy nad funkcjonalnością, wystawiany jest pull request, a następnie przeprowadzanie Code Review. Po poprawkach w Code Review branch jest mergowany do głównego brancha - _develop_.
## **9. Ryzyka projektowe**
## **9. Ryzyka projektowe**
Z uwagi na złożoność niektórych funkcjonalności i ograniczenia technologiczne/sprzętowe, wdrożenie ich może okazać się niemożliwe lub znacznie utrudnione, do takich elementów należą:
Z uwagi na złożoność niektórych funkcjonalności i ograniczenia technologiczne/sprzętowe, wdrożenie ich może okazać się niemożliwe lub znacznie utrudnione, do takich elementów należą:
- Obsługa datkowania fundacji - rozwiązanie aspektów prawnych i bezpieczeństwa danych.
- Obsługa lokalizacji użytkownika względem lokalizacji schroniska - Obsługa datkowania fundacji - rozwiązanie aspektów prawnych i bezpieczeństwa danych.
- Wdrożenie aplikacji mobilnej na system IOS. - Obsługa lokalizacji użytkownika względem lokalizacji schroniska
- Odpowiednie przetestowanie aplikacji pod kątem wydajności i bezpieczeństwa. - Wdrożenie aplikacji mobilnej na system IOS.
- Integracja z systemami obsługi płatności - Dotpay, Przelewy24, lub innym. - Odpowiednie przetestowanie aplikacji pod kątem wydajności i bezpieczeństwa.
- Integracja z systemami obsługi płatności - Dotpay, Przelewy24, lub innym.
## **10. Kamienie milowe**
## **10. Kamienie milowe**
#### **Listopad**
#### **Listopad**
- Stworzenie systemu do zarządzania ogłoszeniami przez fundacje.
- Stworzenie kreatora ankiet adopcyjnych. - Stworzenie systemu do zarządzania ogłoszeniami przez fundacje.
- Stworzenie końcowego szkieletu REST API. - Stworzenie kreatora ankiet adopcyjnych.
- Stworzenie końcowego szkieletu REST API.
#### **Grudzień**
#### **Grudzień**
- Usprawnienie modułu Autoryzacji
- Dodanie możliwości wypełnienia ankiety w aplikacji mobilnej. - Usprawnienie modułu Autoryzacji
- Próba deploy'u aplikacji na serwer oraz wystawienie aplikacji mobilnej w Google Play - Dodanie możliwości wypełnienia ankiety w aplikacji mobilnej.
- Próba deploy'u aplikacji na serwer oraz wystawienie aplikacji mobilnej w Google Play
#### **Styczeń**
#### **Styczeń**
- Stworzenie wszystkich ekranów w aplikacji mobilnej
- Testy i ewentualne poprawki REST API - Stworzenie wszystkich ekranów w aplikacji mobilnej
- Testy użytkowe aplikacji webowej i mobilnej - Testy i ewentualne poprawki REST API
- Testy użytkowe aplikacji webowej i mobilnej