Double · Front End engineering challenge

👋 If you're looking for an adventure, look no further.

Instructions

  • To complete this challenge, you will need npm, node and git installed locally
  • Solve each level in order
  • Include the .git directory when submitting your solution
  • Don't spend more than 4 hours on this test
  • To start the app:
    • run npm i
    • run npm start
    • open http://localhost:8080/
  • If needed, here are the documentation links of: React and Luxon

Pointers

  • Keep in mind that you are working on an existing code-base.
  • Code should be clean, extensible and robust. Don't overlook edge cases.
  • You will have to create some basic UI. While we're not expecting you to be a skilled designer, it should come close to the look and feel of the app. We are looking for engineers with some product-sense.
  • We like emojis 😉

Submitting your results

  • Fork this repository
  • Open a PR on your fork (please do not open a PR on this repo or from your repo to this repo, we don't want other candidates to see your awesome solutions)
  • Share your forked repo with @pierre-elie, @augustinr and @flobories

We will review your code within 3 days and will be in touch via email

Let's do this! 💪

Challenge

Double helps executives and their assistants work better together. Managing agendas is an important part of an assistant's job, and we're inviting you to join our mission of making assistants's lives easier.

Level 1: Agenda's title bug fix

One of our users just submitted a bug report: the agenda's title ("Good morning", "Good afternoon", etc.) does not always update as the day goes by. Identify the source of this behavior and fix it.

Level 2: Handle errors

It seems that, occasionally, an uncatched error happens when the account is refreshed. Make sure the error is caught and that the user is aware that the refresh failed.

Level 3: Filter agenda events by calendar

We want to add a filtering mechanism on agenda events. The requirements for this feature are:

  1. Add a select menu that will filter events by calendar
  2. When a calendar is selected, only events from that calendar are displayed
  3. By default all calendars are displayed

Level 4: Group agenda events by department

Another enhancement would be to show all calendar events in one page, grouping them by department. Here is a quick mock-up of what the feature could look like:

The requirements for this feature are:

  1. Add a button to toggle groups by department
  2. When enabled, events will be grouped and each group will be clearly identified
  3. In each group, events will be sorted by ascending date-time

Questions

Please add your answers to the questions below:

  1. How long did you spend on this challenge?
  2. In your opinion, what are features that Double could work on that would be helpful for assistants when managing agendas?
  3. If you had more time, what would you add or change in the codebase?
  4. Do you have any constructive feedback that you would like to share with our team?