Comments (7)
@beribak Update. After receiving more feedback, we want to target the layout that has the line of windows on top, https://www.figma.com/file/jtIoqpnhGfBEAHSVLAIVf4/undebate_UI?node-id=66%3A1 (rather than the one above with the line of windows on the bottom). Extra credit if you can have a hidden feature like Control-W or something that lets us switch between the two layouts - but having one layout working is most important. Sorry for the change.
from undebate.
The cursor needs to change when you hover over the icon/buttons: probably just add cursor: pointer to the css style for that.
from undebate.
Also, it would be nice to add a style={{title: ...}} to each each button saying Previous Section, Previous Speaker, Pause, Continue, Next Speaker, Next Section. So that when you hover over it, you will see the name of it.
from undebate.
@beribak To address the problem of not having any candidates, in the candidate conversation that was created in the database, do this:
- go to the iotas collection, in your mLab database as described above.
- find the record with "path": "candidate-conversation" that you created above.
- the first line in the record will be the "_id", it will look like this:
"_id": {
"$oid": "5dfc539a7c213e6bf14d7ee2"
},
"path": "/candidate-conversation",
"subject": "School Board Candidate Conversation - Candidate Conversation",
...
-
copy the value assigned to $oid - in this example it's
5dfc539a7c213e6bf14d7ee2
and paste it into an empty file so you can copy it again. -
copy the record below, and then use +Add Document as you did previously, and paste it in, and hit "Create and continute editing"
{
"parentId": "5d6350b0e7179a084ef376b9",
"subject": "Participant:School Board Candidate Conversation - Candidate Conversation",
"description": "A participant in the following discussion:A prototype Candidate Conversation for schoolboard",
"component": {
"component": "MergeParticipants",
"participant": {
"speaking": [
"https://res.cloudinary.com/hf6mryjpf/video/upload/v1567120064/5d685ab98d5ab100175a1dd7-1-speaking20190829T230738520Z.webm",
"https://res.cloudinary.com/hf6mryjpf/video/upload/du_41/v1567120076/5d685ab98d5ab100175a1dd7-2-speaking20190829T230743431Z.webm",
"https://res.cloudinary.com/hf6mryjpf/video/upload/v1567120089/5d685ab98d5ab100175a1dd7-3-speaking20190829T230802074Z.webm"
],
"name": "MaryBeth MaryBeth McGarvey",
"listening": "https://res.cloudinary.com/hf6mryjpf/video/upload/v1567120083/5d685ab98d5ab100175a1dd7-2-nextUp20190829T230755711Z.webm"
}
},
"userId": "5d685ab98d5ab100175a1dd7"
}
- go get the value of $oid that you saved in step 4 and change the value of
parentId
to be this value. Make sure you have quotes around it, and then hit Save and go back.
You have just added one candidate to your conversation. You can repeat steps 5 and 6 with the data below to add more candidates.
Joe
{
"_id": {
"$oid": "5db33f0bc39ee70017cc7274"
},
"parentId": "5d6350b0e7179a084ef376b9",
"subject": "Participant:School Board Candidate Conversation - Candidate Conversation",
"description": "A participant in the following discussion:A prototype Candidate Conversation for schoolboard",
"component": {
"component": "MergeParticipants",
"participant": {
"speaking": [
"https://res.cloudinary.com/hanexvucz/video/upload/v1572028149/5db33bc5c39ee70017cc7249-0-speaking20191025T182904502Z.webm",
"https://res.cloudinary.com/hanexvucz/video/upload/v1572028152/5db33bc5c39ee70017cc7249-1-speaking20191025T182909287Z.webm",
"https://res.cloudinary.com/hanexvucz/video/upload/v1572028158/5db33bc5c39ee70017cc7249-2-speaking20191025T182912325Z.webm"
],
"name": "Joe",
"listening": "https://res.cloudinary.com/hanexvucz/video/upload/v1572028169/5db33bc5c39ee70017cc7249-0-listening20191025T182917804Z.webm"
}
},
"userId": "5db33bc5c39ee70017cc7249"
}
Adolf:
{
"_id": {
"$oid": "5db34ee7c39ee70017cc72ef"
},
"parentId": "5d6350b0e7179a084ef376b9",
"subject": "Participant:School Board Candidate Conversation - Candidate Conversation",
"description": "A participant in the following discussion:A prototype Candidate Conversation for schoolboard",
"component": {
"component": "MergeParticipants",
"participant": {
"speaking": [
"https://res.cloudinary.com/hanexvucz/video/upload/v1572032218/5db34ecec39ee70017cc72ec-0-speaking20191025T193656908Z.webm",
"https://res.cloudinary.com/hanexvucz/video/upload/v1572032220/5db34ecec39ee70017cc72ec-1-speaking20191025T193658702Z.webm",
"https://res.cloudinary.com/hanexvucz/video/upload/v1572032222/5db34ecec39ee70017cc72ec-2-speaking20191025T193700221Z.webm"
],
"name": "Adolf",
"listening": "https://res.cloudinary.com/hanexvucz/video/upload/v1572032229/5db34ecec39ee70017cc72ec-0-listening20191025T193702315Z.webm"
}
},
"userId": "5db34ecec39ee70017cc72ec"
}
Alex
{
"_id": {
"$oid": "5d6569ade7179a084ef472eb"
},
"parentId": "5d6350b0e7179a084ef376b9",
"subject": "Participant:School Board Candidate Conversation - Candidate Conversation",
"description": "A participant in the following discussion:A prototype Candidate Conversation for schoolboard",
"component": {
"component": "MergeParticipants",
"participant": {
"speaking": [
"https://res.cloudinary.com/hf6mryjpf/video/upload/v1566839072/5d64111ba62cb60017dad9eb-1-speaking20190826T170428600Z.webm",
"https://res.cloudinary.com/hf6mryjpf/video/upload/v1566839081/5d64111ba62cb60017dad9eb-2-speaking20190826T170432708Z.webm",
"https://res.cloudinary.com/hf6mryjpf/video/upload/v1566839337/5d64111ba62cb60017dad9eb-3-speaking20190826T170818981Z.webm"
],
"name": "Alex Johnson",
"listening": "https://res.cloudinary.com/hf6mryjpf/video/upload/v1566926818/5d64111ba62cb60017dad9eb-listening20190826T170818981Z_s1wphm.mp4"
}
},
"userId": "5d64111ba62cb60017dad9eb"
}
Will
{
"_id": {
"$oid": "5d65a6b877fff400177d50ed"
},
"parentId": "5d6350b0e7179a084ef376b9",
"subject": "Participant:School Board Candidate Conversation - Candidate Conversation",
"description": "A participant in the following discussion:A prototype Candidate Conversation for schoolboard",
"component": {
"component": "MergeParticipants",
"participant": {
"speaking": [
"https://res.cloudinary.com/hf6mryjpf/video/upload/v1566942893/5d5dc697d32514001766ca87-1-speaking20190827T215452394Z.webm",
"https://res.cloudinary.com/hf6mryjpf/video/upload/v1566942898/5d5dc697d32514001766ca87-2-speaking20190827T215455964Z.webm",
"https://res.cloudinary.com/hf6mryjpf/video/upload/v1566942903/5d5dc697d32514001766ca87-3-speaking20190827T215503161Z.webm"
],
"name": "Will",
"listening": "https://res.cloudinary.com/hf6mryjpf/video/upload/v1566942901/5d5dc697d32514001766ca87-2-nextUp20190827T215500659Z.webm"
}
},
"userId": "5d5dc697d32514001766ca87"
}
And if you want to be able to record more, add this, and change the parentId as you have been doing:
{
"path": "/candidate-conversation-candidate-recorder",
"subject": "School Board Candidate Conversation - Candidate Conversation",
"description": "A prototype Candidate Conversation for schoolboard",
"component": {
"component": "UndebateCreator",
"participants": {
"moderator": {
"name": "David Fridley",
"speaking": [
"https://res.cloudinary.com/hf6mryjpf/video/upload/v1566788719/candidate-conversation-creator-moderator-0_d7a3zr.mp4",
"https://res.cloudinary.com/hf6mryjpf/video/upload/v1566788635/candidate-conversation-creator-moderator-1_gtchg2.mp4",
"https://res.cloudinary.com/hf6mryjpf/video/upload/v1566788669/candidate-conversation-creator-moderator-2_bsceus.mp4",
"https://res.cloudinary.com/hf6mryjpf/video/upload/v1566788656/candidate-conversation-creator-moderator-3_qomqgj.mp4"
],
"listening": "https://res.cloudinary.com/hf6mryjpf/video/upload/v1566788719/candidate-conversation-moderator-listening_nlfeoy.mp4",
"agenda": [
[
"Introductions",
"1- Who you are",
"2- Where you are",
"3- One word to describe yourself",
"4- What office you are running for"
],
[
"What type of skills should students be learning for success in the 21st century?"
],
[
"Closing Remarks"
]
],
"timeLimits": [
10,
60,
60
]
},
"audience1": {
"name": "Adolf Gundersen",
"speaking": [
"https://res.cloudinary.com/hf6mryjpf/video/upload/v1565640905/undebate-short-a1.mp4",
"https://res.cloudinary.com/hf6mryjpf/video/upload/v1565640905/undebate-short-a2.mp4",
"https://res.cloudinary.com/hf6mryjpf/video/upload/v1565640905/undebate-short-a3.mp4"
],
"listening": "https://res.cloudinary.com/hf6mryjpf/video/upload/v1565640905/undebate-short-as.mp4"
},
"human": {
"listening": {
"round": 2,
"seat": "nextUp"
}
}
}
},
"webComponent": {
"webComponent": "Undebate",
"audio": {
"intro": {
"url": "https://res.cloudinary.com/hf6mryjpf/video/upload/v1567095028/Generic_Light_Intro_7_sec_yp3lxk.wav",
"volume": 0.8
},
"ending": {
"url": "https://res.cloudinary.com/hf6mryjpf/video/upload/v1567096104/Heart_Soul_Entire_Duet_2_min_45_sec_1_j5sbpj.wav",
"volume": 0.7
}
},
"participants": {},
"opening": {
"line1": "Thank you for helping us create a mock candidate conversation.",
"line2": "All will be explained to you through this interactive video platform",
"line3": "This is how we could efficiently facilitate 500K conversations all over the country, every election season",
"line4": "Candidate Recorder for:",
"bigLine": "US School Board Candidate Conversation",
"subLine": "Your video will be recorded, you will have the option to upload it or not at the end."
}
},
"parentId": "5d6350b0e7179a084ef376b9"
}
Then you can go to localhost:3011/candidate-conversation-candidate-recorder and record yourself as a candidate.
You can rerecord yourself as many times as you want, and the latest version will be the one that shows up in the conversation. If you want to pretend to be multiple candidates - go to localhost:3011/sign/out to sign out. And then got to the recorder link again and create a new account. And by the way for testing - the email address you use for an account doesn't have to be real- it just has to be a valid email format.
from undebate.
To get at the ballot information, there is going to be a new object in the Iota structure called bp_info. It is optional and won't always be there. The current data format is:
bp_info: {
office: "string",
party: "string"
candidate_stage_result_id: "string",
election_date: "string", // like "2020-11-04"
candidate_name: "string",
sort: "string", // usually the last name of the candidate, when sorting candidates use this
profession: "string"
}
@beribak I mention this because the new UI calls out for showing the date of the election.
from undebate.
@beribak For the portrait mode here's a ui design: https://www.figma.com/file/jtIoqpnhGfBEAHSVLAIVf4/undebate_UI?node-id=172%3A1143
from undebate.
This is done and incorporated into master - but there are some ui tweaks that will be detailed in a new issue.
from undebate.
Related Issues (20)
- UI/UX for alerting candidate that there is no audio HOT 4
- Recorder Instructions as React Component HOT 6
- Hangup still hears playback
- Hangup Button HOT 3
- Investigate using Google Civic Information API HOT 1
- Iframe for address lookup then candidate conversation
- Record Landscape Video while in Portrait Mode on Smartphone
- Candidate Lookup Page
- Load balancing on heroku HOT 1
- Prev Speaker, Prev Section shouldn't be active
- "Sitting there" recording task
- Candidate video showed twice
- Self-service Portal for Election Leaders to Create Undebates for their Election HOT 6
- customer recorder invite must use specified email HOT 2
- Rerecord countdown confusion
- Retry upload if error
- undebate creator doesn't put listening in the right spot
- Feedback function in footer.
- Portrait Mode header messed up
- Bad experience when PC doesn't have GPU
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from undebate.