# kyselma
Kyselmä - kysele, vastaile ja tutki tuloksia
## TO GET IT RUNNING:
#### Install postgresql for local user & get it running [as in course material](https://hy-tsoha.github.io/materiaali/osa-2/)
- `wget https://github.com/hy-tsoha/local-pg/raw/master/pg-install.sh`
- `bash pg-install.sh`
- `postrgres &`
#### Clone the source
- `git clone https://github.com/triionhe/kyselma`
- `cd kyselma`
#### Get database ready
- `psql < SCHEMA.sql` (BE CAREFUL! This drops some tables.)
#### Either use (1) poetry or (2) venv to handle dependencies and run the app
(1) Install poetry if nessesary. (refer your distro)
- `pip install --user poetry`
- `pipx install poetry`
(1) Install dependencies
- `PYTHON_KEYRING_BACKEND=keyring.backends.fail.Keyring poetry install --no-root`
(1) Start the app in poetry virtual environment
- `poetry run flask run`
(2) Activate venv environment
- `python3 -m venv venv`
- `source venv/bin/activate`
(2) Install dependencies with pip
- `pip install -r ./requirements.txt`
(2) Start the app
- `flask run`
#### Surf to the webpage
- `firefox http://127.0.0.1:5000/`
There is ready made kyselmä named 'kysdemo' for testing.
## DONE:
- Nimimerkin resetointi nimimerkistä 5s painamalla
- Tyhjien kysymysten laatiminen ei onnistu
- Linkin kyselyyn voi kopioida leikepöydälle
- Tietoturvaseikat: CSRF suojaus
- Eniten ja vähiten yhdenmukaiset vastaajat
- Parempi ulkoasu
- Vastauksen ja luomisen aloittamisen yksinkertaistaminen
- Vastausten anto
- Vastausten tarkistelu
- Kyselyn luomisen näyttö
- Kyselyn lukitseminen vastattavaksi
- Kysymyksen näyttö
- Ulkoasu
- Voi lisätä kyselyn
- Kysymyksen mukana lisätään vastaus
- Kysymyksen lisäys
- Vastaustaulu
- Kysymystaulu
- Kyselytaulu
- Tietokantayhteys
- Nimierkkitaulu
- Nimimerkin käyttöönotto ja tarkistus
- Virheviestien kuljetus
- Nettisivurunko
## TODO:
- Moderointi
...
## Kuvaus:
Tarkoitus on luoda sivu jossa voi luoda kysymyksiä ja kyselyitä, joita
täytetään anonyymillä nimimerkillä.
Käyttäjä luo ensin kyselyn ja antaa omat vastauksensa.
### Käyttäjän luonti:
- Tässä ohjelmassa ei ole käyttäjiä vaan ainoastaan nimimerkkejä
- Nimimerkki on sessiokohtainen ja enempi vähempi pysyvä
### Kyselyn luonti:
- Käyttäjä kirjoittaa kysymyksen
- Käyttäjä valistee kysymykseen sopivat vastinparit
- Käyttäjä vastaa itse kysymykseensä
- Em 3 kohtaa toistetaan, kunnes käyttäjä valitsee valmis
- Tämän jälkeen käyttäjä1 siirretään tarkastelutilaan
Vastausvaihtoehdot on muunnettavissa luvuiksi, joita voi vertailla.
### Esimerkkivastinpareja:
- kyllä vs ei
- samaa mieltä vs eri mieltä
- vaihtoehto1 vs vaihtoehto2
### Kyselytila:
- Käyttäjä 2 saa käyttäjän 1 esittämät kysymykset vastattavakseen
- Vastattuaan kysymyksiin käyttäjä 2 siirretään tarkastelu tilaan
### Tarkastelutila:
- Tilassa näkyy kutsulinkki ja koodi, jolla käyttäjä voi kutsua toisen
- Tilassa voi valita monta eri moodia:
1. Eniten omia vastauksia mukaileva käyttäjä
2. Vähiten omia vastauksia mukaileva käyttäjä
3. Etsi käyttäjä vertailtavaksi
- Kaikissa moodeissa vertaillaan vastauksia/keskiarvoa omiin
- Jokainen moodi näyttää myös yhtenäisyysprosentin
### Yhtenäisyysprosentti:
- Tismalleen samat vastaukset antaa 100%
- Tismalleen eri ääripäiden vastaukset antaa 0%
- Jos vastausten välinen etäisyys koko skaalalla on 10% niin se antaa 90%
- Eli siis 1-abs(vast_a-vast_b)/(max-min)
- Kyselyn yhtenäisyysprosentti on keskiarvo kaikkien kysymysten prosenteista
### Moderointitila:
- poista kysely kutsukoodilla
- esti kysely hakusanalla positettavasksi
### Kysymykset, kyselyt, vastaukset tallennetaan asianmukaisiin tauluihin.
### Ominaisuuksia joiden tekemistä voi harkita:
- Jokaisella kyselyllä on elinikä jonka jälkeen ne siivotaan.
- Kysymyksiin voi liittää kuvia
Ikonit (CC) pixellove:
https://www.svgrepo.com/collection/pixellove-bordered-vectors/