# Dokument wymagań projektu **Nazwa projektu: Niezbędnik Studenta** **Autorzy: Adrian Pacholak, Ania Śniadek, Malwina Chudzińska, Phillip Ławniczak** **Data: 28.10.2020** ## 0. Wersja dokumentu 1.1 - 28.10.2020 - dostosowanie do nowego szablonu 1.2 - 16.11.2020 - naniesienie poprawek wedłgu uwag promotora ## 1. Elementy składowe projektu (produkty projektu) ### Aplikacja webowa - Zintegrowana z REST API - pobiera dane użytkowników, dane zawarte w aplikacji - Dostępna dla użytkowników posiadających konto w systemie USOS - Zarządzana przez zespół administratorów składający się z wybranych, zainteresowanych studentów - Umożliwia zalogowanym użytkownikom - korzystanie z forum - dostęp do materiałów zamieszczanych przez użytkowników - udostępnianie plików - pozyskiwanie informacji dotyczących studiów - Dokumentacja dotycząca oprogramowania aplikacji webowej - Technologie: - JavaScript - React - HTML5 - SASS - CSS3 - webpack - node.js - Publikacja aplikacji: - Dostęp do aplikacji na stronie internetowej - Dostęp do repozytorium oraz dokumentacji aplikacji na serwisie GitHub ### Aplikacja serwerowa - REST API - Udostępnia serwisy REST - Służy do pobierania oraz zarządzania informacjami na temat przedmiotów, prowadzących, wydarzeniach - Służy do pobierania i dodawania materiałów naukowych - Służy do zamieszczania postów i komentarzy na forum - Używa relacyjnej bazy danych do przechowywania informacji o użytkownikach, przedmiotach, prowadzących, ogłoszeniach, wydarzeniach, postach oraz materiałów naukowych - Zintegrowane z Systemem Usos w celu autoryzacji oraz pobierania informacji o użytkownikach - Dokumentacja dotycząca oprogramowania REST API - Technologie: Java, Spring, Hibernate ### Relacyjna baza danych: - Baza stworzona na potrzeby przechowywania informacji o użytkownikach, przedmiotach, prowadzących, wydarzeniach - Technologie: - Azure SQL ### Repozytorium zawierające kod aplikacji - GitHub ### Elementy nieprogramistyczne - Tablica projektowa - Jira: - Historia wymagań funkcjonalności (user stories) - Historia zadań - Prototyp aplikacji webowej - Dokumentacja dotycząca oprogramowania REST API - Dokumentacja dotycząca oprogramowania aplikacji webowej - Dokumentacja architektury wykorzystanej w projekcie ## 2. Granice projektu - Produkty nie zawarte: - Aplikacja mobilna - Aplikacja desktopowa - Funkcjonalności nie zawarte: - Rejestracja użytkowników - Dostęp dla użytkowników nie posiadających konta w systemie USOS - Chat dla użytkowników aplikacji - Możliwość edycji danych użytkownika ## 3. Lista wymagań funkcjonalnych - Aplikacja webowa: - Autentykacja i autoryzacja użytkowników przez system - Dostęp do informacji na temat przedmiotów i prowadzących - Możliwość dołączania i opuszczania grup przedmiotowych - Możliwość dodawania postów stanowiących ogłoszenia, oferty pracy i oferty korepetycji na tablicy ogłoszeń - Możliwość dodawania postów na forum dyskusyjnym, możliwość komentowania postów i zamieszczania rozwiązań do zadań - Możliwość udostępniania plików innym użytkownikom - Możliwość inicjowania wydarzeń i dołączania do wydarzeń - Możliwość dostosowania powiadomień przez użytkownika - Możliwość dodawania przedmiotów, prowadzących, przydatnych linków przez użytkowników z uprawnieniami administratora - Możliwość zarządzania ogłoszeniami, postami, komentarzami użytkowników przez administratorów - Możliwość dawania użytkownikom uprawnień administratora przez administratorów - Aplikacja serwerowa: - Zintegrowana z Systemem USOS w celu autoryzacji oraz pobierania informacji o użytkownikach - Pobieranie oraz zarządzanie informacjami na temat przedmiotów, prowadzących, wydarzeń, postów i komentarzy na forum - Pobieranie i dodawanie materiałów naukowych - Połączona z relacyjną bazą danych zawierającą dane oraz pliki ## 4. Lista wymagań niefunkcjonalnych - Dokumentacja dotyczącą oprogramowania aplikacji webowej i REST API - Dostęp do repozytorium kodu - Aplikacja dostępna dla komputerów i urządzeń mobilnych - Użyte biblioteki na licencji open-source ## 5. Mierzalne wskaźniki wdrożenia - Akceptacja funkcjonalna: - Ukończenie zdefiniowanych funkcjonalności aplikacji webowej - Dostęp do aplikacji dla wszystkich użytkowników systemu Usos - Brak błędów utrudniających korzystanie z aplikacji - Akceptacja jakościowa: - Zawieranie testów jednostkowe i sprawdzenie, czy spełniają swoje zadanie - Deploy wersji alpha aplikacji na serwer 30.11.2020, przeprowadzenie testów, sporządzenie raportu i naniesienie poprawek na jego podstawie - Deploy wersji beta aplikacji 07.01.2021 na serwer, przeprowadzenie testów, sporządzenie raportu i naniesienie poprawek na jego podstawie - Aplikacja posiada 40 aktywnych użytkowników ## 6. Kryteria akceptacji projektu dla I semestru prac - Dostarczenie prototypu projektu - Aplikacja webowa zintegrowana z REST API oferująca funkcjonalności: - logowanie do serwisu - podstawowy interfejs startowy użytkownika - lista przedmiotów (grup przedmiotowych) - możliwość dołączenia do grup przedmiotowych - udział w forum - Dokumentacja aplikacji webowej i serwerowej ## 7. Kryteria akceptacji projektu dla II semestru prac - Aplikacja webowa zintegrowana z REST API uzupełniona o funkcjonalności: - udostępnianie i pobieranie materiałów w postaci plików - tworzenie i dołączanie do wydarzeń - dodawanie ogłoszeń - powiadomienia i customizacja powiadomień - edycja zawartości strony przez admistratorów - zarządzanie treścią i użytkownikami przez administratorów - Anglojęzyczna wersja aplikacji - Dokumentacja aplikacji webowej i serwerowej - System pozytywnie przeszedł testy obciążeniowe, testy alpha i beta ## 8. Organizacja pracy zespołu - Strona klienta: - Studenci wydziału Matematyki i Informatyki na kierunku Matematyka i Informatyka - Strona zespołu projektowego - Malwina Chudzińska - Product Owner - Implementacja aplikacji webowej - Tworzenie prototypu interfejsu aplikacji - Anna Śniadek - Implementacja aplikacji webowej - Projekt szaty graficznej aplikacji - Scrum Master - Adrian Pacholak - Implementacja serwisów REST dla aplikacji - Projektowanie bazy danych - Phillip Ławniczak - Tworzenie prototypu interfejsu aplikacji - Implementacja aplikacji webowej ## 9. Ryzyka projektowe - Odejście członka implementującego aplikację webową lub stronę serwerową - trudności w ukończeniu aplikacji - Określone ramy czasowe, semestry, na stworzenie produktu - ryzyko nieukończenia w czasie - Nieporozumienia w zespole dotyczące rozwiązań implementacyjnych, architektury, funkcjonalności lub używanych technologii - Konieczność poświęcenia czasu na dopełnienie wiedzy dotyczącej stosowanych technologii - Brak odpowiedniego zaangażowania w projekcie ze strony zespołu lub wybranych członków zespołu - Przechowywanie danych o użytkownikach - Brak zainteresowania aplikacją ze strony użytkowników - Brak chętnych do pełnienia roli administratora - Zarządzanie nieodpowiednimi treściami - Problemy techniczne po stronie systemu Usos ## 10. Kamienie milowe - Logowanie przez cas.amu.edu.pl - Dostarczenie użytkownikowi funkcjonalności dołączania do grup przedmiotowych - Dostarczenie użytkownikowi funkcjonalności dodawania kontentu do portalu - Wdrożenie aplikacji serwerowej na serwerze - Aplikacja posiadająca dokumentację - Aplikacja dostępna na stronie internetowej - Aplikacja posiadająca użytkowników - Aplikacja uzupełniona danymi dotyczącymi przedmiotów, prowadzących, materiałami naukowymi