Please select one of the questions below to work on (no bonus points for doing more than one!).

The Race Around the World

Professor Higginbotham has challenged you to a race around the world in a steam-powered zeppelin of your own invention. In order to verify your time at each leg of the race, you will need to create a stopwatch web application consisting of a start/stop button and a history table. Each time you start the stopwatch, the application inserts a new row into the history table that records the start time, and the current latitude and longitude. When you stop the stopwatch, the application will record the time, latitude, and longitude, as well as the amount of time that has elapsed.

Helpful links to get you started

Stretch Goal 1

Add a reset button that clears the time entry history table.

Stretch Goal 2

Your journey may be a long one, and you may pass more than one timezone. Record the timezone when you start and stop the watch, and correctly display the elapsed time.

Your wi-fi will be spotty in the zeppelin, so you will need to ensure the history table is viewable offline as you marvel at your record-setting speed. You can use HTML5 geolocation and localStorage to help in your task. Good luck!

The Pirate Shop

The original Star Wars movies have been re-released on DVD and Blu-Ray. Your friend Piratical Liz, who has a boat off the coast in international waters, thinks she can undersell the distributor with cheap knock-off discs. She needs to build an online store to sell the dodgy movies. You are her only friend except for a crab named Gerald, and Gerald's strong sense of ethics has prevented him from taking part in this tomfoolery. The task of building the online store will have to fall to you.

Build a basic web application that implements a shopping cart. Piratical Liz's store will need to stock the following items:

  • Star Wars Episode IV DVD ($20)
  • Star Wars Episode V DVD ($20)
  • Star Wars Episode VI DVD ($20)
  • Star Wars Episode IV Blu-Ray ($25)
  • Star Wars Episode V Blu-Ray ($25)
  • Star Wars Episode VI Blu-Ray ($25)

When you add an item to the shopping cart, the cart should indicate the total number of items and the total cost. Customers should be able to change the quantity of each item after it has been added. Customers should also be able to remove an item from the cart entirely.

Good luck, and don't get caught!

Stretch Goal 1

If a customer adds all the different DVDs to their cart, they will automatically receive a 10% discount on those items only. If the customer adds all the Blu-Rays to their cart, they will automatically receive a 15% discount on those items only. These discounts should be indicated so the customer can see their savings.

Stretch Goal 2

Implement a bulk discount, so that if the customer adds 100 items or more to their cart, they will receive a 5% discount on their total. This discount should be applied to the total after the discounts above.

Taco Assembly

ClickTime has a growing number of employees in Austin, Texas, and if you've ever been to Austin you'll know that they are wild about their tacos. Your task is to create a random taco assembler, using our API of various taco ingredients.

The app should run in the browser, and allow the user to view all the options within each of five categories: shells, base layers, mixins, condiments, and seasonings. The user should be able to assemble a taco from these ingredients, which consists of the following:

  • 1 shell
  • 1 base layer
  • 1 mixin
  • 1 condiment
  • 1 seasoning

You can retrieve these from our API: https://ct-tacoapi.azurewebsites.net

Here are the endpoints for each of the ingredients:

  • /baseLayers/
  • /mixins/
  • /seasonings/
  • /condiments/
  • /shells/

After assembling a taco from these components, it should be added to a list and displayed. The user should see all of its ingredients in a complete, well-formatted sentence. Get creative with this and see how delicious you can make your taco sound!

Stretch Goal 1

Stretch goal: Allow the assembled tacos in the list to be removed individually. As great as they are, the user can't consume an indefinite number of virtual tacos.

Stretch Goal 2

Add a button that generates a randomly-assembled taco and adds it to the list alongside the user's constructed tacos.

Stretch goal 3

Allow users to select multiples of some ingredients, such as 1-2 mixins and 1-3 condiments. Your taco displayed as a sentence should still be a well-formatted; for example, if there are multiples of one ingredient, they should be separated with commas and/or the word "and".

Submission Instructions

Please submit what you would consider testable and maintainable production code. The code must be built and executed locally. Your code should well-documented, and include step-by-step build instructions. If the statement of the problem is unclear, feel free to make assumptions, but please state your assumptions in the solution.

Evaluation

If you haven't already done so, please submit your resumé, cover letter, and any other relevant work (e.g. GitHub, BitBucket, open source code, hackathon projects, or apps) online at clicktime.com/jobs, and follow the quiz submission instructions emailed to you. We will be evaluating your solution based on how well it adheres to the requirements set forth in this specification, how sensible your design choices are, and how efficient/clean/readable your code is.

Good Luck!

All questions and submissions are property of ClickTime.com, Inc.