forked from bikol/DPRI_doc_20-21
master #2
365
Przybylski/awionika/wizja_projektu.md
Normal file
365
Przybylski/awionika/wizja_projektu.md
Normal file
@ -0,0 +1,365 @@
|
|||||||
|
---
|
||||||
|
author:
|
||||||
|
- Wojciech Kubiak
|
||||||
|
- Piotr Józefowicz
|
||||||
|
- Sebastian Wawrzyn
|
||||||
|
title:
|
||||||
|
- Dokument wizji dla projektu Awionika do rakiet
|
||||||
|
---
|
||||||
|
|
||||||
|
|
||||||
|
# Executive summary
|
||||||
|
|
||||||
|
Dokument dotyczy projektu realizowanego w ramach przedmiotu projekt
|
||||||
|
inżynierski. Niniejszy dokument służy przedstawieniu przeznaczenia
|
||||||
|
tworzonego systemu, jego głównych cech i przyjętych założeń. Grupa
|
||||||
|
docelowa dla projektu jest koło naukowe na politechnice poznańskiej PUT
|
||||||
|
RocketLab, zajmujące się budowa rakiet i silników rakietowych. Potrzebny
|
||||||
|
jest komputer pokładowy do rakiety oraz aplikacje ułatwiające obsługę
|
||||||
|
testów rakiet i silników. Nasz projekt ma dostarczyć:Dokument dotyczy
|
||||||
|
projektu realizowanego w ramach przedmiotu projekt inżynierski.
|
||||||
|
Niniejszy dokument służy przedstawieniu przeznaczenia tworzonego
|
||||||
|
systemu, jego głównych cech i przyjętych założeń. Grupa docelowa dla
|
||||||
|
projektu jest koło naukowe na politechnice poznańskiej PUT RocketLab,
|
||||||
|
zajmujące się budowa rakiet i silników rakietowych. Potrzebny jest
|
||||||
|
komputer pokładowy do rakiety oraz aplikacje ułatwiające obsługę testów
|
||||||
|
rakiet i silników. Nasz projekt ma dostarczyć:
|
||||||
|
|
||||||
|
- Aplikację desktopową pozwalająca wyświetlać dane na żywo z testów,
|
||||||
|
konfigurować ustawienia modułów komputera pokładowego oraz
|
||||||
|
zapisywać/usuwać dane z pamięci podręcznej modułów.
|
||||||
|
|
||||||
|
- Komputer pokładowy posiadający układ wyzwolenie separacji oraz
|
||||||
|
zbierający dane telemetryczne o locie, które będą mogły być
|
||||||
|
przekazywane na żywo do aplikacji poprzez nadajnik i odbiornik.
|
||||||
|
|
||||||
|
- Aplikację webową służącą jako baza danych testów oraz odgrywającą
|
||||||
|
rolę wizytówki koła
|
||||||
|
|
||||||
|
# Cel i grupa docelowa
|
||||||
|
|
||||||
|
Grupą docelową dla projektu jest koło naukowe na Politechnice
|
||||||
|
Poznańskiej PUT RocketLab. Koło zajmuje się budową rakiet i silników
|
||||||
|
rakietowych oraz rozwija systemy awioniczne i naziemne do ich
|
||||||
|
testowania. Potrzebny jest komputer pokładowy do rakiety, który będzie
|
||||||
|
odpowiadał za jej lot, zapisywanie danych z tego lotu, oraz lokalizację
|
||||||
|
rakiety po jej wylądowaniu. Potrzebna jest również aplikacja, która
|
||||||
|
będzie pełniła funkcję kontrolera lotów/testów. Takie testy generują
|
||||||
|
dużą liczbę danych, które ciężko uporządkować więc potrzebne jest też
|
||||||
|
miejsce, w którym będzie można je porządkować i wyświetlać w przejrzysty
|
||||||
|
sposób. Koło nie posiada też strony internetowej-tak zwanej wizytówki,
|
||||||
|
która ma budować rozpoznawalność w internecie i pomóc w kontakcie
|
||||||
|
przyszłym kandydatom na członków koła.\
|
||||||
|
Projekt oprócz komputera pokładowego będzie się składał z dwóch
|
||||||
|
aplikacji -- aplikacji webowej oraz aplikacji desktopowej. Aplikacja
|
||||||
|
desktopowa ma odgrywać rolę kontrolera testów. To, że aplikacja jest
|
||||||
|
desktopowa, wynika z faktu, że testy zazwyczaj wykonywane są w miejscach
|
||||||
|
bez dostępu do internetu. Aplikacja webowa będzie pełniła funkcję
|
||||||
|
wizytówki oraz bazy danych testów. Członkowie koła będą posiadali login
|
||||||
|
i hasło do aplikacji, gdzie będą katalogowane dane historyczne z testów.
|
||||||
|
Dane będzie można eksportować w wygodnym formacie, a także wyświetlać w
|
||||||
|
formie wykresów i tabelek z danymi. Strona będzie miała możliwość
|
||||||
|
wprowadzenia danych ręcznie, jednak preferowaną opcją będzie dodawanie
|
||||||
|
danych przez aplikację desktopowa, która to zrobi w sposób
|
||||||
|
zautomatyzowany. Aplikacja desktopowa będzie umożliwiała wyświetlanie
|
||||||
|
danych z testów rakiet oraz silników na żywo. Po teście dane będą
|
||||||
|
przekazywane do aplikacji webowej, jeśli będzie dostęp do internetu.
|
||||||
|
Jeśli nie będzie dostępu, to dane zostaną zapisane w pamięci komputera i
|
||||||
|
przekazane od razu po podłączeniu komputera do Internetu. Aplikacja
|
||||||
|
desktopowa ma również dać możliwość konfiguracji modułów elektroniki
|
||||||
|
komputera pokładowego rakiety oraz odczytywania i zapisywania z nich
|
||||||
|
danych. Pobrane dane będą od razu przekazywane do chmury tak jak w
|
||||||
|
przypadku testu na żywo. Będzie również możliwa zmiana konfiguracji tych
|
||||||
|
modułów-zmiany ustawień parametrów programu na danym module (np. ilość
|
||||||
|
bitów na sekundę podczas wysyła danych, częstotliwość, moc anteny), są
|
||||||
|
to parametry, które muszą być zmieniane podczas czasu życia modułu. Ta
|
||||||
|
funkcjonalność ma na celu zapewnić większe bezpieczeństwo podczas zmiany
|
||||||
|
tych parametrów. Parametry nie będą zmieniane poprzez wgranie nowego
|
||||||
|
kodu tylko przez aplikacje, dzięki temu na samym urządzeniu nie trzeba
|
||||||
|
będzie zmieniać kodu źródłowego.\
|
||||||
|
Klientowi zależy na tym, aby pozyskać z rakiety dane, które pozwolą
|
||||||
|
sprawdzić, czy rakieta osiągnęła oczekiwane parametry lotu zgodne z
|
||||||
|
wcześniejszą symulacją takie jak apogeum, prędkość, liczba macha czy
|
||||||
|
przyspieszenie. W tym celu muszą dokonać pomiarów fizycznych za pomocą
|
||||||
|
odpowiednich czujników takich jak akcelerometr, barometr, magnetometr
|
||||||
|
czy żyroskop, a następnie zapisać te dane i wyświetlić je w czytelnej
|
||||||
|
formie w celu ich analizy. Komputer pokładowy będzie umożliwiał zebranie
|
||||||
|
powyższych danych, a także wyzwolenie separacji/spadochronu w dwóch
|
||||||
|
różnych konfiguracjach: poprzez automatyczne wykrycie spadku swobodnego
|
||||||
|
oraz poprzez użycie timera (ustawienie odpowiedniego opóźnienia, po
|
||||||
|
którym zostanie wyzwolona separacja/spadochron). Rakieta będzie też
|
||||||
|
wyposażona w lokalizator, który będzie umożliwiał odnalezienie rakiety
|
||||||
|
po lokalizacji GPS wysłanej za pomocą komunikacji bezprzewodowej LORA.
|
||||||
|
|
||||||
|
# Rynek
|
||||||
|
|
||||||
|
Wyposażenie pokładowe rakiety (awionika) składa się głównie z dwóch
|
||||||
|
części: komputera pokładowego i lokalizatora. Komputery pokładowe
|
||||||
|
znajdujące się na rynku mają wysoką cenę i większość z nich, nie
|
||||||
|
oferuje, aplikacji do zbierania danych, przez co robi się z nimi bałagan
|
||||||
|
i trzeba dbać samemu o to, by te dane katalogować. Gotowe lokalizatory,
|
||||||
|
mimo że zaawansowane również są bardzo drogie.
|
||||||
|
|
||||||
|
## Przykłady produktów na rynku:
|
||||||
|
|
||||||
|
- Dużym zainteresowaniem na świecie cieszą się amerykańskie
|
||||||
|
[EggTimery](http://eggtimerrocketry.com/home/altimeters-av-bay/).
|
||||||
|
Posiadają one wiele różnych konfiguracji komputerów oraz
|
||||||
|
lokalizatorów. Mają jednak one dość wysokie ceny modułów i nie
|
||||||
|
oferują zintegrowanej aplikacji, która umożliwiałaby analizę danych,
|
||||||
|
musimy korzystać z osobnych programów.
|
||||||
|
|
||||||
|
- Dostępne są [niemieckie komputery
|
||||||
|
pokładowe](https://www.rocketronics.de/shop/de/altimax-g3-standard.html?fbclid=IwAR2Btg-xkFvGJoPM6sU9-zkdCB5SZMVawdttTxnr6m8iG2iS46GtkmWs8Fc)
|
||||||
|
firmy Rocketronics oferujące wysoką jakość danych oraz dokładną
|
||||||
|
separację. Ich aplikacja nie umożliwia podglądu danych na żywo. Nie
|
||||||
|
ma w nich lokalizatorów i mają wysoką cenę.
|
||||||
|
|
||||||
|
- [Lokalizator
|
||||||
|
Featherweight](https://www.featherweightaltimeters.com/featherweight-gps-tracker.html)
|
||||||
|
(koszt to 610-2000 zł) - wysoka cena, zawiera aplikację, ale do tego
|
||||||
|
potrzebny jest jeszcze komputer pokładowy.
|
||||||
|
|
||||||
|
- Jeden z najtańszych i najpopularniejszych sposobów (przynajmniej w
|
||||||
|
Polsce) na lokalizację rakiety polega na używaniu taniego
|
||||||
|
[lokalizatora](https://abc-rc.pl/product-pol-7625-Lokalizator-GPS-TK102B-Tracker-GPS-Sledzenie-w-WWW.html),
|
||||||
|
który wysyła podstawowe dane telemetryczne dzięki modułowi GPS i
|
||||||
|
GSM. Nie są to jednak produkty przeznaczone konkretnie do rakiet i
|
||||||
|
nie mogą zostać zintegrowane z komputerem pokładowym.
|
||||||
|
|
||||||
|
- Nowością jest komputer pokładowy
|
||||||
|
[Signal-R2](https://bps.space/shop/signal-r2) z aplikacją na telefon
|
||||||
|
(koszt to ok 1400 zł). Aplikacja dostępna na platformy android oraz
|
||||||
|
iOS jest zintegrowana z komputerem pokładowym. Cały system
|
||||||
|
komunikacji jest oparty na Bluetooth, co daje zasięg 10 metrów,
|
||||||
|
dlatego nie można używać aplikacji do odczytów danych na żywo
|
||||||
|
podczas lotu. Aby uzyskać szerszy dostęp do dokumentacji, kodów
|
||||||
|
źródłowych i informacji na temat projektu trzeba dodatkowo
|
||||||
|
miesięczne płacić za subskrypcje na specjalnej platformie Patronite.
|
||||||
|
|
||||||
|
# Opis produkt
|
||||||
|
|
||||||
|
## Aplikacja webowa:
|
||||||
|
|
||||||
|
- wizytówka koła
|
||||||
|
|
||||||
|
- możliwością wgrania avatara
|
||||||
|
|
||||||
|
- dane z testów będzie można zapisywać na serwerze w celu stworzenia
|
||||||
|
historii testów
|
||||||
|
|
||||||
|
- eksport danych GPS w formacie NMEA
|
||||||
|
|
||||||
|
- eksport danych telemetrycznych do Excel'a
|
||||||
|
|
||||||
|
- import danych pomiarowych z pliku
|
||||||
|
|
||||||
|
- wyświetlenie danych historycznych (z testów)
|
||||||
|
|
||||||
|
- wyszukiwanie testu po nazwie i dacie
|
||||||
|
|
||||||
|
- kategoryzacja danych telemetrycznych (historia testów) przypisana do
|
||||||
|
testu
|
||||||
|
|
||||||
|
## Aplikacja desktopowa:
|
||||||
|
|
||||||
|
- pomiary z rakiety obrazowane na żywo:
|
||||||
|
|
||||||
|
- wykres prędkości od czasu,
|
||||||
|
|
||||||
|
- wykres przyspieszenia od czasu,
|
||||||
|
|
||||||
|
- wykresy orientacji XYZ,
|
||||||
|
|
||||||
|
- wykres wysokości i wychylenia w osiach XYZ od czasu,
|
||||||
|
|
||||||
|
- wyświetlenie lokalizacji GPS na mapie (Google Maps)
|
||||||
|
|
||||||
|
- obrazowane danych z hamowni na żywo
|
||||||
|
|
||||||
|
- wykres ciągu do czasu
|
||||||
|
|
||||||
|
- wykres ciśnienia do czasu
|
||||||
|
|
||||||
|
- dane po teście rakiety czy silnika będą zapisywane na serwerze
|
||||||
|
|
||||||
|
- zgrywania/usuwanie danych z modułów elektronicznych
|
||||||
|
|
||||||
|
- zmiana konfiguracji modułów elektronicznych
|
||||||
|
|
||||||
|
## Elektronika:
|
||||||
|
|
||||||
|
- dokonywanie pomiarów podczas lotu (prędkość, przyspieszenie,
|
||||||
|
wysokość, wychylenia w osiach XYZ)
|
||||||
|
|
||||||
|
- lokalizacja GPS oraz pomiary wysyłane do stacji naziemnej za
|
||||||
|
pośrednictwem komunikacji bezprzewodowej LORA
|
||||||
|
|
||||||
|
- wykrycie apogeum (spadku swobodnego) pozwalające wyzwolić
|
||||||
|
separacje/spadochron
|
||||||
|
|
||||||
|
- timer pozwalający wyzwolić separacje/spadochron
|
||||||
|
|
||||||
|
- wyzwolenie separacji, spadochronu poprzez odpalenie zapalnika
|
||||||
|
elektrycznego
|
||||||
|
|
||||||
|
- przesyłanie danych do stacji naziemnej przez moduł komunikacyjny
|
||||||
|
|
||||||
|
- odbieranie danych przez odbiornik
|
||||||
|
|
||||||
|
- przekazywanie danych do aplikacji desktopowej
|
||||||
|
|
||||||
|
- zapisywania danych do pamięci modułu
|
||||||
|
|
||||||
|
- odczytywanie danych z pamięci modułu
|
||||||
|
|
||||||
|
- zmiana konfiguracji modułu
|
||||||
|
|
||||||
|
# Zakres i ograniczenia
|
||||||
|
|
||||||
|
## Skład zespołu:
|
||||||
|
|
||||||
|
- Wojciech Kubiak - systemy wbudowane - arduino, c++, python
|
||||||
|
|
||||||
|
- Sebastian Wawrzyn - backend - .NET Core, C#, Docker, baza
|
||||||
|
danych
|
||||||
|
|
||||||
|
- Piotr Józefowicz - frontend - Vue.js, typescript
|
||||||
|
|
||||||
|
## Kamienie milowe:
|
||||||
|
|
||||||
|
- I faza, I semestr (02.2020 - 07.2020):
|
||||||
|
|
||||||
|
- Przygotowanie prototypu aplikacji
|
||||||
|
|
||||||
|
- Przygotowanie backlogu dla projektu w systemie Trello,
|
||||||
|
opracowanie funkcjonalności, user stories
|
||||||
|
|
||||||
|
- Rozpoczęcie prac programistycznych nad aplikacją
|
||||||
|
|
||||||
|
- Rozpoczęcie prac programistycznych nad komputerem pokładowym 1.0
|
||||||
|
|
||||||
|
- Testowanie komputera pokładowego
|
||||||
|
|
||||||
|
- Ukończenie MVP aplikacji i komputera pokładowego
|
||||||
|
|
||||||
|
- Poddanie MVP testom funkcjonalnym
|
||||||
|
|
||||||
|
- II faza, II semestr(10.2020 - 12.2020):
|
||||||
|
|
||||||
|
- Uaktualnienie dekumentacji i Trello
|
||||||
|
|
||||||
|
- Rozpoczęcie prac programistycznych nad aplikacjami
|
||||||
|
|
||||||
|
- Kontynuacje prac programistycznych nad komputerem pokładowym
|
||||||
|
oraz rozpoczęcie prac nad nadajnikiem i odbiornikiem
|
||||||
|
|
||||||
|
- Testowanie komputera pokładowego oraz elektroniki naziemnej
|
||||||
|
|
||||||
|
- Ukończenie aplikacji wraz ze wszystkimi zdefiniowanymi
|
||||||
|
funkcjonalnościami
|
||||||
|
|
||||||
|
- Integracja aplikacji z elektroniką
|
||||||
|
|
||||||
|
- Testy integracyjne
|
||||||
|
|
||||||
|
- Wdrożenie aplikacji na publiczną domenę
|
||||||
|
|
||||||
|
## Harmonogram:
|
||||||
|
|
||||||
|
MVP produktu zostanie wypracowane i przedstawione do końca czerwca 2020
|
||||||
|
roku, zawierać będzie funkcjonalności takie jak:
|
||||||
|
|
||||||
|
- Komputer pokładowy 1.0:
|
||||||
|
|
||||||
|
- Dokonywanie pomiarów telemetrycznych
|
||||||
|
|
||||||
|
- Zapis danych na kartę SD
|
||||||
|
|
||||||
|
- Wyzwolenie separacji za pomocą timera
|
||||||
|
|
||||||
|
- Odpalenie zapalnika elektrycznego
|
||||||
|
|
||||||
|
- Aplikacja internetowa (frontend):
|
||||||
|
|
||||||
|
- Stworzenie konta użytkownika, logowanie
|
||||||
|
|
||||||
|
- Dodawanie testów z pliku
|
||||||
|
|
||||||
|
- Wyświetlanie danych z testów
|
||||||
|
|
||||||
|
- Przegląd danych historycznych
|
||||||
|
|
||||||
|
- Zintegrowania aplikacji webowej z REST API
|
||||||
|
|
||||||
|
- Aplikacja serwerowa, REST API:
|
||||||
|
|
||||||
|
- Dodanie serwisów REST pozwalających na operacje wymienione w
|
||||||
|
punkcie "Aplikacja internetowa"
|
||||||
|
|
||||||
|
- Zintegrowania API z bazą danych
|
||||||
|
|
||||||
|
- Wdrożenie aplikacji na środowisko testowe
|
||||||
|
|
||||||
|
Pierwsza wersja produktu wypracowana i oddana do grudnia 2020 roku,
|
||||||
|
obejmować będzie:
|
||||||
|
|
||||||
|
- Wszystkie funkcjonalności zdefiniowane w MVP
|
||||||
|
|
||||||
|
- Komputer pokładowy 2.0:
|
||||||
|
|
||||||
|
- Układ wyzwolenia separacji
|
||||||
|
|
||||||
|
- Komunikacja z nadajnikiem
|
||||||
|
|
||||||
|
- Konfiguracja modułu
|
||||||
|
|
||||||
|
- Nadajnik/Lokalizator:
|
||||||
|
|
||||||
|
- Lokalizacja GPS oraz redundantny system prędkości wysokości
|
||||||
|
przyspieszenia
|
||||||
|
|
||||||
|
- Komunikacja bezprzewodowa LORA
|
||||||
|
|
||||||
|
- Konfiguracja modułu
|
||||||
|
|
||||||
|
- Elektronika naziemna/Odbiornik:
|
||||||
|
|
||||||
|
- Odbieranie danych od komputera pokładowego (LORA)
|
||||||
|
|
||||||
|
- Przekazywanie danych do serwera za pomocą REST API
|
||||||
|
|
||||||
|
- Przekazywanie danych do kolejnych urządzeń za pomocą Seriala
|
||||||
|
|
||||||
|
- Przekazywanie danych do kolejnych urządzeń za pomocą Bluetooth
|
||||||
|
|
||||||
|
- Aplikacja internetowa (frontend):
|
||||||
|
|
||||||
|
- Wyświetlanie i gromadzenie danych historycznych testów
|
||||||
|
|
||||||
|
- Profil użytkownika
|
||||||
|
|
||||||
|
- Aplikacja desktopowa:
|
||||||
|
|
||||||
|
- Wyświetlanie danych z testów live (wykresy)
|
||||||
|
|
||||||
|
- Wyświetlanie lokalizacji za pośrednictwem Google Maps
|
||||||
|
|
||||||
|
- Konfigurowanie płytki
|
||||||
|
|
||||||
|
- Odczyt danych z płytki
|
||||||
|
|
||||||
|
- Usuwanie danych z płytki
|
||||||
|
|
||||||
|
- Aplikacja serwerowa, REST API:
|
||||||
|
|
||||||
|
- Dodanie serwisów REST pozwalających na operacje wymienione w
|
||||||
|
punkcie "Aplikacja internetowa"
|
||||||
|
|
||||||
|
- Dodanie serwisów REST pozwalających na operacje wymienione w
|
||||||
|
punkcie "Aplikacja desktopowa"
|
||||||
|
|
||||||
|
- Wdrożenie aplikacji na środowisko produkcyjne
|
||||||
|
|
||||||
|
Ograniczeniem projektu jest hosting, nie wiadomo czy politechnika
|
||||||
|
udostępni nam domenę oraz otworzy porty na zewnątrz.
|
499
Przybylski/awionika/wymagania_projektowe.md
Normal file
499
Przybylski/awionika/wymagania_projektowe.md
Normal file
@ -0,0 +1,499 @@
|
|||||||
|
---
|
||||||
|
author:
|
||||||
|
- Wojciech Kubiak
|
||||||
|
- Piotr Józefowicz
|
||||||
|
- Sebastian Wawrzyn
|
||||||
|
title:
|
||||||
|
- Dokument wymagań projektowych
|
||||||
|
---
|
||||||
|
|
||||||
|
# Elementy składowe projektu (produkty projektu)
|
||||||
|
|
||||||
|
## Semestr I
|
||||||
|
|
||||||
|
- Aplikacja webowa
|
||||||
|
|
||||||
|
- Komputer pokładowy (MVP)
|
||||||
|
|
||||||
|
- Aplikacja serwerowa - REST API (WEB)
|
||||||
|
|
||||||
|
- Relacyjna baza danych
|
||||||
|
|
||||||
|
- Prototyp interfejsu użytkownika aplikacji webowej
|
||||||
|
|
||||||
|
- Repozytorium git zawierające kod aplikacji, API, elektroniki
|
||||||
|
|
||||||
|
- Tablica projektowa -- Trello
|
||||||
|
|
||||||
|
## Semestr II
|
||||||
|
|
||||||
|
- Komputer pokładowy
|
||||||
|
|
||||||
|
- Nadajnik
|
||||||
|
|
||||||
|
- Odbiornik
|
||||||
|
|
||||||
|
- Wizytówka
|
||||||
|
|
||||||
|
- Aplikacja webowa
|
||||||
|
|
||||||
|
- Aplikacja desktopowa
|
||||||
|
|
||||||
|
- Aplikacja serwerowa lokalna
|
||||||
|
|
||||||
|
- Baza danych NoSql
|
||||||
|
|
||||||
|
- Repozytorium git zawierające kod aplikacji, API, elektroniki
|
||||||
|
|
||||||
|
- Tablica projektowa -- Trello
|
||||||
|
|
||||||
|
# Granice projektu
|
||||||
|
|
||||||
|
- Produkty zawarte:
|
||||||
|
|
||||||
|
- 1\. Wyszczególnione produkty projektu
|
||||||
|
|
||||||
|
- Funkcjonalności nie zawarte:
|
||||||
|
|
||||||
|
- Integracja z systemem APRS, wiele urządzeń lokalizacyjnych ma tę
|
||||||
|
funkcję, jednak zaimplementowanie jej jest zbyt czasochłonne.
|
||||||
|
|
||||||
|
- Integracja z innymi komputerami pokładowymi, format danych różni
|
||||||
|
się w zależności od komputera.
|
||||||
|
|
||||||
|
# Lista wymagań funkcjonalnych
|
||||||
|
|
||||||
|
## Komputer pokładowy:
|
||||||
|
|
||||||
|
- Dokonywanie pomiarów telemetrycznych (barometr, żyroskop,
|
||||||
|
akcelerometr)
|
||||||
|
|
||||||
|
- Zapis danych na flash (format tekstowy)
|
||||||
|
|
||||||
|
- Wyzwolenie separacji za pomocą timera
|
||||||
|
|
||||||
|
- Odpalenie zapalnika elektrycznego
|
||||||
|
|
||||||
|
- Automatyczne wyzwolenie separacji za pomocą barometru
|
||||||
|
|
||||||
|
- Konfiguracja/kontrola modułu:
|
||||||
|
|
||||||
|
- zmiana parametrów uruchomieniowych
|
||||||
|
|
||||||
|
- odczyt danych z flash
|
||||||
|
|
||||||
|
## Nadajnik/Lokalizator
|
||||||
|
|
||||||
|
- Lokalizacja GPS oraz redundantny system prędkości wysokości
|
||||||
|
przyspieszenia
|
||||||
|
|
||||||
|
- Komunikacja bezprzewodowa LORA (połączenie jednokierunkowe)
|
||||||
|
|
||||||
|
- Konfiguracja/kontrola modułu:
|
||||||
|
|
||||||
|
- zmiana parametrów uruchomieniowych
|
||||||
|
|
||||||
|
- odczyt danych z flash
|
||||||
|
|
||||||
|
## Aplikacja internetowa
|
||||||
|
|
||||||
|
- Logowanie za pomocą Auth0
|
||||||
|
|
||||||
|
- Wizytówka koła:
|
||||||
|
|
||||||
|
- informacje o kole
|
||||||
|
|
||||||
|
- formularz kontaktowy
|
||||||
|
|
||||||
|
- prezentacja projektów koła
|
||||||
|
|
||||||
|
- Zarządzanie użytkownikami na koncie administratora:
|
||||||
|
|
||||||
|
- dodawanie i usuwanie użytkowników
|
||||||
|
|
||||||
|
- zmiana danych użytkownika
|
||||||
|
|
||||||
|
- nadawanie i odbieranie uprawnień użytkownikom
|
||||||
|
|
||||||
|
- Dodawanie pomiarów z pliku (json, csv)
|
||||||
|
|
||||||
|
- Wyświetlanie danych z testów (wykresy)
|
||||||
|
|
||||||
|
- Przegląd danych historycznych
|
||||||
|
|
||||||
|
- Zintegrowania aplikacji webowej z REST API
|
||||||
|
|
||||||
|
- Profil użytkownika, możliwość zmiany nazwy użytkownika, imienia,
|
||||||
|
nazwiska, emaila, hasła
|
||||||
|
|
||||||
|
## Aplikacja desktopowa:
|
||||||
|
|
||||||
|
- Wyświetlanie danych z testów live (wykresy)
|
||||||
|
|
||||||
|
- Wyświetlanie lokalizacji za pośrednictwem Google Maps
|
||||||
|
|
||||||
|
- Wyświetlenie informacji tekstowych z komputera pokładowego
|
||||||
|
|
||||||
|
- Konfigurowanie modułów elektronicznych
|
||||||
|
|
||||||
|
- Odczyt/Zapis danych z modułów elektronicznych
|
||||||
|
|
||||||
|
- Wysyłanie testów na serwer
|
||||||
|
|
||||||
|
- Zapis pomiarów w plikach json
|
||||||
|
|
||||||
|
## Aplikacja serwerowa, REST API:
|
||||||
|
|
||||||
|
- Dodanie serwisów REST pozwalających na operacje wymienione w punkcie
|
||||||
|
"Aplikacja internetowa"
|
||||||
|
|
||||||
|
- Dodanie serwisów REST pozwalających na operacje wymienione w punkcie
|
||||||
|
"Aplikacja desktopowa"
|
||||||
|
|
||||||
|
- Zintegrowania API z bazą danych
|
||||||
|
|
||||||
|
- Wdrożenie aplikacji na środowisko testowe
|
||||||
|
|
||||||
|
- Wdrożenie aplikacji na środowisko produkcyjne
|
||||||
|
|
||||||
|
## Elektronika naziemna (odbiornik):
|
||||||
|
|
||||||
|
- Odbieranie danych od komputera pokładowego (LORA)
|
||||||
|
|
||||||
|
- Przekazywanie danych do serwera za pomocą REST API
|
||||||
|
|
||||||
|
- Przekazywanie danych do kolejnych urządzeń za pomocą Seriala
|
||||||
|
|
||||||
|
- Przekazywanie danych do kolejnych urządzeń za pomocą Bluetooth
|
||||||
|
|
||||||
|
- Konfiguracja/kontrola modułu:
|
||||||
|
|
||||||
|
- zmiana parametrów uruchomieniowych
|
||||||
|
|
||||||
|
# Lista wymagań niefunkcjonalnych
|
||||||
|
|
||||||
|
## Komputer pokładowy:
|
||||||
|
|
||||||
|
- Bezpieczny w użyciu
|
||||||
|
|
||||||
|
- Prosty w użyciu
|
||||||
|
|
||||||
|
- Niezawodny
|
||||||
|
|
||||||
|
- Dokładny
|
||||||
|
|
||||||
|
- Z czytelnym, przejrzystym kodem
|
||||||
|
|
||||||
|
- Technologie:
|
||||||
|
|
||||||
|
- Arduino
|
||||||
|
|
||||||
|
- C++
|
||||||
|
|
||||||
|
- FreeRTOS
|
||||||
|
|
||||||
|
## Nadajnik/Lokalizator
|
||||||
|
|
||||||
|
- Bezpieczna w użyciu
|
||||||
|
|
||||||
|
- Prosta w użyciu
|
||||||
|
|
||||||
|
- Niezawodny
|
||||||
|
|
||||||
|
- Dokładny
|
||||||
|
|
||||||
|
- Z czytelnym, przejrzystym kodem
|
||||||
|
|
||||||
|
- Technologie:
|
||||||
|
|
||||||
|
- Arduino
|
||||||
|
|
||||||
|
- C++
|
||||||
|
|
||||||
|
- FreeRTOS
|
||||||
|
|
||||||
|
## Elektronika naziemna (odbiornik):
|
||||||
|
|
||||||
|
- Bezpieczna w użyciu
|
||||||
|
|
||||||
|
- Prosta w użyciu
|
||||||
|
|
||||||
|
- Niezawodny
|
||||||
|
|
||||||
|
- Ładnie obudowana
|
||||||
|
|
||||||
|
- Z czytelnym, przejrzystym kodem
|
||||||
|
|
||||||
|
- Zintegrowana z REST API - wysyła dane telemetryczne
|
||||||
|
|
||||||
|
- Technologie:
|
||||||
|
|
||||||
|
- Arduino
|
||||||
|
|
||||||
|
- C++
|
||||||
|
|
||||||
|
## Aplikacja internetowa (frontend):
|
||||||
|
|
||||||
|
- Wytworzona z użyciem nowoczesnych standardów
|
||||||
|
|
||||||
|
- Single Page Application
|
||||||
|
|
||||||
|
- Responsywna
|
||||||
|
|
||||||
|
- Intuicyjna w obsłudze
|
||||||
|
|
||||||
|
- Technologie:
|
||||||
|
|
||||||
|
- Vue.js
|
||||||
|
|
||||||
|
- Typescript
|
||||||
|
|
||||||
|
## Aplikacja desktopowa:
|
||||||
|
|
||||||
|
- Wytworzona z użyciem nowoczesnych standardów
|
||||||
|
|
||||||
|
- Single Page Application
|
||||||
|
|
||||||
|
- Responsywna
|
||||||
|
|
||||||
|
- Intuicyjna w obsłudze
|
||||||
|
|
||||||
|
- Zaprojektowana według najnowszych standardów .NET
|
||||||
|
|
||||||
|
- Używa nowych technologii i podejść programistycznych
|
||||||
|
|
||||||
|
- Z czytelnym i przejrzystym kodem
|
||||||
|
|
||||||
|
- Szybka obsługa zapytań
|
||||||
|
|
||||||
|
- Zintegrowana z elektroniką naziemną oraz pozostałymi modułami
|
||||||
|
|
||||||
|
- Technologie:
|
||||||
|
|
||||||
|
- Vue.js
|
||||||
|
|
||||||
|
- Electron
|
||||||
|
|
||||||
|
- Typescript
|
||||||
|
|
||||||
|
- .NET Core
|
||||||
|
|
||||||
|
- C#
|
||||||
|
|
||||||
|
## Aplikacja serwerowa - REST API:
|
||||||
|
|
||||||
|
- Używa bazy danych NoSql
|
||||||
|
|
||||||
|
- Zaprojektowana według najnowszych standardów .NET
|
||||||
|
|
||||||
|
- Używa nowych technologii i podejść programistycznych
|
||||||
|
|
||||||
|
- Z czytelnym i przejrzystym kodem
|
||||||
|
|
||||||
|
- Szybka obsługa zapytań
|
||||||
|
|
||||||
|
- Technologie:
|
||||||
|
|
||||||
|
- .Net Core
|
||||||
|
|
||||||
|
- Docker
|
||||||
|
|
||||||
|
## Baza danych:
|
||||||
|
|
||||||
|
- Technologie:
|
||||||
|
|
||||||
|
- NoSql
|
||||||
|
|
||||||
|
## Prototyp aplikacji internetowej przetestowany przez użytkowników:
|
||||||
|
|
||||||
|
- Technologie:
|
||||||
|
|
||||||
|
- Adobe XD
|
||||||
|
|
||||||
|
## Tablica projektowa - Trello:
|
||||||
|
|
||||||
|
- Historia wymagań funkcjonalnych (User stories)
|
||||||
|
|
||||||
|
- Historia prac zdefiniowana zadaniami
|
||||||
|
|
||||||
|
- Lista wymagań funkcjonalnych zaplanowanych na przyszłość
|
||||||
|
|
||||||
|
- Lista zadań zaplanowanych na przyszłość
|
||||||
|
|
||||||
|
## Repozytorium zawierające kod aplikacji, API oraz elektroniki
|
||||||
|
|
||||||
|
- Technologie:
|
||||||
|
|
||||||
|
- GitHub
|
||||||
|
|
||||||
|
# Mierzalne wskaźniki wdrożeniowe
|
||||||
|
|
||||||
|
## Semestr I
|
||||||
|
|
||||||
|
- System zostanie przekazany w wersji testowej alpha.
|
||||||
|
|
||||||
|
- System zostanie zasilony danymi z symulacji lotu rakiet oraz danymi
|
||||||
|
historycznymi testów silników
|
||||||
|
|
||||||
|
## Semestr II
|
||||||
|
|
||||||
|
- System zostanie udostępniony w domenie internetowej i będą z niego
|
||||||
|
korzystać członkowie koła (około 20 osób)
|
||||||
|
|
||||||
|
- Wizytówka koła będzie oglądana przez ludzi chcących się dowiedzieć
|
||||||
|
czegoś o kole.
|
||||||
|
|
||||||
|
- System zostanie zasilony danymi z testów silników oraz rakiet.
|
||||||
|
|
||||||
|
- Przekazanie plików instalacyjnych do aplikacji desktopowej
|
||||||
|
|
||||||
|
- Na koniec drugiego semestru klient otrzyma system w wersji testowej
|
||||||
|
beta.
|
||||||
|
|
||||||
|
# Kryteria akceptacji projektu dla I semestru prac
|
||||||
|
|
||||||
|
## Wymagane
|
||||||
|
|
||||||
|
- Ukończenie zdefiniowanych funkcjonalności z listy wymagań
|
||||||
|
funkcjonalnych na drugi semestr
|
||||||
|
|
||||||
|
- Brak błędów utrudniających korzystanie z aplikacji
|
||||||
|
|
||||||
|
- Czy produkt został oddany w czasie
|
||||||
|
|
||||||
|
## Oczekiwane
|
||||||
|
|
||||||
|
- Wykonanie produktu zgodnie z ustalonymi wymaganiami odnośnie
|
||||||
|
technologii
|
||||||
|
|
||||||
|
## Planowane
|
||||||
|
|
||||||
|
- Zawieranie testów jednostkowych, integracyjnych, oraz czy spełniają
|
||||||
|
swoje zadanie
|
||||||
|
|
||||||
|
# Kryteria akceptacji projektu dla II semestru prac
|
||||||
|
|
||||||
|
## Wymagane
|
||||||
|
|
||||||
|
- Ukończenie zdefiniowanych funkcjonalności z listy wymagań
|
||||||
|
funkcjonalnych na drugi semestr, przetestowanie aplikacji pod kątem
|
||||||
|
użytkowym przez testerów (klientów końcowych)
|
||||||
|
|
||||||
|
- Brak błędów utrudniających korzystanie z aplikacji
|
||||||
|
|
||||||
|
- Czy produkt został oddany w czasie
|
||||||
|
|
||||||
|
## Oczekiwane
|
||||||
|
|
||||||
|
- Wykonanie produktu zgodnie z ustalonymi wymaganiami odnośnie
|
||||||
|
technologii
|
||||||
|
|
||||||
|
## Planowane
|
||||||
|
|
||||||
|
- Zawieranie testów jednostkowych, integracyjnych, oraz czy spełniają
|
||||||
|
swoje zadanie
|
||||||
|
|
||||||
|
# Organizacja pracy zespołu
|
||||||
|
|
||||||
|
Strona zespołu projektowego:
|
||||||
|
|
||||||
|
- Wojciech Kubiak - Product Owner
|
||||||
|
|
||||||
|
- Implementacja systemów wbudowanych
|
||||||
|
|
||||||
|
- Zarządzanie dokumentacją
|
||||||
|
|
||||||
|
- Komunikacja z klientem - czynny udział w kole
|
||||||
|
|
||||||
|
- Piotr Józefowicz - Scrum Master
|
||||||
|
|
||||||
|
- Implementacja frontendu
|
||||||
|
|
||||||
|
- Projektowanie prototypu interfejsu użytkownika
|
||||||
|
|
||||||
|
- Sebastian Wawrzyn
|
||||||
|
|
||||||
|
- Implementacja backendu aplikacji
|
||||||
|
|
||||||
|
- Stworzenie bazy danych na potrzeby aplikacji API
|
||||||
|
|
||||||
|
Praca jest wykonywana w metodyce SCRUM w tygodniowych sprintach. Kod
|
||||||
|
źródłowy trzymany jest na repozytorium na Githubie. Do podziału pracy i
|
||||||
|
śledzenia progresu używamy aplikacji Trello
|
||||||
|
|
||||||
|
# Ryzyka projektowe
|
||||||
|
|
||||||
|
## Ryzyka ze względu na zasoby:
|
||||||
|
|
||||||
|
- Odejście członka implementującego stronę serwerową - trudności w
|
||||||
|
ukończeniu aplikacji serwerowej
|
||||||
|
|
||||||
|
- Odejście członka implementującego stronę frontendową - trudności w
|
||||||
|
ukończeniu aplikacji
|
||||||
|
|
||||||
|
- Odejście członka implementującego systemy wbudowane - trudności w
|
||||||
|
ukończeniu aplikacji
|
||||||
|
|
||||||
|
- Określone ramy czasowe (semestry) na stworzenie produktu
|
||||||
|
|
||||||
|
## Inne:
|
||||||
|
|
||||||
|
- Nieporozumienia na linii zespół a klient wynikające z nieznajomości
|
||||||
|
pojęć domenowych lub nieporozumienia dotyczące funkcjonalności czy
|
||||||
|
innych rzeczy
|
||||||
|
|
||||||
|
- Nieporozumienia w zespole dotyczące rozwiązań implementacyjnych,
|
||||||
|
architektury, funkcjonalności lub używanych technologii
|
||||||
|
|
||||||
|
- Brak odpowiedniego zaangażowania w projekt ze strony zespołu,
|
||||||
|
wybranych członków zespołu
|
||||||
|
|
||||||
|
- Nagły brak wsparcia dla lub przerwanie rozwijania wykorzystywanej
|
||||||
|
technologii lub narzędzia - konieczność implementacji od nowa, lub
|
||||||
|
kontynuowanie implementacji w nieużywanym/źle zaprojektowanym
|
||||||
|
narzędziu, bibliotece
|
||||||
|
|
||||||
|
- Napięty termin, nakład obowiązków związanych z uczelnią oraz sprawy
|
||||||
|
prywatne, mogą negatywnie wpłynąć na pracę nad aplikacją
|
||||||
|
|
||||||
|
- Niestandardowy temat projektu, mogą pojawić się nieoczekiwane
|
||||||
|
trudności (rocket science)
|
||||||
|
|
||||||
|
# Kamienie milowe
|
||||||
|
|
||||||
|
- I faza, I semestr (02.2020 - 07.2020):
|
||||||
|
|
||||||
|
- Przygotowanie prototypu aplikacji
|
||||||
|
|
||||||
|
- Przygotowanie backlogu dla projektu w systemie Trello,
|
||||||
|
opracowanie funkcjonalności, user stories
|
||||||
|
|
||||||
|
- Rozpoczęcie prac programistycznych nad aplikacją
|
||||||
|
|
||||||
|
- Rozpoczęcie prac programistycznych nad komputerem pokładowym 1.0
|
||||||
|
|
||||||
|
- Testowanie komputera pokładowego
|
||||||
|
|
||||||
|
- Ukończenie MVP aplikacji i komputera pokładowego
|
||||||
|
|
||||||
|
- Poddanie MVP testom funkcjonalnym
|
||||||
|
|
||||||
|
- II faza, II semestr(10.2020 - 02.2021):
|
||||||
|
|
||||||
|
- Uaktualnienie dekumentacji i Trello
|
||||||
|
|
||||||
|
- Rozpoczęcie prac programistycznych nad aplikacjami
|
||||||
|
|
||||||
|
- Kontynuacje prac programistycznych nad komputerem pokładowym
|
||||||
|
oraz rozpoczecie prac nad nadajnikiem i odbiornikiem
|
||||||
|
|
||||||
|
- Testowanie komputera pokładowego oraz elektroniki naziemnej
|
||||||
|
|
||||||
|
- Ukończenie aplikacji wraz ze wszystkimi zdefiniowanymi
|
||||||
|
funkcjonalnościami
|
||||||
|
|
||||||
|
- Integracja aplikacji z elektroniką
|
||||||
|
|
||||||
|
- Testy integracyjne
|
||||||
|
|
||||||
|
- Wdrożenie aplikacji na publiczną domenę
|
197
Przybylski/sprawdziany/wizja-projektu.md
Normal file
197
Przybylski/sprawdziany/wizja-projektu.md
Normal file
@ -0,0 +1,197 @@
|
|||||||
|
**Dokument wizji projektu**
|
||||||
|
|
||||||
|
**Nazwa projektu:**\
|
||||||
|
**\"Platforma do generowania i publikacji sprawdzianów z matematyki --
|
||||||
|
Gen-Mat\"**
|
||||||
|
|
||||||
|
**Autorzy:**
|
||||||
|
|
||||||
|
**Damian Kuich**
|
||||||
|
|
||||||
|
**Mikołaj Kowalczyk**\
|
||||||
|
**Łukasz Adam Kubiak**\
|
||||||
|
**Mateusz Michalski**
|
||||||
|
|
||||||
|
**Data: 31.10.2020**
|
||||||
|
|
||||||
|
**1. Executive summary.**
|
||||||
|
|
||||||
|
Projekt "Gen-Mat" jest to nowy serwis do generowania i publikacji
|
||||||
|
sprawdzianów z matematyki na poziomie szkół ponadpodstawowych. Generator
|
||||||
|
ma za zadanie znacznie uprościć proces tworzenia sprawdzianów, dzięki
|
||||||
|
czemu użytkownik zaoszczędzi cenny czas. Zakładamy też, że możliwość
|
||||||
|
generowania unikalnych sprawdzianów pozwoli na zmniejszenie procentu
|
||||||
|
uczniów wymieniających się odpowiedziami do zadań. Skutkiem czego będzie
|
||||||
|
bardziej sumienne przygotowywanie się do testów sprawdzających wiedzę i
|
||||||
|
umiejętności z matematyki.
|
||||||
|
|
||||||
|
**2. Cel i grupa docelowa.**
|
||||||
|
|
||||||
|
Celem projektu jest zaoszczędzenie czasu potrzebnego na własnoręczne
|
||||||
|
tworzenie sprawdzianów z matematyki. Rozwiązaniem tego problemu będzie
|
||||||
|
serwis pozwalający na automatyczne generowanie takich sprawdzianów
|
||||||
|
korzystając z gotowej i sprawdzonej bazy zadań. "Gen-Mat" jest
|
||||||
|
skierowany głównie dla nauczycieli szkół ponadpodstawowych, ponieważ w
|
||||||
|
aktualnej swej formie baza będzie zawierać tylko zadania z matur za
|
||||||
|
zgodą uzyskaną od CKE. Dotarcie do grup docelowych umożliwią nam np.
|
||||||
|
Grupy dla nauczycieli z matematyki na platformie Facebook albo
|
||||||
|
komunikacja ze zaznajomionymi szkołami ponadpodstawowymi. Głównym
|
||||||
|
produktem naszego projektu będzie aplikacja webowa, ponieważ jest to
|
||||||
|
temat w którym każdy z członków zespołu jest zaznajomiony.
|
||||||
|
|
||||||
|
**3. Rynek (min. 3 konkurencyjne produkty).**
|
||||||
|
|
||||||
|
W fazie rozwoju platforma będzie darmowym serwisem. Gdy serwis zostanie
|
||||||
|
doprowadzony do pełnej funkcjonalności przewidywana jest płatna
|
||||||
|
subskrypcja, a dla studentów uczących się na uczelniach, gdzie nasz
|
||||||
|
produkt będzie wykorzystywany, dostęp do niego będzie darmowy. Wiele
|
||||||
|
generatorów testów i sprawdzianów z matematyki (np. klasowki.pl,
|
||||||
|
kompozytorklasowek.gwo.pl, dlanauczyciela.pl/generator) jest do siebie
|
||||||
|
podobnych. Naszym zadaniem jest stworzyć system spełniający oczekiwania
|
||||||
|
klientów. Zawierałby ulepszone funkcjonalności konkurencyjnych serwisów
|
||||||
|
i dodawał nowe, które ułatwiłyby pracę z naszym serwisem i rozszerzyły
|
||||||
|
jego możliwości. Generator w odróżnieniu od istniejących serwisów
|
||||||
|
umożliwiających generowanie sprawdzianów z matematyki może na podstawie
|
||||||
|
wygenerowanych wcześniej sprawdzianów utworzyć sprawdzian poprawkowy a
|
||||||
|
także wygenerować powtórkę przed sprawdzianem, zawierającą część
|
||||||
|
praktyczną jak i teoretyczną, gdzie zadanie może zawierać podpowiedzi
|
||||||
|
np. potrzebne wzory lub sposób rozwiązania.
|
||||||
|
|
||||||
|
**4. Opis produktu (min. 3 moduły/epiki)**
|
||||||
|
|
||||||
|
- Panel Administratora :
|
||||||
|
|
||||||
|
- Obszar: zarządzanie danymi, kontrola danych.
|
||||||
|
|
||||||
|
- Rodzaj: Administrator
|
||||||
|
|
||||||
|
- Generator Sprawdzianów:
|
||||||
|
|
||||||
|
- Obszar: przetwarzanie danych
|
||||||
|
|
||||||
|
- Rodzaj: autoryzowany użytkownik
|
||||||
|
|
||||||
|
- Panel Rejestracji:
|
||||||
|
|
||||||
|
- Obszar: przetwarzanie danych, autoryzacja
|
||||||
|
|
||||||
|
- Rodzaj: użytkownik o ograniczonych prawach
|
||||||
|
|
||||||
|
- Panel Logowania:
|
||||||
|
|
||||||
|
- Obszar: przetwarzanie danych, autoryzacja
|
||||||
|
|
||||||
|
- Rodzaj: autoryzowany uzytkownik
|
||||||
|
|
||||||
|
**5. Zakres i ograniczenia.**
|
||||||
|
|
||||||
|
**5.1 Skład zespołu:**
|
||||||
|
|
||||||
|
Damian Kuich(Backend) - odpowiedzialny za wdrożenie RESTful API do
|
||||||
|
projektu i deploy aplikacji na serwer. Zajmuje się także wprowadzaniem
|
||||||
|
zadań do bazy. Preferowane technologie: Python
|
||||||
|
|
||||||
|
Mikołaj Kowalczyk(Backend) - odpowiedzialny za utworzenie bazy danych i
|
||||||
|
pomoc przy tworzeniu API. Zajmujesię także wprowadzaniem zadań do bazy.
|
||||||
|
Preferowane technologie: Python
|
||||||
|
|
||||||
|
Łukasz Kubiak(Frontend)- odpowiedzialny za funkcjonalność Frontend'u i
|
||||||
|
odbierania endpointów od Backend'u. Pomaga przy tworzeniu UI projektu.
|
||||||
|
Preferowane technologie: JavaScript
|
||||||
|
|
||||||
|
Mateusz Michalski(Frontend) - odpowiedzialny za tworzenie UI projektu.
|
||||||
|
Pomaga przy funkcjonalnościach. Preferowane technologie: JavaScript
|
||||||
|
|
||||||
|
**5.2 Kamienie milowe:**
|
||||||
|
|
||||||
|
- **I faza, I semestr(02.2020 - 07.2020):**
|
||||||
|
|
||||||
|
- Przygotowanie backlogu serwisu
|
||||||
|
|
||||||
|
- Przygotowanie prototypu interfejsu
|
||||||
|
|
||||||
|
- Rozpoczęcie prac programistycznych
|
||||||
|
|
||||||
|
- Przygotowanie MVP serwisu
|
||||||
|
|
||||||
|
- Poddanie MVP testom funkcjonalnym
|
||||||
|
|
||||||
|
- **II faza, II semestr(10.2020 - 03.2021):**
|
||||||
|
|
||||||
|
- Przygotowanie sprintów na drugi semestr
|
||||||
|
|
||||||
|
- Ukończenie prac wraz ze wszystkimi zdefiniowanymi
|
||||||
|
funkcjonalnościami
|
||||||
|
|
||||||
|
- Publikacja serwisu na domenie publicznej i włączenie jej na
|
||||||
|
serwer
|
||||||
|
|
||||||
|
|
||||||
|
**5.3 Szkic Harmonogramu:**
|
||||||
|
|
||||||
|
**Semestr I:**
|
||||||
|
|
||||||
|
- Utworzenie konta użytkownika (logowanie i rejestracja)
|
||||||
|
|
||||||
|
- Utworzenie bazy danych z zadaniami
|
||||||
|
|
||||||
|
- Edycja konta użytkownika
|
||||||
|
|
||||||
|
- Resetowanie hasła
|
||||||
|
|
||||||
|
- Dodanie możliwości wyboru działów i umiejętności
|
||||||
|
|
||||||
|
- Wyszukiwarka zadań
|
||||||
|
|
||||||
|
- Ręczne tworzenie sprawdzianu
|
||||||
|
|
||||||
|
- Podział na grupy(Dla ręcznego tworzenia)
|
||||||
|
|
||||||
|
- Możliwość dodania obrazka
|
||||||
|
|
||||||
|
- Prototyp generatora(Wybór: trudności zadań i ich ilości, działów i
|
||||||
|
umiejętności)
|
||||||
|
|
||||||
|
- Generowanie karty odpowiedzi i klucza odpowiedzi
|
||||||
|
|
||||||
|
- Eksport sprawdzianu do PDF
|
||||||
|
|
||||||
|
**Semestr II:**
|
||||||
|
|
||||||
|
- Edycja wygenerowanego sprawdzianu
|
||||||
|
|
||||||
|
- Dodawanie obrazka do zadania(jpg,png)
|
||||||
|
|
||||||
|
- Miejsce pod zadaniem
|
||||||
|
|
||||||
|
- Dodawanie własnych zadań
|
||||||
|
|
||||||
|
- Edycja dodanych zadań
|
||||||
|
|
||||||
|
- Ustawienie zadań na prywatne/publiczne
|
||||||
|
|
||||||
|
- Możliwość udostępniania swoich zadań innym nauczycielom
|
||||||
|
|
||||||
|
- Możliwość oszacowania czasu na rozwiązanie zadania
|
||||||
|
|
||||||
|
- Edytor równań
|
||||||
|
|
||||||
|
- Postawienie strony na serwerze
|
||||||
|
|
||||||
|
- Dodanie publicznej domeny
|
||||||
|
|
||||||
|
**5.4 Ograniczenia:**
|
||||||
|
|
||||||
|
W pierwszej fazie projektu, produkt oferować będzie ograniczoną ilość
|
||||||
|
działów, co za tym idzie ograniczoną ilość umiejętności potrzebnych do
|
||||||
|
rozwiązania zadania i zadań z powodu praw autorskich. Możliwa będzie
|
||||||
|
edycja wyłącznie zadań dodanych przez użytkowników (jeżeli autor zadania
|
||||||
|
wyrazi na to zgodę). Do tej pory udało nam się otrzymać pozwolenie od
|
||||||
|
CKE na korzystanie z ich zadań, jednakże pod dwoma warunkami: brak
|
||||||
|
możliwości edycji zadań oraz obowiązkowe podanie autora zadania wraz z
|
||||||
|
zasadami oceniania. Możliwy będzie wybór trudności zadań wraz z ich
|
||||||
|
liczbą, podział na grupy (maks. 4), edytowanie i eksport sprawdzianu do
|
||||||
|
pdf, ustalenie punktacji do zadań, możliwość stworzenia własnego
|
||||||
|
sprawdzianu. Będzie możliwość stworzenia konta użytkownika i jego edycji
|
||||||
|
ale nie będzie posiadał możliwości uwierzytelniania czy osoba jest
|
||||||
|
uprawniona do używania serwisu.
|
305
Przybylski/sprawdziany/wymagania-projektowe.md
Normal file
305
Przybylski/sprawdziany/wymagania-projektowe.md
Normal file
@ -0,0 +1,305 @@
|
|||||||
|
**Dokument wymagań projektowych**
|
||||||
|
|
||||||
|
**Nazwa projektu:**\
|
||||||
|
**\"Platforma do generowania i publikacji sprawdzianów z matematyki --
|
||||||
|
Gen-Mat\"**
|
||||||
|
|
||||||
|
**Autorzy:**
|
||||||
|
|
||||||
|
**Damian Kuich**
|
||||||
|
**Mikołaj Kowalczyk**\
|
||||||
|
**Łukasz Adam Kubiak**\
|
||||||
|
**Mateusz Michalski**
|
||||||
|
|
||||||
|
**Data: 31.10.2020**
|
||||||
|
|
||||||
|
**1. Wersja dokumentu**
|
||||||
|
|
||||||
|
**1. Elementy składowe projektu (produkty projektu)**
|
||||||
|
|
||||||
|
**Semestr I:**
|
||||||
|
|
||||||
|
- Instancja serwera bazy danych oparta o silnik MySQL.
|
||||||
|
|
||||||
|
- Business Model Canvas.
|
||||||
|
|
||||||
|
- Value Proposition Canvas.
|
||||||
|
|
||||||
|
- Dokument Wizji Projektu.
|
||||||
|
|
||||||
|
- Prezentacja projektu.
|
||||||
|
|
||||||
|
- Harmonogram prac.
|
||||||
|
|
||||||
|
- Prototyp UI wykonany z użyciem Adobe XD.
|
||||||
|
|
||||||
|
- Arkusz z wynikami testów UI.
|
||||||
|
|
||||||
|
- Zakres Projektu.
|
||||||
|
|
||||||
|
- Dokumentacja Techniczna.
|
||||||
|
|
||||||
|
- Repozytorium Git.
|
||||||
|
|
||||||
|
- Strona projektowa na Jira.
|
||||||
|
|
||||||
|
**Semestr II:**
|
||||||
|
|
||||||
|
- Instancja serwerowa oparta o Heroku.
|
||||||
|
|
||||||
|
- Prezentacja prac na 2 semestr
|
||||||
|
|
||||||
|
- Aplikacja webowa w języku Python oparta o framework Django.
|
||||||
|
|
||||||
|
- Pomocnicza aplikacja webowa w Node JS
|
||||||
|
|
||||||
|
**2. Granice projektu**
|
||||||
|
|
||||||
|
Projekt jest tworzony jako serwis webowy, ponieważ większość nauczycieli
|
||||||
|
swoją pracę spędza przy komputerach. Przy tworzeniu sprawdzianu mniejszy
|
||||||
|
ekran(np. Telefon, tablet) byłby ogromnym minusem przy tego typu
|
||||||
|
aplikacji. Serwis, też będzie posiadał ograniczoną bazę danych
|
||||||
|
posiadającą tylko zadania z CKE, ponieważ korzystanie z innych źródeł
|
||||||
|
jest narażone na opłatę praw do użytku. Kolejnym problemem jest obsługa
|
||||||
|
ogromnej ilości użytkowników na raz co przy aktualnym serwerze jest
|
||||||
|
niemożliwe bez własnego wkładu finansowego. Aplikacja też nie posiada
|
||||||
|
funkcjonalności autoryzacji, czy podana osoba jest nauczycielem. Taka
|
||||||
|
funkcjonalność byłaby bardzo ciężka do wdrożenia, ponieważ
|
||||||
|
potrzebowałaby bardzo dobrych zabezpieczeń i bardzo dobrego pomysłu na
|
||||||
|
autoryzację. Niektóre funkcję nie zostaną wdrożone, ponieważ po upływie
|
||||||
|
czasu okazywały się albo za trudne do implementacji albo niepotrzebne.
|
||||||
|
Np. możliwość rysowania własnych grafik jest funkcjonalnością, która
|
||||||
|
byłaby bardzo trudna do dobrej implementacji przy responsywnym tworzeniu
|
||||||
|
pdf'a. Tworzenie arkusza powtórzeniowego do matury jest też
|
||||||
|
funkcjonalnością niepotrzebną, ponieważ jest to bardzo zbliżone do
|
||||||
|
tworzenia normalnego sprawdzianu.
|
||||||
|
|
||||||
|
**3. Lista wymagań funkcjonalnych**
|
||||||
|
|
||||||
|
- Rejestracja i logowanie użytkowników (Użytkownik podczas rejestracji
|
||||||
|
podaje nazwę użytkownika, hasło oraz email, na który wysłana
|
||||||
|
zostanie wiadomość z linkiem aktywującym konto. Podczas logowania
|
||||||
|
wymagane jest podanie nazwy użytkownika oraz hasła)
|
||||||
|
|
||||||
|
- Wylogowywanie
|
||||||
|
|
||||||
|
- Odzyskiwanie hasła (Mail zawierający hasło użytkownika lub token)
|
||||||
|
|
||||||
|
- Możliwość wyboru działów i umiejętności zawartych w bazie zadań (Po
|
||||||
|
wybraniu opcji "utwórz sprawdzian" użytkownik zobaczy listę z
|
||||||
|
dostępnymi działami i związanych z nimi umiejętnościami. Działy i
|
||||||
|
umiejętności pozyskiwane są z akruszy zadaniowych CKE.)
|
||||||
|
|
||||||
|
- Tworzenie ręczne sprawdzianów (Użytkownik wybiera dział oraz
|
||||||
|
umiejętności, a następnie tworzy sprawdzian z zadań znajdujących się
|
||||||
|
w zbiorze zadań należących do wybranego działu lub umiejętności.
|
||||||
|
Istnieje opcja pominięcia wyboru działów lub umiejętności.)
|
||||||
|
|
||||||
|
- Wyszukiwarka zadań (Wyszukiwanie na podstawie działów,
|
||||||
|
umiejętności.)
|
||||||
|
|
||||||
|
- Możliwość dodania grafiki do sprawdzianu (jpg,png)
|
||||||
|
|
||||||
|
- Eksport sprawdzianów do PDF
|
||||||
|
|
||||||
|
- Generowanie kart i arkuszy odpowiedzi (Karty i arkusze dostosowane
|
||||||
|
do ilości grup w sprawdzianie.)
|
||||||
|
|
||||||
|
- Edytor równań oparty o LaTeX
|
||||||
|
|
||||||
|
- Automatyczne generowanie sprawdzianów (Na podstawie wybranych
|
||||||
|
działów i umiejętności, losowane są zadania a następnie dodawane do
|
||||||
|
sprawdzianu. Użytkownik może wybrać czy chce, aby generowane były
|
||||||
|
arkusze i karty odpowiedzi.
|
||||||
|
|
||||||
|
- Edycja wygenerowanych sprawdzianów (Możliwa będzie zmiana układu
|
||||||
|
zadań w sprawdzianie oraz usunięcie zadania, które nam nie odpowiada
|
||||||
|
i dodanie nowego.)
|
||||||
|
|
||||||
|
- Dodawanie własnych zadań i możliwość ich edycji (Zadania będą
|
||||||
|
dzielić się na publiczne i prywatne. Użytkownik może zdecydować czy
|
||||||
|
chce, aby inni użytkownicy mieli dostęp do jego zadań.)
|
||||||
|
|
||||||
|
- Możliwość oszacowania czasu potrzebnego na rozwiązanie
|
||||||
|
sprawdzianu/zadania (Autor zadania będzie musiał podać szacowany
|
||||||
|
czas na rozwiązanie go, szacowany czas na ukończenie sprawdzianu
|
||||||
|
będzie suma czasów potrzebnych na rozwiązanie poszczególnych zadań.)
|
||||||
|
|
||||||
|
- Miejsce pod zadaniem na rozwiązanie (Użytkownik może wybrać czy
|
||||||
|
miejsce do rozwiązania zadania ma znajdować się pod nim. )
|
||||||
|
|
||||||
|
**4. Lista wymagań niefunkcjonalnych**
|
||||||
|
|
||||||
|
- Niski czas reakcji na zapytania ze strony użytkowników.
|
||||||
|
|
||||||
|
- Łatwość korzystania z aplikacji, estetyka, szybkość uczenia się obsługi aplikacji.
|
||||||
|
|
||||||
|
- brak wad, szybki czas naprawy wad i błędów, dostępność korzystania z wszystkich cech aplikacji.
|
||||||
|
|
||||||
|
- Możliwość korzystania z serwisu na wielu wyszukiwarkach.
|
||||||
|
|
||||||
|
**5. Mierzalne wskaźniki wdrożeniowe**
|
||||||
|
|
||||||
|
Semestr II:
|
||||||
|
|
||||||
|
- System zostanie udostępniony w domenie internetowej gen-mat i będzie
|
||||||
|
mogło jednocześnie z niego korzystać od 5 do 20 osób.
|
||||||
|
|
||||||
|
- Na koniec drugiego semestru system opublikowany w wersji testowej
|
||||||
|
beta.
|
||||||
|
|
||||||
|
- Baza zadań zostanie zasilona pozyskanymi danymi od CKE.
|
||||||
|
|
||||||
|
**6. Kryteria akceptacji projektu dla I semestru prac**
|
||||||
|
|
||||||
|
- **Wymagane :**
|
||||||
|
|
||||||
|
- Rejestracja i logowanie/wylogowanie użytkowników (użytkownik
|
||||||
|
posiada konto, na którym może zapisywać swoje sprawdziany)
|
||||||
|
|
||||||
|
- Tworzenie ręczne sprawdzianów
|
||||||
|
|
||||||
|
- Możliwość wyboru działów i umiejętności
|
||||||
|
|
||||||
|
- Wyszukiwarka zadań (wyszukiwanie wg. działów, umiejętności)
|
||||||
|
|
||||||
|
- Możliwość dodania grafiki do sprawdzianu
|
||||||
|
|
||||||
|
- Generowanie kart i arkuszy odpowiedzi
|
||||||
|
|
||||||
|
- Możliwość stworzenia duplikatu sprawdzianu
|
||||||
|
|
||||||
|
**7. Kryteria akceptacji projektu dla II semestru prac**
|
||||||
|
|
||||||
|
- **Wymagane :**
|
||||||
|
|
||||||
|
- Eksport sprawdzianów do PDF
|
||||||
|
|
||||||
|
- Edytor równań
|
||||||
|
|
||||||
|
- Automatyczne generowanie sprawdzianów na podstawie wybranych
|
||||||
|
umiejętności, działów, trudności i ilości zadań
|
||||||
|
|
||||||
|
- Tworzenie grup sprawdzianu
|
||||||
|
|
||||||
|
- Edycja sprawdzianu
|
||||||
|
|
||||||
|
- Edycja wygenerowanych sprawdzianów
|
||||||
|
|
||||||
|
- Dodawanie własnych zadań i możliwość ich edycji
|
||||||
|
|
||||||
|
- Publikacja serwisu na publicznej domenie
|
||||||
|
|
||||||
|
- Możliwość udostępniania swoich zadań innym nauczycielom
|
||||||
|
|
||||||
|
- Możliwość oszacowania czasu potrzebnego na rozwiązanie
|
||||||
|
sprawdzianu/zadania
|
||||||
|
|
||||||
|
- Miejsce pod zadaniem
|
||||||
|
|
||||||
|
- **Oczekiwane:**
|
||||||
|
|
||||||
|
- Integracja z zewnętrznym serwisem hostingowym.
|
||||||
|
|
||||||
|
- **Planowane:**
|
||||||
|
|
||||||
|
- Rozszerzenie bazy o dodatkowe zadania spoza CKE
|
||||||
|
|
||||||
|
- Autoryzacja nauczycieli
|
||||||
|
|
||||||
|
**8. Organizacja pracy zespołu**
|
||||||
|
|
||||||
|
**Organizacja zespołu:**
|
||||||
|
|
||||||
|
Zespół jest podzielony na dwie osoby odpowiedzialne za Front'end i dwie
|
||||||
|
za Back'end. Obraliśmy też metodykę pracy Scrum. Głównym narzędziem
|
||||||
|
wspomagającym pracę jest PyCharm ale też serwis Heroku na którym mamy
|
||||||
|
wdrożoną naszą aplikacje. Kody są przechowywane w rezpozytorium kodu na
|
||||||
|
GitHub'ie. Przebieg projektu jest kontrolowany przy pomocy Jiry, gdzie
|
||||||
|
dla każdej osoby z projektu przydzielane są zadania na dany Sprint.
|
||||||
|
Zadania są przypisywane przez Scrum Mastera na podstawie umiejętności
|
||||||
|
danego członka zespołu. Potem, co jakiś czas sprawdzany jest postęp
|
||||||
|
danego zadania na podstawie tzw. "Task Review". Ostatni punkt zadania to
|
||||||
|
testowanie, czy zostało wykonane dobrze, dopisanie należytych podzadań,
|
||||||
|
które są uważane za najbardziej kluczowe i podanie logtime'u.
|
||||||
|
|
||||||
|
**Organizacja prac w zespole:**
|
||||||
|
|
||||||
|
- **Damian Kuich**
|
||||||
|
|
||||||
|
- Implementacja aplikacji serwerowej API
|
||||||
|
|
||||||
|
- Zarządzanie dokumentacją
|
||||||
|
|
||||||
|
- Pomoc przy tworzeniu bazy danych na potrzeby aplikacji API
|
||||||
|
|
||||||
|
- Reprezentatywna rola przed klientem
|
||||||
|
|
||||||
|
- Projektowanie architektury aplikacji serwerowej
|
||||||
|
|
||||||
|
- Komunikacja na linii zespół - klient(nauczyciele matematyki dla
|
||||||
|
szkół ponadpodstawowych, jak i podstawowych). Komunikacja
|
||||||
|
odbywała się mailowo, bądź przy pomocy portali
|
||||||
|
społecznościowych(np. facebook).
|
||||||
|
|
||||||
|
- **Mikołaj Kowalczyk**
|
||||||
|
|
||||||
|
- Implementacja aplikacji serwerowej API
|
||||||
|
|
||||||
|
- Zarządzanie dokumentacją
|
||||||
|
|
||||||
|
- Stworzenia bazy danych na potrzeby aplikacji API
|
||||||
|
|
||||||
|
- Projektowanie architektury aplikacji serwerowej
|
||||||
|
|
||||||
|
- **Łukasz Kubiak**
|
||||||
|
|
||||||
|
- Implementacja aplikacji webowej
|
||||||
|
|
||||||
|
- Obsługa API i formularzy.
|
||||||
|
|
||||||
|
- Zarządzanie dokumentacją
|
||||||
|
|
||||||
|
- Projektowanie architektury aplikacji webowej
|
||||||
|
|
||||||
|
- **Mateusz Michalski**
|
||||||
|
|
||||||
|
- Projektowanie interface'u użytkownika
|
||||||
|
|
||||||
|
- Zarządzanie dokumentacją
|
||||||
|
|
||||||
|
- Projektowanie architektury aplikacji webowej
|
||||||
|
|
||||||
|
**9. Ryzyka projektowe**
|
||||||
|
|
||||||
|
- W projekcie planujemy wykorzystać moduł LaTeX do tworzenia własnych
|
||||||
|
zadań. Generuje to problem, ponieważ nakłada to niepotrzebną
|
||||||
|
trudność do naszego projektu. Najlepszym rozwiązaniem, będzie
|
||||||
|
utworzenie jak najłatwiejszego panelu wprowadzania zadań do bazy i
|
||||||
|
dobrze napisanej instrukcji obsługi.
|
||||||
|
|
||||||
|
**10. Kamienie milowe**
|
||||||
|
|
||||||
|
- **I faza, I semestr(02.2020 - 07.2020):**
|
||||||
|
|
||||||
|
- Przygotowanie backlogu serwisu
|
||||||
|
|
||||||
|
- Przygotowanie prototypu interfejsu
|
||||||
|
|
||||||
|
- Rozpoczęcie prac programistycznych
|
||||||
|
|
||||||
|
- Przygotowanie MVP serwisu
|
||||||
|
|
||||||
|
- Poddanie MVP testom funkcjonalnym
|
||||||
|
|
||||||
|
- **II faza, II semestr(10.2020 - koniec 01.2021):**
|
||||||
|
|
||||||
|
- Przygotowanie sprintów na drugi semestr
|
||||||
|
|
||||||
|
- Ukończenie prac wraz ze wszystkimi zdefiniowanymi
|
||||||
|
funkcjonalnościami
|
||||||
|
|
||||||
|
- Publikacja serwisu na domenie publicznej i włączenie jej na
|
||||||
|
serwer
|
||||||
|
|
||||||
|
- Zdanie produktu klientowi
|
Loading…
Reference in New Issue
Block a user