Compare commits

..

32 Commits

Author SHA1 Message Date
Jan
08c78bb568 Merge pull request 'Adding disclaimer as seperate site' (#17) from working into main
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #17
2024-11-19 16:00:02 +01:00
Jan
807d104d06 Adding disclaimer as seperate site 2024-11-19 15:58:23 +01:00
Jan
09d26bd73f Merge pull request 'Added new disclaimer Video' (#16) from working into main
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #16
2024-11-19 14:24:22 +01:00
Jan
053aa4bd5a Added new disclaimer Video 2024-11-19 14:22:55 +01:00
Jan
1d1f5be753 Merge pull request 'Removed the hopefuly last placeholdervideo' (#15) from working into main
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #15
2024-11-13 11:22:40 +01:00
Jan
40e24501f6 Removed the hopefuly last placeholdervideo 2024-11-13 11:16:41 +01:00
Jan
aedc1cf9ea Merge pull request 'letzte kleine fixes' (#14) from working into main
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #14
2024-11-13 11:11:57 +01:00
Jan
522d10f422 Small file naming typo fixed 2024-11-13 11:05:52 +01:00
Jan
789d49a2c9 Fixed error in p3info text 2024-11-13 11:02:41 +01:00
Jan
f548c60157 Merge pull request 'final study push (hopefully)' (#13) from working into main
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #13
2024-11-12 16:19:17 +01:00
Jan
86c5f3fdea Final changes (deploy without exp videos) 2024-11-12 16:17:07 +01:00
Jan
26c28cd0da 0044 as learning phase video now 2024-10-23 15:51:42 +02:00
Jan
da2c959ba7 Merge pull request 'new Videos and task 3 Text corrected' (#12) from working into main
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #12
2024-10-23 14:22:04 +02:00
Jan
e1b814da4f new Videos and task 3 Text corrected 2024-10-23 14:20:07 +02:00
Jan
df80e62707 Merge pull request 'video management' (#11) from working into main
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #11
2024-10-13 16:14:08 +02:00
Jan
edcd32db47 small improvement to video management page 2024-10-13 16:13:03 +02:00
Jan
e253586467 video management page now exists 2024-10-13 16:09:42 +02:00
Jan
45d2874999 Merge pull request 'More fixes, those are the final texts !!!' (#10) from working into main
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #10
2024-10-13 15:43:46 +02:00
Jan
728c282a3d try to remove database via git 2024-10-13 15:42:25 +02:00
Jan
23e6ee55c6 multiple choice bug fixed 2024-10-13 15:29:30 +02:00
Jan
52db4cc0fb fixed small bug 2024-10-13 15:22:18 +02:00
Jan
2702ce3c3c password is checked via hash now 2024-10-13 15:18:14 +02:00
Jan
39bf5861b8 Merge pull request 'small fixes' (#9) from working into main
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #9
2024-10-07 12:18:33 +02:00
Jan
9bbbd39c9b Merge pull request 'added impressum page' (#8) from working into main
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #8
2024-10-07 10:18:59 +02:00
Jan
a329baeb78 Merge pull request 'Feedback von Ella' (#7) from working into main
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #7
2024-10-03 17:41:58 +02:00
Jan
97cb17733e Merge pull request 'working' (#6) from working into main
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #6
2024-10-02 13:23:44 +02:00
Jan
64d89a8821 Merge pull request 'working' (#5) from working into main
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #5
2024-10-02 12:25:24 +02:00
Jan
f29ba7c8e0 Merge pull request 'update für Feedback' (#4) from working into main
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #4
2024-09-23 15:17:21 +02:00
Jan
915b69a775 Merge pull request 'working into main, userstudy mostly finished' (#3) from working into main
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #3
2024-09-19 15:26:30 +02:00
Jan
cf630bc040 Merge pull request 'Cleanup, now redirects work again' (#2) from working into main
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #2
2024-08-20 17:12:40 +02:00
Jan
fb82d4c19a Merge pull request 'Merging Latest changes into main' (#1) from working into main
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #1
2024-08-20 17:03:27 +02:00
be84a7e8b3 Add CI
All checks were successful
continuous-integration/drone/push Build is passing
2024-07-02 12:00:33 +02:00
39 changed files with 1439 additions and 121 deletions

30
.drone.yml Normal file
View File

@@ -0,0 +1,30 @@
kind: pipeline
name: default
steps:
- name: deploy
image: registry.eterna.leafbla.de/pelipper
settings:
ssh_key:
from_secret: rsync_key
source: slaeforms/
destination: pelipper@oreburgh.leafbla.de:/srv/docker/janapp/slaeforms/
- name: restart
image: registry.eterna.leafbla.de/drowzee
settings:
host: oreburgh.leafbla.de
username: psyduck
key:
from_secret: deploy_key
command: |
cd /srv/docker/janapp;
docker compose down;
docker compose up --build -d;
trigger:
branch:
- main
image_pull_secrets:
- docker_config

View File

@@ -15,9 +15,9 @@ from sqlalchemy.orm import DeclarativeBase
import os
import csv
from zipfile import ZipFile
import hashlib
random_order = True
# activate environment: cd C:\Users\Jan\Google Drive\Master Stuff\Code\SLAEForms Testing\.venv\Scripts\
# activate environment: cd C:\...\...\....\...\Code\SLAEForms Testing\.venv\Scripts\
# then this: activate
#SETUP--------------------------------------------------
@@ -41,7 +41,7 @@ app.secret_key = b"29fe9e8edd407c5491d4f1c05632d9fa33e26ed8734a3f5e080ebac3772a5
UPLOAD_FOLDER = 'uploads'
EXPORT_FOLDER = 'exports'
PASSWORD = '#1ACGmsjd'
PASSWORD = 'd5aff9fc14d1f20f4ccddaa8b4f2c1765228b74ed0b1dfb868bf1064e0d655e2'
CONFIGFILE = 'userstudy1.json'
# CONFIGFILE = 'test.json'
# CONFIGFILE = 'default.json'
@@ -191,9 +191,10 @@ def startpage():
case "single_video":
order = list(config[name]["stimuli"]["list"]) # order = list of simuli keys
print("order: ",order)
if config[name]["stimuli"]["order"] == "random":
random.shuffle(order) #in random order
session["block_order"][name] = order
if "order" in config[name]["stimuli"]:
if config[name]["stimuli"]["order"] == "random":
random.shuffle(order) #in random order
session["block_order"][name] = order
case "double_video":
order = [] # order = list of stimuli keys
list_1 = list(config[name]["stimuli"]["list_1"])
@@ -540,7 +541,7 @@ def export_all_videos():
with ZipFile('zip_exports/all_videos.zip', 'w') as zipf: #no compression, need to add zipfile.ZIP_DEFLATED for compression
zipdir('uploads/', zipf)
return send_file("zip_exports/all_videos.zip", as_attachment=False, download_name="all_tables.zip")
return send_file("zip_exports/all_videos.zip", as_attachment=False, download_name="all_videos.zip")
def create_csv(table, filename):
@@ -615,6 +616,39 @@ def show_tables():
tables = meta.tables
return render_template('show_tables.html', tables=tables)
@app.route("/manage_uploads")
def manage_uploads():
if not session.get("logged_in"):
return redirect("/login")
videodir = "uploads/"
videolist = os.listdir(videodir)
num_videos = len(videolist)
return render_template("manage_uploads.html", videolist=videolist, num_videos=num_videos)
@app.route("/deleteuploads", methods=["POST"])
def deleteuploads():
if not session.get("logged_in"):
return redirect("/login")
print("deleting all videos")
videodir = "uploads/"
for video in os.listdir(videodir):
os.remove(os.path.join(videodir, video))
print("videos deleted")
return redirect("/all_links")
@app.route("/task3")
def task3():
return render_template("task3.html")
# Root page -----------------------------
@@ -622,7 +656,8 @@ def show_tables():
def login():
if request.method == "POST":
if request.form["password"] == PASSWORD:
pwhash = hashlib.sha256(request.form["password"].encode('utf-8')).hexdigest()
if pwhash == PASSWORD:
session["logged_in"] = True
return redirect(url_for("all_links"))

View File

@@ -88,7 +88,7 @@ dialog .iframe-container {
max-width: 1690px;
/* Maximum width to keep it from getting too wide on large screens */
padding: 20px;
background-color: #7b8cdb;
background-color: #b6c3ff; /* used to be 7b8cdb */
/* Just for visual differentiation */
box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
}
@@ -143,6 +143,10 @@ label {
width: 60%;
}
button {
border: 1px solid #000;
}
/* buttons */
.buttondisable {
filter: invert(65%);
@@ -160,6 +164,7 @@ label {
/* Optional: rounds the corners of the button */
width: auto;
float: right;
border: 1px solid #000;
}
#submitbutton:hover {
@@ -219,7 +224,7 @@ h2 {
height: 70px;
/* Set a specific height for the buttons */
background-color: #cae4ff;
border: none;
border: 1px solid #000;
color: white;
padding: 10px 20px;
margin: 0 10px;
@@ -269,6 +274,7 @@ video {
width: auto;
height: auto;
margin: auto auto;
display: block;
}
iframe {
@@ -285,12 +291,29 @@ iframe {
}
.iframe-container {
position: relative;
/*padding-bottom: 56.25%;*/
/* 16:9 */
padding-bottom: 100%;
/* 1:1 */
height: 0;
}
.iframe-container2 {
position: relative;
padding-bottom: 56.25%;
/* 16:9 */
height: 0;
}
.iframe-container2 iframe {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
}
.video-container {
max-width: 100%;
position: relative;

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -12,11 +12,6 @@
<div class="container">
<h2>Datenschutzerklärung</h2>
<video controls>
<source src="{{ url_for('static', filename='videos/platzhalter-video.mp4') }}" type="video/mp4">
</video>
<div class="spacer" aria-hidden="true" style="height:20px"></div>
<div class="textblock">
<h3>
Information betroffener Personen zur Verarbeitung personenbezogener Daten

View File

@@ -13,6 +13,9 @@
<h2>Impressum</h2>
<div class="textblock">
<p>
Datenschutzerklärung: <a href="{{ url_for('datenschutz') }}" target="_blank">Datenschutz</a>
</p>
<p>
Verantwortlicher für slaeforms.leafbla.de: Jan Dickmann, zusammen mit dem DFKI Saarbrücken, Affective Computing Group
</p>

View File

@@ -12,24 +12,19 @@
<div class="container">
<h2>SLAEFORMS Gebärdensprachavatar Studie</h2>
<video controls>
<source src="{{ url_for('static', filename='videos/platzhalter-video.mp4') }}" type="video/mp4">
</video>
<div class="spacer" aria-hidden="true" style="height:20px"></div>
<div class="spacer" aria-hidden="true" style="height:20px"></div>
<div class="textblock">
<p style="font-size: 22px;">
Bei allen Aufgaben in dieser Studie gibt es ein Erklärvideo, in dem die Aufgabe und die Antwortmöglichkeiten in Gebärdensprache erklärt werden.
Falls Sie Fragen haben oder eine Aufgabe nicht verstehen, können Sie den "Gebärdensprach"-Button auf der rechten Seite des Bildschirms klicken, um das Video und den Erklärtext zu sehen.
Bei allen Aufgaben in dieser Studie gibt es Texte, in denen die Aufgaben und die Antwortmöglichkeiten erklärt werden.
Falls Sie Fragen haben oder eine Aufgabe nicht verstehen, können Sie den "Info"-Button auf der rechten Seite des Bildschirms klicken, um den Erklärtext zu sehen.
Sie können den Button nochmal anklicken, um wieder zur Aufgabe zurückzukommen.
</p>
<div style="margin: auto; display: block; max-width: 90px;">
<button style="margin: auto; max-width: 90px;"><img class="infoButtonIcon" id="buttonInfoIcon"
src="{{ url_for('static', filename='icons/sl-icon.png')}}" alt="sign-language-icon"></button>
src="{{ url_for('static', filename='icons/info-icon.png')}}" alt="info-icon"></button>
</div>
<p style="font-size: 22px; text-align: center;">
Der Gebärdensprach-Button.
Das ist der Info-Button.
</p>
</div>

View File

@@ -0,0 +1,52 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<link rel="stylesheet" type="text/css" href="{{ url_for('static', filename='styles.css')}}"" /> <!-- styles.css {{ url_for('static', filename='styles.css')}}-->
<link rel=" shortcut icon" href="{{ url_for('static', filename='icons/favicon.ico') }}">
<title>DGS Avatar Study</title>
</head>
<body>
<div class="container" style="height: 100%; font-size: 22px;">
<h2>Upload management</h2>
<div class="textblock">
<p>
Anzahl Videos: {{ num_videos }}
</p>
<p>
Die aktuellen Videos:
</p>
</div>
{% for video in videolist %}
<p>{{video}}</p>
{% endfor %}
<div class="textblock">
<p>
Download <a href="{{ url_for('export_all_videos') }}" target="_blank">hier</a>.
</p>
</div>
<form class="dsgvoform" action="{{ url_for('deleteuploads') }}" method="post">
<label for="terms-and-conditions">
<input class="inline" id="terms-and-conditions" type="checkbox" required name="terms-and-conditions" />
Alle Videos löschen.
</label>
<div class="button-container">
<button id="submitbutton" type="submit">Löschen</button>
</div>
</form>
<div class="spacer" aria-hidden="true" style="height:50px"></div>
</div>
</body>
<footer>
<div class="container" style="font-size: 19px;">
<a href="{{ url_for('startpage') }}" target="_blank">Startseite</a>
<a href="{{ url_for('impressum') }}" target="_blank">Impressum</a>
<a href="{{ url_for('datenschutz') }}" target="_blank">Datenschutz</a>
</div>
</footer>
</html>

View File

@@ -0,0 +1,77 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<link rel="stylesheet" type="text/css" href="{{ url_for('static', filename='styles.css')}}"" /> <!-- styles.css {{ url_for('static', filename='styles.css')}}-->
<link rel=" shortcut icon" href="{{ url_for('static', filename='icons/favicon.ico') }}">
<title>DGS Avatar Study</title>
</head>
<body>
<div class="container">
<h2>SLAEFORMS Gebärdensprachavatar Studie</h2>
<div class="textblock">
<div style="margin: auto; font-size: 20px;">
<p>
Hallo und willkommen zu dieser Studie, danke für Ihre Teilnahme.
</p>
<p>
In dieser Studie geht es um die Entwicklung von Gebärdensprachavataren.
</p>
<p>
Bitte beachten Sie, dass diese Avatare noch in einer frühen Entwicklungsphase und noch nicht für den
Gebrauch in einer App/einem Computerprogramm oder auf einer Webseite geeignet sind. In dieser Studie
geht es darum, einzelne Aspekte der Avatare und neue technologische Ansätze zu testen. Dementsprechend
haben die Avatare noch viele offensichtliche Schwächen, wie zum Beispiel, dass bisher nur die Arme und
der Oberkörper, aber nicht das Gesicht animiert ist. Bitte bewerten Sie nur die Qualität der Hände und
Arme.
</p>
<p>
Diese Studie richtet sich an Menschen, die Gebärdensprache beherrschen, insbesondere gehörlose Menschen.
Nehmen Sie bitte nur Teil, wenn Sie (Deutsche) Gebärdensprache beherrschen.
Die Studie dauert ca. 20 Minuten.
</p>
<p>
Während der Studie werden sie sich Videos anschauen, diese bewerten und Feedback dazu geben können.
Verwenden Sie deshalb bitte, wenn möglich ein Gerät mit einem großen Bildschirm (Laptop, PC, Tablet) für
Ihre Teilnahme, damit Sie die Videos in ausreichender Größe sehen können.
</p>
<p>
Sie haben während der Studie die Möglichkeit (optional) Videofeedback zu geben, dazu brauchen sie eine
Webcam. Die Videos werden nicht veröffentlicht und nur Übersetzern zur Auswertung der Studienergebnisse
gezeigt.
</p>
<p>
Das Laden der Seiten kann manchmal einige Sekunden dauern. Falls es zu einem Fehler kommen sollte und ein Video nicht geladen wird, versuchen Sie bitte die Seite neu zu laden.
</p>
<p>
Für jeden Teil der Studie gibt es einen Text, der die Fragestellung und die Antwortmöglichkeiten erklärt. Falls Sie den Text während der Studie nochmal sehen möchten, können Sie es
über den „Info“-Knopf auf der rechten Seite aufrufen.
</p>
<p>
Bitte versuchen sie während der Studie nicht auf die vorherige Seite "zurück" zu gehen, da sie nicht zu vorherigen Fragen zurück können.
</p>
</div>
</div>
<form class="dsgvoform" action="{{ url_for('sendpage') }}" method="post">
<div class="button-container">
<button id="submitbutton" type="submit">Weiter</button>
</div>
</form>
<div class="spacer" aria-hidden="true" style="height:80px"></div>
</div>
</body>
<footer>
<div class="container" style="font-size: 19px;">
<a href="{{ url_for('startpage') }}" target="_blank">Startseite</a>
<a href="{{ url_for('impressum') }}" target="_blank">Impressum</a>
<a href="{{ url_for('datenschutz') }}" target="_blank">Datenschutz</a>
</div>
</footer>
</html>

View File

@@ -12,10 +12,6 @@
<div class="container">
<h2>SLAEFORMS Gebärdensprachavatar Studie</h2>
<video controls>
<source src="{{ url_for('static', filename='videos/platzhalter-video.mp4') }}" type="video/mp4">
</video>
<div class="spacer" aria-hidden="true" style="height:20px"></div>
<div class="textblock">
{% include "p1infos.html" %}

View File

@@ -1,7 +1,7 @@
<div style="margin: auto; max-width: 80%; font-size: 20px;">
<p>Studie Teil 2:</p>
<p>Im Folgenden sehen Sie zwei Videos, in denen der gleiche Satz mit unterschiedlichen Formulierungen gebärdet wird.</p>
<p>Der folgende Satz wird gebärdet: Gleis 18, Einfahrt RE 77 Richtung Köln Hauptbahnhof über Hannover, Abfahrt 3:44 Uhr.</p>
<p>Der folgende Satz wird gebärdet: Einfahrt RE 77 Richtung Köln Hauptbahnhof über Hannover, Abfahrt 3:44 Uhr.</p>
<p>Bitte verwenden Sie die Punkteskala, um zu bewerten, welches der beiden Videos Sie besser finden.</p>
<ol start="1">
<li>Welche Formulierung war natürlicher?</li>

View File

@@ -12,10 +12,6 @@
<div class="container">
<h2>SLAEFORMS Gebärdensprachavatar Studie</h2>
<video controls>
<source src="{{ url_for('static', filename='videos/platzhalter-video.mp4') }}" type="video/mp4">
</video>
<div class="spacer" aria-hidden="true" style="height:20px"></div>
<div class="textblock">
{% include "p2infos.html" %}

View File

@@ -11,10 +11,10 @@
</ol>
<p>Die Antwortmöglichkeiten sind jedes Mal:</p>
<ol start="1">
<li>Links</li>
<li>Eher links</li>
<li>Beide gleich</li>
<li>Eher rechts</li>
<li>Rechts</li>
<li>Trifft überhaupt nicht zu</li>
<li>Trifft eher nicht zu</li>
<li>Ich weiß nicht</li>
<li>Trifft eher zu</li>
<li>Trifft vollkommen zu</li>
</ol>
</div>

View File

@@ -12,10 +12,6 @@
<div class="container">
<h2>SLAEFORMS Gebärdensprachavatar Studie</h2>
<video controls>
<source src="{{ url_for('static', filename='videos/platzhalter-video.mp4') }}" type="video/mp4">
</video>
<div class="spacer" aria-hidden="true" style="height:20px"></div>
<div class="textblock">
{% include "p3infos.html" %}

View File

@@ -13,6 +13,13 @@
allowfullscreen></iframe>
</div>
{% elif (embed == "vimeo") %}
<div class="iframe-container">
<iframe title="vimeo-player" class="center" src="{{ video_url }}" frameborder="0" allowfullscreen></iframe>
</div>
{% elif (embed == "no") %}
<video controls>
@@ -42,8 +49,6 @@
</div>
</div>
<div class="dv_half">
<div class="iframe-container">
<iframe class="center" src="{{ video_url2 }}" title="YouTube video player" frameborder="0"
@@ -53,6 +58,25 @@
</div>
</div>
{% elif (embed == "vimeo") %}
<div class="double_video_container">
<div class="dv_half">
<div class="iframe-container">
<iframe title="vimeo-player" class="center" src="{{ video_url1 }}" frameborder="0" allowfullscreen></iframe>
</div>
</div>
<div class="dv_half">
<div class="iframe-container">
<iframe title="vimeo-player" class="center" src="{{ video_url2 }}" frameborder="0" allowfullscreen></iframe>
</div>
</div>
</div>
{% elif (embed == "no") %}
<div class="double_video_container">
<div class="dv_half">
@@ -121,9 +145,11 @@ step={{question["step"]}}
<button class="dialogBtn" autofocus><img class="infoButtonIcon" id="buttonClose"
src="{{ url_for('static', filename='icons/x-icon.png')}}" alt="Delete Icon"></button>
{% if ("videourl" in infovideo) %}
<video controls>
<source src="{{ url_for('static', filename=infovideo['videourl']) }}" type="video/mp4">
</video>
{% endif %}
<div class="dialogTextContainer">
{% if ("infotext" in infovideo) %}
<p>{{ infovideo["infotext"] }}</p>
@@ -134,7 +160,7 @@ step={{question["step"]}}
</div>
</dialog>
<button class="dialogBtn"><img class="infoButtonIcon" id="buttonInfoIcon"
src="{{ url_for('static', filename='icons/sl-icon.png')}}" alt="Info Icon"></button>
src="{{ url_for('static', filename='icons/info-icon.png')}}" alt="Info Icon"></button>
<script src="{{ url_for('static', filename='infoDialogScript.js')}}"></script>
{% endif %}
@@ -157,7 +183,7 @@ step={{question["step"]}}
<div class="spacer" aria-hidden="true" style="height:30px"></div>
<div class="questioncontainer">
<h3 style="margin: auto;">{{ questions[question]['text']}}</h3>
<h3 style="margin: auto;">{{ questions[question]['text']}}</h3>
</div>
<div class="spacer" aria-hidden="true" style="height:60px"></div>
@@ -165,7 +191,7 @@ step={{question["step"]}}
{% elif (questions[question]["type"] == "likert") %}
<div class="likertcontainer">
<div class="questioncontainer">
<h3>{{ questions[question]['text']}}</h3>
<h3>{{ questions[question]['text']}}</h3>
</div>
<div class="likert" style="--likert-rows: {{ questions[question]['points']|length() }}">
{% for point in questions[question]["points"] %}
@@ -184,7 +210,7 @@ step={{question["step"]}}
{% elif (questions[question]["type"] == "likert-basic") %}
<div class="questioncontainer">
<h3>{{ questions[question]['text']}}</h3>
<h3>{{ questions[question]['text']}}</h3>
</div>
<div class="normal-likert-container">
@@ -262,7 +288,8 @@ step={{question["step"]}}
{% elif (questions[question]["type"] == "multiplechoice") %}
<div class="compressWidth">
<label>
<p>
<div>
{{ questions[question]['text']}}
{% for point in questions[question]["points"] %}
@@ -272,7 +299,8 @@ step={{question["step"]}}
{{ questions[question]['points'][point]['text']}}</label>
{% endfor %}
</label>
</div>
</p>
</div>
<div class="spacer" aria-hidden="true" style="height:30px"></div>
@@ -319,13 +347,13 @@ step={{question["step"]}}
<div class="spacer" aria-hidden="true" style="height:30px"></div>
<div class="button-container">
{% if ("lastquestion" in stimlui) %}
<button id="submitbutton" type="submit">Studie Beenden</button>
<!-- TODO maybe I want to use this instead: <button id="submitbutton" type="submit">Submit</button> /// <input class="inputs" id="submitbutton" type="submit" value="submit" />-->
{% else %}
<button id="submitbutton" type="submit">Weiter</button>
<!-- TODO maybe I want to use this instead: <button id="submitbutton" type="submit">Submit</button> /// <input class="inputs" id="submitbutton" type="submit" value="submit" />-->
{% endif %}
{% if ("lastquestion" in stimlui) %}
<button id="submitbutton" type="submit">Studie Beenden</button>
<!-- TODO maybe I want to use this instead: <button id="submitbutton" type="submit">Submit</button> /// <input class="inputs" id="submitbutton" type="submit" value="submit" />-->
{% else %}
<button id="submitbutton" type="submit">Weiter</button>
<!-- TODO maybe I want to use this instead: <button id="submitbutton" type="submit">Submit</button> /// <input class="inputs" id="submitbutton" type="submit" value="submit" />-->
{% endif %}
</div>
</form>
@@ -334,9 +362,9 @@ step={{question["step"]}}
</body>
<footer>
<div class="container" style="font-size: 19px;">
<a href="{{ url_for('startpage') }}" target="_blank">Startseite</a>
<a href="{{ url_for('impressum') }}" target="_blank">Impressum</a>
<a href="{{ url_for('datenschutz') }}" target="_blank">Datenschutz</a>
<a href="{{ url_for('startpage') }}" target="_blank">Startseite</a>
<a href="{{ url_for('impressum') }}" target="_blank">Impressum</a>
<a href="{{ url_for('datenschutz') }}" target="_blank">Datenschutz</a>
</div>
</footer>

View File

@@ -12,10 +12,13 @@
<div class="container" style="height: 100%; font-size: 22px;">
<h2>SLAEFORMS Gebärdensprachavatar Studie</h2>
<video controls>
<source src="{{ url_for('static', filename='videos/platzhalter-video.mp4') }}" type="video/mp4">
</video>
<div class="spacer" aria-hidden="true" style="height:20px"></div>
<div class="iframe-container2">
<iframe title="vimeo-player" src="https://player.vimeo.com/video/1031133490?h=bfa5b559f9" frameborder="0"
allowfullscreen></iframe>
</div>
<div class="textblock">
<p>
@@ -25,39 +28,21 @@
In dieser Studie geht es um die Entwicklung von Gebärdensprachavataren.
</p>
<p>
Bitte beachten Sie, dass diese Avatare noch in einer frühen Entwicklungsphase und noch nicht für den
Gebrauch in einer App/einem Computerprogramm oder auf einer Webseite geeignet sind. In dieser Studie
geht es darum, einzelne Aspekte der Avatare und neue technologische Ansätze zu testen. Dementsprechend
haben die Avatare noch viele offensichtliche Schwächen, wie zum Beispiel, dass bisher nur die Arme und
der Oberkörper, aber nicht das Gesicht animiert ist. Bitte bewerten Sie nur die Qualität der Hände und
Arme.
Bitte berücksichtige, dass die Avatare, die wir zeigen, in keiner Weise der Qualität entsprechen, wie
sie genutzt werden sollen. Sie sind nur Beispiele, die niemals in einer Anwendung zu sehen sein werden.
Es geht darum, dass wir die Darstellung der Hände und Arme testen wollen. Bitte bewertet deshalb nicht
Darstellungsqualität und lasst euch nicht davon beeinflussen. Außerdem möchten wir testen, wie die
Nutzung einer Feedback-Funktion per Videoaufnahme verwendet werden kann.
</p>
<p>
Diese Studie richtet sich an Menschen, die Gebärdensprache beherrschen, insbesondere gehörlose Menschen.
Nehmen Sie bitte nur Teil, wenn Sie (Deutsche) Gebärdensprache beherrschen.
Die Studie dauert ca. 20 Minuten.
Die Rückmeldung von euch ist wichtig und ihr könnt das in Gebärdensprache machen.
Die Teilnahme wird nur für die Auswertung genutzt. In keiner Weise wird etwas von euch veröffentlicht, auch nicht eure Videos.
Alle weiteren Infos findet ihr im Text.
</p>
<p>
Während der Studie werden sie sich Videos anschauen, diese bewerten und Feedback dazu geben können.
Verwenden Sie deshalb bitte, wenn möglich ein Gerät mit einem großen Bildschirm (Laptop, PC, Tablet) für
Ihre Teilnahme, damit Sie die Videos in ausreichender Größe sehen können.
</p>
<p>
Sie haben während der Studie die Möglichkeit (optional) Videofeedback zu geben, dazu brauchen sie eine
Webcam. Die Videos werden nicht veröffentlicht und nur Übersetzern zur Auswertung der Studienergebnisse
gezeigt.
</p>
<p>
Das Laden der Seiten kann manchmal einige Sekunden dauern. Falls es zu einem Fehler kommen sollte und ein Video nicht geladen wird, versuchen Sie bitte die Seite neu zu laden.
</p>
<p>
Für jeden Teil der Studie gibt es ein Video, das die Fragestellung und die Antwortmöglichkeiten in
Gebärdensprache erklärt. Falls Sie das Video während der Studie nochmal sehen möchten, können Sie es
über den „Info“-Knopf auf der rechten Seite aufrufen.
</p>
<p>
Bitte versuchen sie während der Studie nicht auf die vorherige Seite "zurück" zu gehen, da sie nicht zu vorherigen Fragen zurück können.
Danke für eure Teilnahme, die im Rahmen eine Abschlussarbeit erfolgt. Weitere Infos dazu findet ihr im Impressum.
</p>
<div class="spacer" aria-hidden="true" style="height:20px"></div>
<p>
Die Teilnahme an dieser Studie ist komplett freiwillig, Sie können die Studie zu jedem Zeitpunkt
abbrechen, indem Sie die Seite einfach schließen. Sie können außerdem die Löschung aller Daten bei uns
@@ -78,9 +63,9 @@
</body>
<footer>
<div class="container" style="font-size: 19px;">
<a href="{{ url_for('startpage') }}" target="_blank">Startseite</a>
<a href="{{ url_for('impressum') }}" target="_blank">Impressum</a>
<a href="{{ url_for('datenschutz') }}" target="_blank">Datenschutz</a>
<a href="{{ url_for('startpage') }}" target="_blank">Startseite</a>
<a href="{{ url_for('impressum') }}" target="_blank">Impressum</a>
<a href="{{ url_for('datenschutz') }}" target="_blank">Datenschutz</a>
</div>
</footer>

View File

@@ -0,0 +1,34 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<link rel="stylesheet" type="text/css" href="{{ url_for('static', filename='styles.css')}}" />
<!-- styles.css {{ url_for('static', filename='styles.css')}}-->
<title>Task 3 Videos</title>
</head>
<body>
<div class="container">
<div class="double_video_container">
<div class="dv_half">
<div class="iframe-container">
<video controls>
<source src="{{ url_for('static', filename='videos/0009-intro-inflected.mp4') }}" type="video/mp4">
</video>
</div>
</div>
<div class="dv_half">
<div class="iframe-container">
<video controls>
<source src="{{ url_for('static', filename='videos/0009-variation-inflected.mp4') }}" type="video/mp4">
</video>
</div>
</div>
</div>
<div class="spacer" aria-hidden="true" style="height:30px"></div>
</div>
</body>
</html>

File diff suppressed because it is too large Load Diff

View File

@@ -1,4 +1,8 @@
{
"Block -1":{
"type": "SinglePage",
"template": "oldstart.html"
},
"Block 0":{
"type": "SinglePage",
"template": "intropage.html"
@@ -7,12 +11,10 @@
"type": "TaskTemplate",
"template": "standard_template.html",
"stimuli": {
"type": "single_video",
"type": "empty",
"list": {
"video_1": "platzhalter-video.mp4"
},
"configuration": {
"embed": "no"
"empty_stimulus": ""
}
},
"questions": {
@@ -225,7 +227,6 @@
}
},
"infovideo": {
"videourl": "videos/platzhalter-video.mp4",
"htmlblock": "dqinfos.html",
"configuration": {
"embed": "no"
@@ -295,9 +296,9 @@
"type": "single_video",
"order": "random",
"list": {
"video_1": "0009-inflected.mp4",
"video_2": "0009-mocap.mp4",
"video_3": "0009-simple.mp4"
"video_1": "0044-inflected.mp4",
"video_2": "0044-mocap.mp4",
"video_3": "0044-simple.mp4"
},
"configuration": {
"embed": "no"
@@ -432,7 +433,6 @@
}
},
"infovideo": {
"videourl": "videos/platzhalter-video.mp4",
"htmlblock": "p1infos.html",
"configuration": {
"embed": "no"
@@ -622,7 +622,6 @@
}
},
"infovideo": {
"videourl": "videos/platzhalter-video.mp4",
"htmlblock": "p1infos.html",
"configuration": {
"embed": "no"
@@ -666,10 +665,10 @@
"stimuli": {
"type": "double_video",
"list_1": {
"video_1": "0009-inflected.mp4"
"video_1": "0009-intro-inflected.mp4"
},
"list_2": {
"video_1": "0009-variation-wide.mp4"
"video_1": "0009-variation-inflected.mp4"
},
"configuration": {
"embed": "no"
@@ -679,7 +678,7 @@
"question0": {
"type": "textblock",
"name": "fragestellung",
"text": "Der folgende Satz wird gebärdet: Gleis 18, Einfahrt RE 77 Richtung Köln Hauptbahnhof über Hannover, Abfahrt 3:44 Uhr."
"text": "Der folgende Satz wird gebärdet: Einfahrt RE 77 Richtung Köln Hauptbahnhof über Hannover, Abfahrt 3:44 Uhr."
},
"question1": {
"type": "likert-basic",
@@ -808,7 +807,6 @@
}
},
"infovideo": {
"videourl": "videos/platzhalter-video.mp4",
"htmlblock": "p2infos.html",
"configuration": {
"embed": "no"
@@ -1000,7 +998,6 @@
}
},
"infovideo": {
"videourl": "videos/platzhalter-video.mp4",
"htmlblock": "p3infos.html",
"configuration": {
"embed": "no"
@@ -1042,13 +1039,9 @@
"type": "TaskTemplate",
"template": "standard_template.html",
"stimuli": {
"type": "single_video",
"order": "random",
"type": "empty",
"list": {
"video_1": "platzhalter-video.mp4"
},
"configuration": {
"embed": "no"
"empty_stimulus": ""
},
"lastquestion": "true"
},