summaryrefslogtreecommitdiff
path: root/README.md
blob: c3c090e0f83069f5bdc7e2ac7eb60bc48eaa5c3f (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
# kyselma
	Kyselmä - kysele, vastaile ja tutki tuloksia

TO GET IT RUNNING:

[Note that quide in the course material works as well]<https://hy-tsoha.github.io/materiaali/aikataulu/>
	
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 &

Install poetry if nessesary. (refer your distro)
- $ pip install --user poetry
- $ pipx install poetry

Clone the source & install poetry dependencies
- $ git clone https://github.com/triionhe/kyselma.git
- $ cd kyselma
- $ export PYTHON_KEYRING_BACKEND=keyring.backends.fail.Keyring (Just in case..)
- $ poetry install --no-root

Get database ready
- $ psql < SCHEMA.sql (BE CAREFUL! This drops some tables.)
	
Start the app in poetry virtual environment
- $ SQLALCHEMY_DATABASE_URI="postgresql:///$USER" SECRET_KEY=29347884 poetry run 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:
- 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
- Tietoturvaseikat?
...

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/