diff --git a/docs/design.md b/docs/design.md index 01c8d957..7947ba69 100644 --- a/docs/design.md +++ b/docs/design.md @@ -18,27 +18,31 @@ Data model - Experiments and experiment alternatives are automatically created when first occurrence in a template or view code appears. They are stored in table `experiments_experiment` - +-----------+-------------+---------------+---------------------+--------------------+-------+------------+----------+ - | name (PK) | description | alternatives" | relevant_chi2_goals | relevant_mwu_goals | state | start_date | end_date | - + ``` + +-----------+-------------+---------------+---------------------+--------------------+-------+------------+----------+ + | name (PK) | description | alternatives" | relevant_chi2_goals | relevant_mwu_goals | state | start_date | end_date | + ``` + - Enrolments - Bots are ignored - Session-based users are enroled based on session id **STORED WHERE?** - Logged in users are enroled based on their user id using table `experiments_enrollment` - - +-----+-----------------+-----------+-------------+---------------+---------+ - | id | enrollment_date | last_seen | alternative | experiment_id | user_id | + + ``` + +-----+-----------------+-----------+-------------+---------------+---------+ + | id | enrollment_date | last_seen | alternative | experiment_id | user_id | + ``` - Goals: - Definitions, goals must be created in advance and described in `settings.EXPERIMENTS_GOALS`. - Counters are stored in Redis using the following key names: - - COUNTER_CACHE_KEY = 'experiments:participants:' - PARTICIPANT_KEY = '%s:%s:participant' % (experiment.name, alternative_name) - COUNTER_FREQ_CACHE_KEY = 'experiments:freq:%s' - GOAL_KEY = '%s:%s:%s:goal' % (experiment.name, alternative_name, goal_name) - - + + ``` + COUNTER_CACHE_KEY = 'experiments:participants:' + PARTICIPANT_KEY = '%s:%s:participant' % (experiment.name, alternative_name) + COUNTER_FREQ_CACHE_KEY = 'experiments:freq:%s' + GOAL_KEY = '%s:%s:%s:goal' % (experiment.name, alternative_name, goal_name) + ``` Request-response cycle ----------------------