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:
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.
If your proposal is accepted you will be tasked with executing the project per the proposal.
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:
- 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. - When users arrive on the site, an
arrival
is recorded in the database, along with any URL parameters present in the URL. - 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
).
- The offer page displays an
offer image
andoffer 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: - 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. - The browser tab that had previously displayed the
/offer
page is set to display a thank you page (at/thankyou
).
An admin interface should be provided allowing an admin user to perform all CRUD actions on offers.