Coding Challenge 5.0 — Fall 2018


Use the latest HTML5 technology to build a small web application that solves the following problem.


The Challenge

Create a web application which will allow a user to view an Articulate presentation from a selection of presentations. An admin interface will allow admin users to upload new presentations.


Official Contest Rules and Detailed Specifications

Please read the Official Rules and Specifications document at http://rde.org/CodingChallenge/2018Fall/Rules.pdf.

Before submitting your entry, make sure you follow all of the requirements in the Official Rules and Specifications, or your entry will be disqualified.

Click here for the Official Entry Form


How do we solve this?

Multiple presentation files will be provided to you. These presentations should be uploaded via the admin page and then viewed on the viewing page.

Data

Each presentation will have a database entry with its decorative title, machine title, description, an active flag, and path to the respective Articulate module. Each module has a tincan.xml file: the machine title matches the id attribute of the activity tag with the type attribute "http://adlnet.gov/expapi/activities/course" minus the 'http://'' portion e.g.:

<activity id="http://test_1" type="http://adlnet.gov/expapi/activities/course">
In the above case, test_1 would be the machine title.

The presentation files are available for you to download in a ZIP file. You will need to download the zipped archive and extract its content inside a folder of your web application server. https://www.rde.org/CodingChallenge/2018Fall/presentations.zip

Login Screen

There needs to be separate accounts in order to differentiate between user and admin workflows. You are required to implement a login page and have one user of each type.

Presentation Selection Screen

The presentation selection screen shows all active presentations in the following format:

Presentation Title

Presentation Description

Clicking anywhere on this widget will forward the user to the presentation which was selected. This is the default view for the 'regular user' user type.

Presentation Screen

This page will contain the selected presentation in an iframe and include a link to go back to the presentation selection screen.

Admin Screen

The main admin interface has a listing of all presentations in the system. The admin user will also have the option to create a new presentation, a workflow covered in the following screen:

Upload Presentation Screen

The admin user will first be required to enter the following fields:

  1. Display title.
  2. Description.

The admin user will then be able to upload a zipped Articulate module directory to the website. The zipped file will be required to have the following items:

  1. Tincan.xml
  2. Story.html & story_html5.html
  3. Story_content directory
  4. Html5 directory

Any uploads without these items should be deleted from the server and the site must display "Files missing. Upload Failed" to theuser. After a successful upload, a database record mustbe created, filling the required fields. Display a success message "File upload successful." See the Data section for more information.


Requirements


  1. Permissible Languages. Submissions must be coded using one of the following server-side languages:
    • PHP
    • Node.js
    • ColdFusion (CFML)
    • Python

  2. Permissible Databases. Submissions must use one of the following database systems to store data:
    • MySQL
    • Microsoft SQL Server (Express Edition)
    • NoSQL

  3. Submissions may not utilize browser plugins. Submissions utilizing browser plugins will be disqualified. For more information, please see the detailed specifications and rules.

  4. Submissions must be the work of a single individual. Submissions which represent the work of more than one individual, or which are submitted by a single individual on behalf of a team of two or more, will be disqualified.

  5. Submissions must be received by the deadline. , November 19, 2018 at 23:59:59 EST (11:59:59 PM EST). Submissions for which the upload is not complete by November 19, 2018 at 23:59:59 EST (11:59:59 PM EST) (or in the case of submissions which are made via US postal mail, which have not been received by November 19, 2018 at 23:59:59 EST (11:59:59 PM EST)), will be disqualified.

Questions and Answers

When we receive questions about the contest, we'll answer them on the Questions and Answers page (click here).


Sign Up for a Reminder

To sign up for contest reminders, and to indicate your interest in an internship with RDE, fill out the form below. We will send you reminders until the contest deadline on November 19, 2018.

We will not take you answer on this Reminder Form into account when judging contest entries.
* Internship
* I cannot participate in
this challenge because

By submitting this form, you are requesting us to send you email Reminders about the Contest. Submitting this form does not enter you into the Contest, and it is not a requirement for contest entry. We plan to post the official Contest Rules and Detailed Specifications on this website on 11/02/2018. Before entering this contest, please read the official Contest Rules to determine whether you are eligible to enter the contest.


Completed Contests

Prizes

0th place / grand prize$500
1st place$200
2nd place$100

Prizes will be in the form of an Amazon.com gift card.
All contestants will be considered for an RDE Internship.

Schedule

Details of the challenge will be provided at the info session at NJIT. Date Time: Oct 30, 2018 ; Time: 4pm - 5:30pm; Location: GITC #3710 . See flyer below.

November 2, 2018
Detailed Specifications Release and Contest Start

November 19, 2018
Submission Deadline

Why is RDE sponsoring this?

RDE wants to get to know programmers who naturally enjoy a good challenge and like to go above-and-beyond in all that they do. This is a good opportunity for great programmers to get to know RDE and why we're special.

Click here to learn about our special partnership with NJIT.


Flyer

Coding Challenge Flyer