<commit_before>Note: "BS" stands for BrainStorming.

#Arivale Coding Problem

## Problem description:

    When clients sign up for the Arivale service, they develop a 1:1
    relationship with a wellness coach over the course of a year. These
    coaches help them interpret their personal health data as well as
    make actionable recommendations to improve a client’s overall
    wellness. Clients need to schedule coaching calls on a monthly
    basis. We want to create a web based experience that makes it easy
    for clients to schedule a call. Clients should be able to see their
    coach’s availability and then book hour long coaching slot. Once a
    slot is booked, other clients should not be able to book that slot
    with the same coach.

## Alternatives

    Google Calendar offers an "office hours" appointment mechanism.  It
    doesn't quite do what the problem requires; it's only available to
    other members of the same school or corporate group account.

    

## Solution requirements:

    * Data Store
    * Middle Tier
    * Front-End

## Actors

    * Staff
    * Client

## Tables

    * Table of *Users* (flags "staff," "client," "staff_active," "client_active") [User]
      ** Is there redundant information in those flags?  Table-level
         constraints to prevent "client = false" "client_active = true"
         on the same object, for example?
    * Table of *User/user relationships* [Staff_client_relationship]
      ** staff_user_id (constraint: staff flag must be TRUE, staff_active flag must be TRUE)
      ** client_user_id (constraint: user flag must be TRUE, user_active flag must be TRUE)

    * Table of OfficeHours
      ** When the staff are available:
         *** staff_id
         *** availability: [(timestamp, timestamp)] defining TSRange: Availability

    * Table of *Appointments*<commit_msg>[doc] Adding Django-Appointments to things I've considered.<commit_after>Note: "BS" stands for BrainStorming.

#Arivale Coding Problem

## Problem description:

    When clients sign up for the Arivale service, they develop a 1:1
    relationship with a wellness coach over the course of a year. These
    coaches help them interpret their personal health data as well as
    make actionable recommendations to improve a client’s overall
    wellness. Clients need to schedule coaching calls on a monthly
    basis. We want to create a web based experience that makes it easy
    for clients to schedule a call. Clients should be able to see their
    coach’s availability and then book hour long coaching slot. Once a
    slot is booked, other clients should not be able to book that slot
    with the same coach.

## Alternatives

    Google Calendar offers an "office hours" appointment mechanism.  It
    doesn't quite do what the problem requires; it's only available to
    other members of the same school or corporate group account.

    There's also a Django app, django-appointments, that probably does
    most of what is asked of in this demo, but... I think I'd like to
    take a crack at it with Flask (which I don't know), Psycopg2, and
    doing most of the work (including a lot of the business logic) in
    Postgres, just to see if I can.

## Solution requirements:

    * Data Store
    * Middle Tier
    * Front-End

## Actors

    * Staff
    * Client

## Tables

    * Table of *Users* (flags "staff," "client," "staff_active," "client_active") [User]
      ** Is there redundant information in those flags?  Table-level
         constraints to prevent "client = false" "client_active = true"
         on the same object, for example?
    * Table of *User/user relationships* [Staff_client_relationship]
      ** staff_user_id (constraint: staff flag must be TRUE, staff_active flag must be TRUE)
      ** client_user_id (constraint: user flag must be TRUE, user_active flag must be TRUE)

    * Table of OfficeHours
      ** When the staff are available:
         *** staff_id
         *** availability: [(timestamp, timestamp)] defining TSRange: Availability

    * Table of *Appointments*
{'fraction_non_alphanumeric': 0.060658153241650296, 'fraction_numerical': 0.0012278978388998035, 'mean_word_length': 3.233887733887734, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '1939840', 'n_tokens_mistral': 1076, 'n_tokens_neox': 1026, 'n_words': 534}