From 9983590bece16e872d1e72a9869b743c93bbe14a Mon Sep 17 00:00:00 2001 From: Poorva Date: Sat, 31 Aug 2019 18:26:49 -0700 Subject: [PATCH 01/10] participants list for user study 2 displaying on the page --- model/userStudy2.js | 13 +++++++++++++ public/javascripts/homeUserStudy2.js | 13 +++++++++++++ public/stylesheets/homeUserStudy2.css | 0 routes/index.js | 27 ++++++++++++++++++++++++++- views/homeUserStudy2.ejs | 27 +++++++++++++++++++++++++++ 5 files changed, 79 insertions(+), 1 deletion(-) create mode 100644 model/userStudy2.js create mode 100644 public/javascripts/homeUserStudy2.js create mode 100644 public/stylesheets/homeUserStudy2.css create mode 100644 views/homeUserStudy2.ejs diff --git a/model/userStudy2.js b/model/userStudy2.js new file mode 100644 index 0000000..aa6d14d --- /dev/null +++ b/model/userStudy2.js @@ -0,0 +1,13 @@ +const db = require('../db/database'); +let userStudy2 = { + + getAllUsers: function (callback) { + return db.query('SELECT * FROM us_user_blind ORDER BY id ASC', callback); + }, + + getUserById: function (id, callback) { + return db.query(`SELECT * FROM us_user_blind where uuid = ${id}`, callback); + }, +}; + +module.exports = userStudy2; diff --git a/public/javascripts/homeUserStudy2.js b/public/javascripts/homeUserStudy2.js new file mode 100644 index 0000000..a246432 --- /dev/null +++ b/public/javascripts/homeUserStudy2.js @@ -0,0 +1,13 @@ +$(document).ready(function () { + fetchUsers(); +}); + +function fetchUsers() { + $.get('/userStudy2/users', function (rows) { + let generatedHtml = ''; + for (let i = 0; i < rows.length; i++) { + generatedHtml += ` ${rows[i].name} ` + } + $( ".list-group" ).append(generatedHtml); + }); +} \ No newline at end of file diff --git a/public/stylesheets/homeUserStudy2.css b/public/stylesheets/homeUserStudy2.css new file mode 100644 index 0000000..e69de29 diff --git a/routes/index.js b/routes/index.js index 7537887..6d0d4be 100644 --- a/routes/index.js +++ b/routes/index.js @@ -2,6 +2,8 @@ var express = require('express'); var router = express.Router(); const video = require('../backend/video'); const userStudy = require('../model/userStudy'); +const userStudy2 = require('../model/userStudy2'); + const db = require('../db/database'); router.get('/', function(req, res, next) { @@ -103,12 +105,18 @@ router.post('/updateBlockAndScene', function(req, res, next) { router.get('/userStudy', function (req, res) { res.render('homeUserStudy', { title: 'User Study' }); }); + +//poorva +router.get('/userStudy2', function (req, res) { + res.render('homeUserStudy2', { title: 'User Study 2' }); +}); + //list of video for a user router.get('/userStudy/video', function (req, res) { res.render('videoUserStudy', { title: 'User Study Video' }); }); -//list of users +//list of users study 1 router.get('/userStudy/users/', function (req, res) { console.log({param: req.query.userId}); let userId = req.query.userId; @@ -135,6 +143,23 @@ router.get('/userStudy/users/', function (req, res) { } }); + +//list of users study 2 +router.get('/userStudy2/users/', function (req, res) { + // let userId = req.query.userId; + // if(userId){ + //let queryResult = userStudy2.getVideoByUserId(userId); + let queryResult = db.query(`SELECT * from us_user_blind`); + queryResult + .then(result => { + res.send(result); + }) + .catch((err) => { + res.send(err); + }); + // } +}); + router.post('/saveNonAiDescription', function(req, res, next) { let inputJson = req.body; console.log(inputJson); diff --git a/views/homeUserStudy2.ejs b/views/homeUserStudy2.ejs new file mode 100644 index 0000000..76061e2 --- /dev/null +++ b/views/homeUserStudy2.ejs @@ -0,0 +1,27 @@ + + + + User Study 2 + + + + + + + + +
+
+
+

Participant List

+
+

Please click on the Participant Number assigned to you

+
+
+
+
+
+ + + + \ No newline at end of file From a7ebbaefaa72c0faf7053f2a5425b63cbbee8bd8 Mon Sep 17 00:00:00 2001 From: bishtvaishali Date: Mon, 2 Sep 2019 01:58:35 -0700 Subject: [PATCH 02/10] created page for vi users --- model/createHelperData.js | 48 +++++++++++++++++++++++ model/userStudy.js | 8 +++- routes/index.js | 24 ++++++++++++ views/videoHelper.ejs | 81 +++++++++++++++++++++++++++++++++++++++ 4 files changed, 159 insertions(+), 2 deletions(-) create mode 100644 model/createHelperData.js create mode 100644 views/videoHelper.ejs diff --git a/model/createHelperData.js b/model/createHelperData.js new file mode 100644 index 0000000..c3648b0 --- /dev/null +++ b/model/createHelperData.js @@ -0,0 +1,48 @@ +/* randomly sorts videos(with AI and without AI) and inserts rows in database +Author: Vaishali*/ +const db = require('../db/database'); +const userStudy = require('../model/userStudy'); + +class createHelperData { + constructor() { + this.id = 'id_1'; + } + set name(name) { + this._name = name.charAt(0).toUpperCase() + name.slice(1); + } + get name() { + return this._name; + } + sayHello() { + console.log('Hello, my name is ' + this.name + ', I have ID: ' + this.id); + } + + create1(userId, callback) { + return db.query('SELECT * FROM us_user ORDER BY id ASC', callback); + } + + create +} + +var justAGuy = new createHelperData(); +justAGuy.name = 'martin'; // The setter will be used automatically here. +justAGuy.sayHello(); // Will output 'Hello, my name is Martin, I have ID: id_1' + +// userStudy.getAllUsers().then(function (result) { +// userDetails = result; +// console.log("Initialized user details"); +// // Use user details from here +// console.log(result) +// }, function (err) { +// console.log(err); +// }) + +justAGuy.create1().then(function (result) { + userDetails = result; + console.log("Initialized user details"); + // Use user details from here + console.log(result) +}, function (err) { + console.log(err); +}); + diff --git a/model/userStudy.js b/model/userStudy.js index db4f60d..0a61d39 100644 --- a/model/userStudy.js +++ b/model/userStudy.js @@ -20,8 +20,12 @@ let userStudy = { }, addVideo : function(data, callback){ return db.query(`INSERT into us_user_video (user_id,youtube_id, ai_support) VALUES ($1, $2, $3)`, [data.id, data.youtube_id, data.ai_support], callback); - } - + }, + getHelperVideo: function (callback) { + return db.query(`SELECT u.volunteer_id, u.video_id, v.title, u.ai_support FROM us_helper_video u + JOIN video v + ON u.video_id = v.youtube_id `, callback); + }, }; diff --git a/routes/index.js b/routes/index.js index 7537887..1cc36d9 100644 --- a/routes/index.js +++ b/routes/index.js @@ -108,6 +108,30 @@ router.get('/userStudy/video', function (req, res) { res.render('videoUserStudy', { title: 'User Study Video' }); }); +//list of video for visually impaired users +router.get('/userStudy/videoHelper', function (req, res) { + res.render('videoHelper', { title: 'User Study Video Helper' }); +}); + + +//list of visually impaired users +router.get('/userStudy/helper/video', function (req, res) { + console.log({ param: req.query.userId }); + let userId = req.query.userId; + if (userId) { + let queryResult = userStudy.getHelperVideo(); + queryResult + .then(result => { + res.send(result); + }) + .catch((err) => { + res.send(err); + }); + } +}); + + + //list of users router.get('/userStudy/users/', function (req, res) { console.log({param: req.query.userId}); diff --git a/views/videoHelper.ejs b/views/videoHelper.ejs new file mode 100644 index 0000000..c6329d5 --- /dev/null +++ b/views/videoHelper.ejs @@ -0,0 +1,81 @@ + + + User Study + + + + + + + + +
+
+

List of Video

+

+

Please select the video

+
+
+
+ +
+ + +
+ + + + + + + + \ No newline at end of file From 8f693a82460e69ae171712f52cfb056f6f31e1ec Mon Sep 17 00:00:00 2001 From: bishtvaishali Date: Mon, 2 Sep 2019 13:37:51 -0700 Subject: [PATCH 03/10] added random videos --- views/videoHelper.ejs | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/views/videoHelper.ejs b/views/videoHelper.ejs index c6329d5..99f18e9 100644 --- a/views/videoHelper.ejs +++ b/views/videoHelper.ejs @@ -50,25 +50,22 @@ function getDateTime(){ console.log(date); } + function fetchVideo() { + $.get(targetUrl, function (rows) { - console.log({rows}); let videos = ''; for (let i = 0; i < rows.length; i++) { let vid = rows[i]; let videoId = vid.video_id; let videoTitle = vid.title; - let isAiSupported = vid.ai_support; - let aiSupportStr = isAiSupported ? 'With AI support' : 'Start from scratch'; - let aiParam = vid.ai_support===true ? 'yes' : 'no'; - - // videos += `${rows[i].title} (${aiSupportStr})` + + let aiSupportStr = vid.ai_support == 'true' ? 'With AI support' : 'Start from scratch'; + let aiParam = vid.ai_support == 'true' ? 'yes' : 'no'; videos += ` ${videoTitle} Video ${i+1}: ${videoTitle} (${aiSupportStr})`; - } - // videos += `Survey Link`; $( ".list-group" ).append( videos); }); } From 63275f6b2a321bdea90706beb171947cdcb264e0 Mon Sep 17 00:00:00 2001 From: Poorva Date: Mon, 2 Sep 2019 14:43:30 -0700 Subject: [PATCH 04/10] user list and videos pages are synced together --- public/javascripts/homeUserStudy2.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/public/javascripts/homeUserStudy2.js b/public/javascripts/homeUserStudy2.js index a246432..80d2101 100644 --- a/public/javascripts/homeUserStudy2.js +++ b/public/javascripts/homeUserStudy2.js @@ -6,7 +6,7 @@ function fetchUsers() { $.get('/userStudy2/users', function (rows) { let generatedHtml = ''; for (let i = 0; i < rows.length; i++) { - generatedHtml += ` ${rows[i].name} ` + generatedHtml += ` ${rows[i].name} ` } $( ".list-group" ).append(generatedHtml); }); From e8f516b5f38e8df005549454a495846ed77d0ff8 Mon Sep 17 00:00:00 2001 From: Poorva Date: Mon, 2 Sep 2019 22:40:35 -0700 Subject: [PATCH 05/10] added input boxes for rating and comments. PS. needs to be connected to backend --- views/videoHelper.ejs | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/views/videoHelper.ejs b/views/videoHelper.ejs index 99f18e9..52a34e4 100644 --- a/views/videoHelper.ejs +++ b/views/videoHelper.ejs @@ -64,8 +64,20 @@ function fetchVideo() { let aiParam = vid.ai_support == 'true' ? 'yes' : 'no'; videos += ` ${videoTitle} - Video ${i+1}: ${videoTitle} (${aiSupportStr})`; + + Video ${i+1}: ${videoTitle} (${aiSupportStr}) +
+ Please Rate the above video from 1 to 5:
+
+ Any other comments:
+
+ + +

`; + + } + $( ".list-group" ).append( videos); }); } From 438e893ca7dc62db889d13f0fc7a788ab54fc410 Mon Sep 17 00:00:00 2001 From: Poorva Date: Mon, 2 Sep 2019 22:47:50 -0700 Subject: [PATCH 06/10] form validation for input box rating --- views/videoHelper.ejs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/views/videoHelper.ejs b/views/videoHelper.ejs index 52a34e4..350c393 100644 --- a/views/videoHelper.ejs +++ b/views/videoHelper.ejs @@ -67,7 +67,7 @@ function fetchVideo() { Video ${i+1}: ${videoTitle} (${aiSupportStr})
- Please Rate the above video from 1 to 5:
+ Please Rate the above video from 0 to 5:

Any other comments:

From 143d1d4526c3f11c2fd09d4ee5cae284fcb40c90 Mon Sep 17 00:00:00 2001 From: Poorva Date: Tue, 3 Sep 2019 21:16:20 -0700 Subject: [PATCH 07/10] participant number added to the url --- public/javascripts/homeUserStudy2.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/public/javascripts/homeUserStudy2.js b/public/javascripts/homeUserStudy2.js index 80d2101..715f038 100644 --- a/public/javascripts/homeUserStudy2.js +++ b/public/javascripts/homeUserStudy2.js @@ -6,7 +6,7 @@ function fetchUsers() { $.get('/userStudy2/users', function (rows) { let generatedHtml = ''; for (let i = 0; i < rows.length; i++) { - generatedHtml += ` ${rows[i].name} ` + generatedHtml += ` ${rows[i].name} ` } $( ".list-group" ).append(generatedHtml); }); From 7341fdc935573854cba2907be227d51e49939e23 Mon Sep 17 00:00:00 2001 From: Poorva Date: Tue, 3 Sep 2019 21:46:07 -0700 Subject: [PATCH 08/10] added I completed button to the end of the page --- views/videoHelper.ejs | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/views/videoHelper.ejs b/views/videoHelper.ejs index 350c393..30c4224 100644 --- a/views/videoHelper.ejs +++ b/views/videoHelper.ejs @@ -67,11 +67,10 @@ function fetchVideo() { Video ${i+1}: ${videoTitle} (${aiSupportStr}) - Please Rate the above video from 0 to 5:
+ Please Rate the above video from 0 to 5:

Any other comments:

-
`; @@ -81,7 +80,10 @@ function fetchVideo() { $( ".list-group" ).append( videos); }); } + + + From 16620a1ce4560412e26bee8d59529972aaf4f9dc Mon Sep 17 00:00:00 2001 From: Poorva Date: Tue, 3 Sep 2019 23:04:54 -0700 Subject: [PATCH 09/10] changed description video --- routes/index.js | 14 ++++++++++++++ views/videoHelper.ejs | 13 ++++++------- 2 files changed, 20 insertions(+), 7 deletions(-) diff --git a/routes/index.js b/routes/index.js index 1860b27..8eb3228 100644 --- a/routes/index.js +++ b/routes/index.js @@ -205,6 +205,20 @@ router.post('/saveAiDescription', function(req, res, next) { }).catch((err) => { res.send({success: false}); }); + + +router.post('/submitform', function(req, res, next) { + console.log(req.body.rating); + console.log(req.body.comment); +let queryResult = db.query(`INSERT INTO rating&comment(rating,comment) VALUES ('"+req.body.rating+"','"+req.body.comment+"');`) +queryResult.then(result => { + res.send({success: true}); +}).catch((err) => { + res.send({success: false}); +}); }) +res.render('index', { title: 'Express' }); +}); + module.exports = router; diff --git a/views/videoHelper.ejs b/views/videoHelper.ejs index 30c4224..68433f9 100644 --- a/views/videoHelper.ejs +++ b/views/videoHelper.ejs @@ -60,19 +60,18 @@ function fetchVideo() { let videoId = vid.video_id; let videoTitle = vid.title; - let aiSupportStr = vid.ai_support == 'true' ? 'With AI support' : 'Start from scratch'; + //let aiSupportStr = vid.ai_support == 'true' ? 'With AI support' : 'Start from scratch'; let aiParam = vid.ai_support == 'true' ? 'yes' : 'no'; videos += ` ${videoTitle} - Video ${i+1}: ${videoTitle} (${aiSupportStr}) -
- Please Rate the above video from 0 to 5:
+ Video ${i+1}: ${videoTitle} + + Please Rate the above video from 0 to 5:

- Any other comments:
+ Any other comments:

- -

`; +
`; } From d608571c5c73dce1b537a6b97ec3730f9a96cc8e Mon Sep 17 00:00:00 2001 From: Poorva Date: Wed, 4 Sep 2019 00:26:40 -0700 Subject: [PATCH 10/10] changes in index.js --- routes/index.js | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/routes/index.js b/routes/index.js index 8eb3228..1efb504 100644 --- a/routes/index.js +++ b/routes/index.js @@ -207,16 +207,6 @@ router.post('/saveAiDescription', function(req, res, next) { }); -router.post('/submitform', function(req, res, next) { - console.log(req.body.rating); - console.log(req.body.comment); -let queryResult = db.query(`INSERT INTO rating&comment(rating,comment) VALUES ('"+req.body.rating+"','"+req.body.comment+"');`) -queryResult.then(result => { - res.send({success: true}); -}).catch((err) => { - res.send({success: false}); -}); -}) res.render('index', { title: 'Express' }); });