Coding Challenge 4.0 — Fall 2017

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 its users to navigate through a library of books and choose one to open and start reading. The book library should be easy to navigate through and the textual content of the books displayed with readability in mind.

Official Contest Rules and Detailed Specifications

Please read the Official Rules and Specifications document at

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 plain-text files will be provided to you, sourced from the Open-Licensed books of the Project Gutenberg library. These text-files will be stored as-is on your web application server then processed and displayed when they are selected for reading.


Each book will have a database entry with its title, author's name, and the path to the respective plain-text file. Additional data about each book might be stored at your discretion.

The books' plain-text 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.

Library Screen

The library screen will display a list books available in the application, the books which are contained in the archive provided above. The data stored about each book will be read from the database and displayed on screen; the list should contain, at a minimum, the title of each book, and the name of their author. The user will be able to select a book and open it for reading.

Reading Screen

When a book is selected for reading, the plain-text file, hosted on the application's web server, will be partially displayed on the screen and broken into pages consisting of 50-75 lines each. In order to progress through the chosen book, a pair of buttons will be displayed to move forward and backward through pages. In addition, there will be an indicator for which page the user is currently reading as well as the total number of pages.


  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 28, 2017 at 23:59:59 EST (11:59:59 PM EST). Submissions for which the upload is not complete by November 28, 2017 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 28, 2017 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 28, 2017.

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/08/2017. Before entering this contest, please read the official Contest Rules to determine whether you are eligible to enter the contest.

Completed Contests


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

Prizes will be in the form of an gift card.

All contestants will be considered for an RDE Internship.


November 8, 2017
Detailed Specifications Release and Contest Start

November 28, 2017
Submission Deadline

January 20, 2018
Announcement of Winners

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.


Coding Challenge Flyer