Coding Challenge 3.0 — Spring 2017


Results will be announced by May 1st, 2017

A big thank you to everyone who participated in our Coding Challenge! We're in the middle of judging the submissions now, and we expect to announce the final results by May 1st 2017.

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


The Challenge

Write a web application to visualize the geographical location of your website's visitors. At the time of visit, the visitor's geolocation is obtained and then stored into a database. An administrative dashboard will then allow users with the correct login to view a map containing markers for the location of all current visitors. (i.e. active within the last 5 minutes)


Official Contest Rules and Detailed Specifications

Please read the Official Rules and Specifications document at http://rde.org/codingchallenge/2017spring/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.


How do we solve this?

Participants can use any web server to obtain the IP address of website visitors, and use a third party IP Geolocation API to get more data about that IP address to then store it into a database.


You will need to store the IP address and time of visit of all visitors. In addition, the geographical coordinates of each visitor should be stored when possible. A sample dataset with IP addresses and timestamps will be provided to participants in order to fill their database. This dataset is to be used to populate the aforementioned map.

Click Here to Download the Sample Dataset

  • A public (landing) page should, at a minimum, show the IP address of the visitor and display his location on a map.

  • A login page will have a simple html form with text fields for username and password. The administrative username and password may be hardcoded or stored in the database.

  • An admin page will display a map of all current website visitors (i.e. active within the last 5 minutes) and display their location on a map with markers. This page needs to have a date filter in order to display visitor's data in the selected date range.


You can use any free Mapping API to render the map and markers. (ex: Google Maps, MapBox, Open Street Map...) The visitors' geolocation will first be requested by using the browser's built in HTML5 functionalities, if a visitor chooses not to use geolocation from his device, his IP address will be used along with a third-party Geolocation API in order to fetch its associated coordinates


Bonus Points

Participants that display this data in real-time on a map will be granted extra points. When a visitor accesses a webpage, a map with a marker will automatically display the user's location without refreshing the page. When a second or third visitor accesses the same page, another marker would be added to the map without refreshing the page.

In order to achieve this, participants may use the following technologies

  1. Web Sockets (e.g. Socket.IO, Ratchet PHP, etc...)
  2. Mapping API: Google Maps API, MapBox, Open Street Map
  3. AJAX Requests

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


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

March 10, 2017
Detailed Specifications Release and Contest Start

March 27, 2017
Submission Deadline

April 4, 2017
Extended Deadline

May 1, 2017
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.


Flyer

Coding Challenge Flyer