Kubicle Engineering Take Home Assignment

Thank you for applying to Kubicle!

We have designed this take home assignment to give you a chance to show us how you like to develop, how you approach a problem and what aspects of software development are most important to you.

Please implement the assignment over 3 days and return it to us once completed. The actual work should take no more than a few hours.

Once the take home assignment has been returned we will schedule a follow on chat to discuss how you got on and what choices you made.

The Assignment

Kubicle is an e-learning platform and one way our learners upskill on our platform is by watching educational videos. We have already built a simple backend and frontend that serves educational videos to learners. Your assignment is to add extra functionality to this application to satisfy the user story below.

Download the following repos and get the initial app up and running

Once you have both the frontend and backend running (follow the instructions in the README.md for each repo), navigate to


            http://localhost:3000/library
          

to see the existing assignment application. A learner can begin a video but if they navigate away from the page their progress is lost. Your assignment is to record the position of the video when the learner pauses so that when they come back to the video they can resume from the same position.

User Story

Description

As a learner with Kubicle I watch training videos in order to increase my skill level in a given subject. I want the system to record how much of each video I have watched when I pause the video, so that if I leave the course and come back to it later I can resume the video at the position where I paused rather than have to watch the video again from the start.

Acceptance Criteria

Out of Scope

While a production system would obviously include multiple users, you can assume for this assignment there is only one user of the system and they do not need to authenticate.

Hints

If you are not sure where to start, open the browser console when viewing one of the course videos. You should notice that there are console log messages outputted when the video is paused. Finding where those log messages are outputted in the frontend should give you a hint at where to start...

Submissions

This assignment should only take you a few hours of development time. Feel free to take note of any extra work you would do if you had the time, or any ideas that you think would make the feature better that you would work on if this was a real feature for Kubicle. We can discuss these at your follow on interview where we will discuss how you approached the assignment.

You can submit the project either by emailing a zip file of the code to us or by posting on a public Github repository that we can view. Please talk to your recruiter or hiring manager for details.

Good luck!