Compare commits
11 commits
8bb37bbc21
...
main
Author | SHA1 | Date | |
---|---|---|---|
3b83ebf3fb | |||
a626e32cbe | |||
4c01e68264 | |||
7026909c61 | |||
d01a70f925 | |||
41143c361b | |||
3f6b622088 | |||
d5c6aad834 | |||
fe5b563139 | |||
ae82024e94 | |||
c5b595ad40 |
10 changed files with 63 additions and 5 deletions
|
@ -4,6 +4,9 @@ WORKDIR /app
|
||||||
|
|
||||||
COPY requirements.txt .
|
COPY requirements.txt .
|
||||||
|
|
||||||
|
RUN apt-get -y update
|
||||||
|
RUN apt-get -y install sqlite3
|
||||||
|
|
||||||
RUN pip install -r requirements.txt
|
RUN pip install -r requirements.txt
|
||||||
|
|
||||||
COPY /src .
|
COPY /src .
|
||||||
|
|
|
@ -6,6 +6,8 @@ RUN apt-get -y update && apt-get -y upgrade
|
||||||
|
|
||||||
COPY requirements.txt .
|
COPY requirements.txt .
|
||||||
|
|
||||||
|
RUN apt-get -y install sqlite3
|
||||||
|
|
||||||
RUN pip install -r requirements.txt
|
RUN pip install -r requirements.txt
|
||||||
|
|
||||||
COPY /src .
|
COPY /src .
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
autopep8==1.5.7
|
||||||
blinker==1.4
|
blinker==1.4
|
||||||
click==7.1.2
|
click==7.1.2
|
||||||
Deprecated==1.2.12
|
Deprecated==1.2.12
|
||||||
|
@ -16,11 +17,13 @@ MarkupSafe==1.1.1
|
||||||
passlib==1.7.4
|
passlib==1.7.4
|
||||||
pendulum==2.1.2
|
pendulum==2.1.2
|
||||||
py-buzz==1.0.3
|
py-buzz==1.0.3
|
||||||
|
pycodestyle==2.7.0
|
||||||
PyJWT==2.1.0
|
PyJWT==2.1.0
|
||||||
python-dateutil==2.8.1
|
python-dateutil==2.8.1
|
||||||
python-dotenv==0.17.1
|
python-dotenv==0.17.1
|
||||||
pytzdata==2020.1
|
pytzdata==2020.1
|
||||||
six==1.16.0
|
six==1.16.0
|
||||||
SQLAlchemy==1.4.15
|
SQLAlchemy==1.4.15
|
||||||
|
toml==0.10.2
|
||||||
Werkzeug==1.0.1
|
Werkzeug==1.0.1
|
||||||
wrapt==1.12.1
|
wrapt==1.12.1
|
||||||
|
|
|
@ -97,3 +97,13 @@ h1 {
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
user-select: none;
|
user-select: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.study-finished {
|
||||||
|
background-color: var(--primary);
|
||||||
|
padding: 0.5em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.study-finished > p {
|
||||||
|
color: var(--error);
|
||||||
|
font-size: 2em;
|
||||||
|
}
|
||||||
|
|
|
@ -3,6 +3,7 @@ import "../App.css";
|
||||||
import { Button } from "./Button";
|
import { Button } from "./Button";
|
||||||
import "./HeroSection.css";
|
import "./HeroSection.css";
|
||||||
import { useAuth } from "../auth/AuthProvider";
|
import { useAuth } from "../auth/AuthProvider";
|
||||||
|
import StudyFinished from "./StudyFinished";
|
||||||
|
|
||||||
export default function HeroSection() {
|
export default function HeroSection() {
|
||||||
const [isLoggedIn] = useAuth();
|
const [isLoggedIn] = useAuth();
|
||||||
|
@ -10,6 +11,7 @@ export default function HeroSection() {
|
||||||
return (
|
return (
|
||||||
<div className="hero-container">
|
<div className="hero-container">
|
||||||
<h1>Herzlich Willkommen</h1>
|
<h1>Herzlich Willkommen</h1>
|
||||||
|
<StudyFinished />
|
||||||
<div className="hero-btns">
|
<div className="hero-btns">
|
||||||
{isLoggedIn ? (
|
{isLoggedIn ? (
|
||||||
<Button
|
<Button
|
||||||
|
|
11
frontend/src/components/StudyFinished.jsx
Normal file
11
frontend/src/components/StudyFinished.jsx
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
import React from "react";
|
||||||
|
import "../App.css"
|
||||||
|
|
||||||
|
export default function StudyFinished() {
|
||||||
|
return (
|
||||||
|
<div className="study-finished">
|
||||||
|
<p>Die Studie wurde beendet.</p>
|
||||||
|
<p>Vielen Dank für die Teilnahme an der Studie</p>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
}
|
|
@ -73,7 +73,7 @@ export default function Lizenzen() {
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
Behametrics Serverimplementierung (MIT-Lizenz)
|
Behametrics Serverimplementierung (MIT-Lizenz):{" "}
|
||||||
<a href="https://gitlab.com/behametrics/server">
|
<a href="https://gitlab.com/behametrics/server">
|
||||||
https://gitlab.com/behametrics/server
|
https://gitlab.com/behametrics/server
|
||||||
</a>
|
</a>
|
||||||
|
|
|
@ -71,6 +71,25 @@ export default function Privacy() {
|
||||||
Allerdings kann der Benutzername, welchen Sie bei der Anmeldung
|
Allerdings kann der Benutzername, welchen Sie bei der Anmeldung
|
||||||
angegeben haben, verwendet werden.
|
angegeben haben, verwendet werden.
|
||||||
</p>
|
</p>
|
||||||
|
<h2>Weitergabe der Daten</h2>
|
||||||
|
<p>
|
||||||
|
Grundsätzlich werden die Daten nicht an Dritte weitergegeben. Folgende
|
||||||
|
Ausnahmen gibt es:
|
||||||
|
</p>
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
Der Fernfachhochschule Schweiz werden die Daten falls notwendig
|
||||||
|
weitergegeben.
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
Sofern es eine gesetzliche Grundlage gibt, werden die Daten auch
|
||||||
|
weitergegeben.
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
Wie bereits oben erwähnt, läuft die Webanwendung auf einem
|
||||||
|
virtuellen Server bei <a href="https://netcup.de">netcup</a>. Hierbei gelten die Datenschutzbestimmungen von netcup, welche <a href="https://www.netcup.de/kontakt/datenschutzerklaerung.php">hier</a> eingesehen werden können.
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
<Footer />
|
<Footer />
|
||||||
</>
|
</>
|
||||||
|
|
|
@ -12,6 +12,7 @@ import BehaviorPhone from "../BehaviorPhone";
|
||||||
import BehaviorStanding from "../BehaviorStanding";
|
import BehaviorStanding from "../BehaviorStanding";
|
||||||
import BehaviorStudyEnd from "../BehaviorStudyEnd";
|
import BehaviorStudyEnd from "../BehaviorStudyEnd";
|
||||||
import { authFetch } from "../../auth/AuthProvider";
|
import { authFetch } from "../../auth/AuthProvider";
|
||||||
|
import StudyFinished from "../StudyFinished";
|
||||||
|
|
||||||
export default function Study() {
|
export default function Study() {
|
||||||
const _logger = useRef(0);
|
const _logger = useRef(0);
|
||||||
|
@ -33,7 +34,6 @@ export default function Study() {
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
_logger.current = new Logger({
|
_logger.current = new Logger({
|
||||||
inputs: ["keyboard", "wheel", "cursor", "custom"],
|
inputs: ["keyboard", "wheel", "cursor", "custom"],
|
||||||
apiUrl: "https://behavior.marcocamenzind.ch",
|
|
||||||
});
|
});
|
||||||
_logger.current.init();
|
_logger.current.init();
|
||||||
authFetch("/api/username", {
|
authFetch("/api/username", {
|
||||||
|
@ -91,7 +91,6 @@ export default function Study() {
|
||||||
method: "get",
|
method: "get",
|
||||||
}).then((response) => {
|
}).then((response) => {
|
||||||
response.json().then((resp) => {
|
response.json().then((resp) => {
|
||||||
console.log(resp.random_password);
|
|
||||||
setGenPassword(resp.random_password);
|
setGenPassword(resp.random_password);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
@ -271,6 +270,7 @@ export default function Study() {
|
||||||
<>
|
<>
|
||||||
<div className="sitePage">
|
<div className="sitePage">
|
||||||
<h1>Studie</h1>
|
<h1>Studie</h1>
|
||||||
|
<StudyFinished />
|
||||||
{state === STATES.START ? study_start : null}
|
{state === STATES.START ? study_start : null}
|
||||||
{state === STATES.NORMAL ? study_normal : null}
|
{state === STATES.NORMAL ? study_normal : null}
|
||||||
{state === STATES.PHONE ? study_phone : null}
|
{state === STATES.PHONE ? study_phone : null}
|
||||||
|
|
12
requests.sh
12
requests.sh
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
ACTION=$1
|
ACTION=$1
|
||||||
VALUE=$2
|
VALUE=$2
|
||||||
ACTIONS=(login register rcvpw username data csv)
|
ACTIONS=(login register rcvpw username data csv prod_data prod_csv)
|
||||||
|
|
||||||
print_help(){
|
print_help(){
|
||||||
echo "Usage: $0 ACTION [TOKEN|INPUT_TYPE]"
|
echo "Usage: $0 ACTION [TOKEN|INPUT_TYPE]"
|
||||||
|
@ -41,9 +41,17 @@ case $ACTION in
|
||||||
curl localhost:5000/data
|
curl localhost:5000/data
|
||||||
;;
|
;;
|
||||||
"${ACTIONS[5]}") # get all data from behametricsserver
|
"${ACTIONS[5]}") # get all data from behametricsserver
|
||||||
echo "get data action"
|
echo "get csv from input action"
|
||||||
curl localhost:5000/data/csv/"${VALUE}"
|
curl localhost:5000/data/csv/"${VALUE}"
|
||||||
;;
|
;;
|
||||||
|
"${ACTIONS[6]}") # get all data from behametricsserver
|
||||||
|
echo "get prod data action"
|
||||||
|
curl behavior.marcocamenzind.ch:5000/data
|
||||||
|
;;
|
||||||
|
"${ACTIONS[7]}") # get all data from behametricsserver
|
||||||
|
echo "get prod csv from input action"
|
||||||
|
curl behavior.marcocamenzind.ch:5000/data/csv/"${VALUE}"
|
||||||
|
;;
|
||||||
*)
|
*)
|
||||||
echo "Error: Action not available"
|
echo "Error: Action not available"
|
||||||
echo
|
echo
|
||||||
|
|
Loading…
Reference in a new issue