Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Quizdown-js for interactive videos #10

Closed
rodrigoprestesmachado opened this issue Jun 14, 2021 · 6 comments
Closed

Quizdown-js for interactive videos #10

rodrigoprestesmachado opened this issue Jun 14, 2021 · 6 comments
Labels
enhancement New feature or request

Comments

@rodrigoprestesmachado
Copy link

Hello,

I would like to fork and extend quizdown-js to support interactive videos for teaching purpose, something like:

<div class="quizdown" video="https://www.youtube.com/watch?v=YOUTUBE_VIDEO">
	---
	primary_color: steelblue
	shuffle_questions: false
	shuffle_answers: true
	---

	### Select your superpowers!

	! 30

	- [ ] Enhanced Strength
	- [ ] Levitation
	- [x] Shapeshifting

	### What's the capital of Germany?

	! 120

	> Hint: The _largest_ city in Germany...

	1. [x] Berlin
	1. [ ] Frankfurt
	1. [ ] Paris
	1. [ ] Cologne
</div>

In this imaginative example, the question should stop (or hide) the video and appears at 30 seconds of video, and the second question will be show 120 seconds, so, if the student answers correctly the video continue.

I would like to implement something like that using quizdown-js, I believe that it is not difficult to achieve this result because we just need to add the time information and indicates the video. What do you think? How can I contribute?

Best regards
Rodrigo

@bonartm bonartm added the enhancement New feature or request label Jun 16, 2021
@bonartm
Copy link
Owner

bonartm commented Jun 16, 2021

Sounds interesting and the youtube player api is quite customizable. I'm happy for any contributions :)

Regarding the syntax I would prefer a solution that uses the already implemented yaml based options. This makes it unnecessary to modify the parser and is inline with the existing syntax.

---
primary_color: "steelblue"
shuffle_questions: false
shuffle_answers: true
video: "https://www.youtube.com/watch?v=YOUTUBE_VIDEO"
---

### Select your superpowers!

---
seconds: 30
---

- [ ] Enhanced Strength
- [ ] Levitation
- [x] Shapeshifting

### What's the capital of Germany?

---
seconds: 120
---

> Hint: The _largest_ city in Germany...

1. [x] Berlin
1. [ ] Frankfurt
1. [ ] Paris
1. [ ] Cologne

@rodrigoprestesmachado
Copy link
Author

rodrigoprestesmachado commented Jun 22, 2021

I believe that the solution with yaml syntax is nice. How can I contribute? if you have some task for me I will be glad to try to develop, so, lets split the task and develop this feature =)

@bonartm
Copy link
Owner

bonartm commented Jun 27, 2021

Hi,

I have setup a first demo in the branch 10_video (0c75639). Feel free to use this for development of the feature. You can view the demo online here: https://bonartm.github.io/quizdown-js/

Three new options can be specified in the quizdown: video_id , start_seconds, end_seconds.
The video is loaded for each question and plays the video from start_seconds to end_seconds. User controls are disabled as best as possible so that the user can only watch the specified section from the video (of course she/he can always watch the full video on youtube).

The generic youtube player is implemented in the component YoutubePlayer.svelte. It takes care of setting up the library and initializing a player object. The player object can then be controlled from within higher level components.

A basic VideoView.svelte is used to display the video inside the quiz with a custom start/pause button. Which user interactions do you have in mind? The current state might be a good starting point for improvements in the main components QuizSection and VideoView.

@rodrigoprestesmachado
Copy link
Author

rodrigoprestesmachado commented Jun 29, 2021

You did a wonderful job!

However, I was imagining a scenario where a teacher can create a interactive video. Thus, maybe I can add a feature to allow a teacher configure if he/she wants that the question appears only at the end_time or let it always visible. Another point, don't you think that the evaluation of a question should be done at the moment that the user answers? not only at the end of the video. The objective is to try to make a student think/reflect about the video content, so this "fast feedback" maybe be important in this interactive video scenario.

I will fork the project to try to understand the code and contribute with quizdown 🙂

Thanks a lot for you job!

@bonartm
Copy link
Owner

bonartm commented Jun 29, 2021

The objective is to try to make a student think/reflect about the video content, so this "fast feedback" maybe be important in this interactive video scenario

You are right. This should be implemented in a generic way and should be treated independently from the video content. I have opened #12 for a discussion on that.

@bonartm
Copy link
Owner

bonartm commented Jun 23, 2022

I want to focus on making the core library more stable so this feature is out of scope for now. I will add a comment to the readme though for reference.

@bonartm bonartm closed this as not planned Won't fix, can't repro, duplicate, stale Jun 23, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants