summaryrefslogtreecommitdiff
path: root/README.md
blob: 3f0deb9384969fd589161be53a26d09a7fda9d1c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
# kyselma
	Kyselmä - kysele, vastaile ja tutki tuloksia

TO GET IT RUNNING:

Install postgresql for local user & get it running (as in course material)
- $ 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.git
- $ 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
- $ export PYTHON_KEYRING_BACKEND=keyring.backends.fail.Keyring (Just in case..)
- $ 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 and start two sessions for better testing
- $ firefox http://localhost:5000/ http://127.0.0.1:5000/

There is ready made kyselmä named 'kysdemo' for testing.





DONE:
- 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
...

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/