Welbi Code Challenge Interview

If anything seems to not be working, feel free to reach out via email, this interview kit is always in constant change, hopefully with very few broken builds!

Backend Path

Welcome! Your task is to create a recommendation engine using a dataset we will provide you.

You can use whatever languages and frameworks you are comfortable in your stack so long as the code works. Our stack in the office is TypeScript (REST and GraphQL) backends, with react frontends attached to them.

If you manage to host your project online, it's a plus but definitely not a requirement.

To complete the interview:

  1. You need to download the dataset HERE first. This dataset includes a list of residents and programs, including attendance datapoints, of a ficticious retirement community.
  2. Create a single (1) system that will recommend programs to be run. It should propose three candidate programs which address one of the following needs:
    • Something that Darla Blanda would like
    • Engages the highest number of residents
    • Engages multiple isolated residents (those who have not been to a program recently)
    • Addresses a gap in offerings (lots of interest from residents, but no similar programs planned)
    • Addresses a gap in time (a reasonable day and time with few programs offered)
  3. This system can be interacted via the CLI, a Rest/tRPC endpoint, a GraphQL mutation, have a frontend attached to it or anything else of your liking.
  4. Commit your code to a public Github repository for us to review.
  5. Respond to the code challenge invitation email with a link to your Github repository and we will be in touch with you as soon as possible.

ps: You can definitely use your work done on this code challenge as part of your porfolio.

Front end Path

Welcome! Your task is to create an interactive website that displays some data from an API.

You can use whatever languages and frameworks you are comfortable in your stack so long as the code works. Our stack in the office is React+TypeScript on top of a Node.js+TypeScript (REST and GraphQL) backend.

If you manage to host your project online, it's a plus but definitely not a requirement.

To complete the interview:

  1. To obtain your authentication token, Send a POST request containing your email (using "email" as the key, with the body formatted as raw JSON) to
    https://welbi.org/api/start

    From now on, the token is to be sent with all queries as an authorization header, with the shape (More information on the Bearer Authentification)
    Authorization: Bearer [the token goes here]
  2. Build your front end to display and interact with the programs and their attendees, in whatever manner you deem appropriate.
  3. You should display the residents, display the programs, allow creating a resident or program, and allow marking a resident as attending a program.
  4. Commit your code to a Github repository
  5. Send a POST request containing a link to the repository (using "url" as the key, with the body formatted as raw JSON) to
    https://welbi.org/api/finish

To use REST:

  1. Fetch a list of residents by sending a GET request to
    https://welbi.org/api/residents
  2. Fetch a list of programs by sending a GET request to
    https://welbi.org/api/programs
  3. Send a POST request to the same routes to create a new resident and a new program, body needs to be raw JSON
  4. Attend the new resident to the new program by sending a POST request to
    https://welbi.org/api/programs/[programId]/attend

To use GraphQL:

  1. Fetch a list of residents and programs by sending a request to
    https://welbi.org/api/graphql
  2. Create a new resident and a new program by sending a request to the same route
  3. Attend a new resident to the new program by creating a new attendance record

ps: You can definitely use your work done on this code challenge as part of your porfolio, even though API data might change shape as the code challenge evolves.