Introduction words: this challenge might seem a bit overwhelming at first sight, yet the reason why the description page is so long, is because it's just well documented with a lot of context. We're a Startup, we want to move fast, we want to take a lot of small decisions to go in the right direction. This is only possible through trusting and empowering everyone and thus by giving as much context as possible to take smart decisions. Use this context to decide what to do and what not to do. Don't hesitate to ask questions if you need extra information.

🎯 Objectives & Mindset

This challenge aims at making sure that we've got an understanding of your technical level. There is no perfect answer, and we'll be pleased to hear how and why you came to the solution you propose. There are however wrong answers (the ones that do not meet the specifications).

The coding is important, yet not the most relevant part of the challenge. The choices you make and the decisions in terms of architecture, coding structure, design patterns are what we'll be really focusing on.

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/9948b648-237d-414d-9110-0a58f2b8af77/4psss3.jpg

<aside> πŸš€ Your mission, shall you choose to accept it, is to create the backbone of a self-employed insurance adviser web app (only the backend part).

Don't implement every details of it, this would take you too long, so follow the lean approach by deciding where you'll focus your energy and time now for this challenge, what you'll delay for later (out of the scope of the challenge) and of course why you take those decisions. Think of it as a solution you would like to build if you had to maintain it yourself afterward.

</aside>

⏲️ Timing

This should take you about between half a day and a day and a half to complete depending on how much you want to invest yourself and the available time you have. You have one week to send us your answer as we know you might work on it from time to time on top of you current day job or on top of an ongoing mission at a client.

It's really up to you to see how much time you want to put into this as this is exactly the kind of exercices where it's never really finished. Yet the purpose here is to have a backbone only.

πŸ‘¨β€πŸ’» The challenge

πŸ‘©β€βš•οΈ Business context

After a long period of training, a doctor finishes her education training and will start her own business. She goes to her accountant / legal expert that helps her setup all the paper work to start her company. During the process he mentions: "now you need to also get yourself insured for any mistakes you might do as a doctor ; you must get yourself a RC pro". Of course she doesn't know what that is, she Googles it and land on blog page written by one our our expert on our website that explains what this insurance is. The blog call to action redirects to a small simulation page.

<aside> πŸ‘¨β€πŸ« The "RC PRO" is a kind of insurance that all businesses should have to insure themself against any professional risks they have while working. It stands for "ResponsabilitΓ© civile professionelle" and I am sure you will find some quite good information on the internet shall you want to πŸ˜‰.

As a doctor's activity is considered as a business by the law (self-employed - independent), she must insure herself with a "RC pro" to protect her against the acts she does while working (administrating the wrong medecine or the wrong dosage, cutting something that musn't be cut while in surgery, ...). You get the point.

</aside>

From the company perspective, the context is the following. The main goal of the company is to sell this doctor an insurance contract that will fit her needs and protects her for the years to come. Fortunatly, the company is a broker and thus not need to reinvent the wheel nor need to create a new insurance product.

We work with an insurance company that has a wonderful Rest JSON API (in reality this is not the case, don't get over excited here πŸ˜„). We thus need to provide some kind of advice based on the user & context, and to return a quote to the client so that she can select what she wants in terms of covers (covers are the sub-components of a contract).

The idea from a business perspective is that the client will probably (it's usually the case) go on some other websites or check with a friend and ask where he got his insurance, then contact another broker or an insurance's agent. So competition is harsh and we need to find a solution that will provide the client with relevant information so that she gets interested in contracting the product with us and in the meantime we need to get some credentials to transform this anonymous user into a lead. We need to be able to contact this lead to continue the initial digital process over the phone with an expert explaining her more in details the insurance product and the process. The fastest we react to a lead, the better are the chances to close the contract.

<aside> πŸ‘¨β€πŸ« A lead is a user that marked an intention to buy an insurance contract and that we're able to contact because we've already gathered information (phone or email) on him β†’ He's now a potential client.

</aside>

🚧 Specifications

  1. Client requirements: we are waiting from you to create a system that enables the client to:
  2. Business requirements: this solution must of course work for the business as well:

<aside> πŸ‘‹ Don't bother about the contract creation ! This is totally out of the scope of the challenge.

</aside>