---
# System prepended metadata

title: IO 2. zadanie z listopada

---

---
title: IO 2. zadanie z listopada
---
{%hackmd theme-dark %}

### Materiały:
[Treść zadania](https://skos.ii.uni.wroc.pl/pluginfile.php/50596/mod_resource/content/4/IO%2C%20zadania%20do%20wykonania%20w%20listopadzie.pdf)

[Nasze rozwiązanie poprzedniego zadania z listopada](https://hackmd.io/@21jKn82LRiyg0hihdK1uBQ/HJQWOZdLj/edit)

Przykładowe rozwiązania od zpla:
[1](https://skos.ii.uni.wroc.pl/pluginfile.php/50598/mod_resource/content/1/Adam%20Bukowczyk%2C%20Grzegorz%20Bielecki%20Dok.%20ap.%20POMOCNA%20D%C5%81O%C5%83.%20Specyfikacja.pdf) - tylko scenariusze użycia (w pkt. 3.)
[2](https://skos.ii.uni.wroc.pl/pluginfile.php/54261/mod_resource/content/1/IO_koncepcja_wykonania_systemu_v1_2.pdf) - całe zadanie zrobione chyba



---
---
---
# Koncepcja wykonania systemu
### 1. Scenariusze przypadków użycia
1. Dodawanie codziennego postu.
    1. Użytkownik loguje się do aplikacji.
    2. Użytkownik klika w przycisk dodwania postu.
    3. Użytkownik uzupełnia pola formularz:
        * Wymagane:
            * Wyszukuje po nazwie piosenkę i wybiera odpowiednią opcję z listy.
            * Dodaje adnotacje.
            * Wyszukuje i wybiera emotkę opisującą nastrój towarzyszący mu przy słuchaniu tej piosenki.
        * Opcjonalne:
            * Dodaje ocenę utworu w skali od 1 do 5.
    4. Użytkownik publikuje wpis.
2. Wyszukiwanie koncertów.
    1.  Użytkownik loguje się do aplikacji.
    2.  Użytkownik przechodzi do zakładki "Koncerty".
    3.  Użytkownik może opcjonalnie wyszukać koncert, wybrać opcje wyświetlania wyników (chronologicznie, polecane, popularne, alfabetycznie), określić lokalizację oraz wybrać przedział czasowy w któym odbywa się koncert. Domyślnie wyświetlane są polecane koncerty, odbywające się w pobliżu lokalizacji użytkownika i mają miejsce w ciągu najbliższych dwóch tygodni.
    4.  Użytkownik znajduje intersujący go koncert/wydarzenie z listy i klika na niego by wyświetlić jego stronę.
    5.  Użytkownik może oświadczyć uczestnictwo w koncercie, wyrazić zainteresownie lub jego brak.
    *  Użytkownik może przejść do archiwum koncertów. Jego opis wykracza poza ten scenariusz użycia.
3. Głosowanie na artystów
    1. Użytkownik loguje się do aplikacji 
    2. Użytkownik przechodzi do zakładki z konkursami.
    3. Użytkownik odsłuchuje dwie wylosowane piosenki.
    4. Użytkownik głosuje na tę piosenkę, która bardziej mu się podoba.
    *  Użytkownik może wyświelić stronę, na której wytłumaczone jest jak działają co miesięczne konkursy.
    *  Użytkownik może otworzyć piosenkę w połączonych serwisach streamingowych.
    *  Użytkownik może zagłosować na piosenkę w konkursie tylko raz dziennie. Po zagłosowaniu do końca dnia w zakładce konkursy jest wyświetlana wiadomość z podziękowaniem za wzięcie udziału w głosowaniu.
4. Wyszukiwanie nowych piosenek.
    1. Użytkownik przechodzi do zakładki z polecaną muzyką.
    2. Użytkownik przechodzi do strony szybkiego polecania.
    3. Użytkownik dobiera stopień podobieństwa, do słuchanych przez siebie utworów, polecanych piosenek za pomocą slidera.
    4. Użytkownik może między innymi usuwać z listy wybrane piosenki.
    5. Użytkownik wybiera opcję eksportowania.
    6. Użytkownik wybiera ile polecanych piosenek chce wyeksportować, docelowy serwis streamingowy, podaje nazwę playlisty jaka zostanie utworzona w podanym serwisie oraz opcjonalnie jej opis.
    

### 2. Dialogi
Strona główna:
![](https://i.imgur.com/IBmnYvX.png)
Dodawanie postu:
![](https://i.imgur.com/xjKUuLt.png)
Wyszukiwanie koncertów:
![](https://i.imgur.com/LT7djno.png)
Konkursy:
![](https://i.imgur.com/LZpvBD5.png)
Znajdowanie nowych piosenek:
![](https://i.imgur.com/P92kgx7.png)
Eksportowanie polecanych piosenek:
![](https://i.imgur.com/romxNky.png)


### 3. Architektura systemu
![](https://i.imgur.com/QwkOjcF.png)

Przewidywane rozwiązania sprzętowe: outsourcing zewnętrznej firmy serwerowej.

Oprogramowanie systemowe:

Adobe Photoshop - 
MySQL - zarządzanie bazą danych.
Gerrit - zarządzanie kodem produkcyjnym
OpenGrok - przeglądanie kodu produkcyjnego
Jira - zarządzanie produkcją
Spotify eSDK - integracja ze Spotify
Apple Music API - integracja z Apple Music

Jenkins - oprogramowanie do automatycznego testowania

### 4.A. Model konceptualny (np. [ER](https://pl.wikipedia.org/wiki/Diagram_zwi%C4%85zk%C3%B3w_encji)) SKIP TO



### 4.B. Model bazy danych.