Skip to content

Instantly share code, notes, and snippets.

@dfrnswrth
Last active February 15, 2023 15:26
Show Gist options
  • Save dfrnswrth/cca5a2cf4d608a31d2fa3efc280b7b37 to your computer and use it in GitHub Desktop.
Save dfrnswrth/cca5a2cf4d608a31d2fa3efc280b7b37 to your computer and use it in GitHub Desktop.
Developer Evaluation

Developer Evaluation

Overview

We would like you to build a simple lead-generation website according to the specs provided below. We currently have a legacy site with similar functionality, and seek other example implementations for comparison purposes. The evaluation will consist of two phases:

Phase 1

Please provide a proposal that you believe is reasonable and sufficient to complete the project. At this time we are looking for a prototype-level delivery. As such, the system does not necessarily need to be immediately production ready. Please include:

  • Technologies to be used
  • Timeframe
  • Cost
  • Details regarding the production readiness of the proposal and what additional steps (if any) would be required after completion for the project to handle traffic at a level of 1 million users per month.

Please take no longer than one hour to create your proposal, and submit your proposal via email.

Phase 2

If your proposal is accepted you will be tasked with executing the project per the proposal.

Project Details

The completed website should consist of three pages (landing, offer, and thank you) and an administration interface. The site should be delivered as code via GitHub, and should include instructions for running on MacOS (or via docker), and instructions for how to access the admin interface.

The website should do the following:

Landing Page Lead-Gen Form

  1. Display a form on the homepage (/ index route) that collects the user’s first name, last name, and phone number. The form should allow pre-population via URL parameters, for example ?firstname=Jane should populate the first name field with “Jane”. Pre-populated values may be edited by the user before submitting the form.
  2. When users arrive on the site, an arrival is recorded in the database, along with any URL parameters present in the URL.
  3. When the user submits the form, the system records the submitted data (a lead), relationally linked to the arrival data, and redirects the user to an offer page (at /offer).

Offer Page

  1. The offer page displays an offer image and offer text. Offers are randomly selected from all existing offers created via the administration interface (see below for details). When the user clicks on either the image or the text:
  2. The user is taken to the offer URL in a new browser tab or window. Lead data is appended to the URL via URL parameters.
  3. The browser tab that had previously displayed the /offer page is set to display a thank you page (at /thankyou).

Administration Interface

An admin interface should be provided allowing an admin user to perform all CRUD actions on offers.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment