# ex_abby v0.5.1 - Table of Contents

> An A/B Testing library for Phoenix (with optional LiveView admin).

## Modules

- [ExAbby](ExAbby.md): ExAbby: an Elixir/Phoenix library for A/B testing.
- [ExAbby.BotDetector](ExAbby.BotDetector.md): Configurable, transient bot classification for request-aware integrations.
- [ExAbby.BotDetector.Context](ExAbby.BotDetector.Context.md): Transient request data passed to bot detector modules.
- [ExAbby.DatetimeParser](ExAbby.DatetimeParser.md): Handles parsing of various datetime formats including relative dates and formatted dates.

- [ExAbby.Experiment](ExAbby.Experiment.md): Schema: ex_abby_experiments

- [ExAbby.ExperimentReport](ExAbby.ExperimentReport.md): Read model behind the admin experiment pages.
- [ExAbby.Experiments](ExAbby.Experiments.md): The Experiments context.

- [ExAbby.Live.ExAbbyRedirectLive](ExAbby.Live.ExAbbyRedirectLive.md): Redirects /ex_abby to /ex_abby/index

- [ExAbby.Live.ExperimentIndexLive](ExAbby.Live.ExperimentIndexLive.md): Lists all ex_abby experiments with their best result, health and running time.

- [ExAbby.Live.ExperimentShowLive](ExAbby.Live.ExperimentShowLive.md): Shows a single experiment's variations, plus editing of weights.

- [ExAbby.Live.TrialManagementLive](ExAbby.Live.TrialManagementLive.md)
- [ExAbby.LiveViewHelper](ExAbby.LiveViewHelper.md): Functions to handle A/B testing in a LiveView scenario:
- Using session-based logic, but with no direct `conn`
- Checking `connected?(socket)` before creating/recording

- [ExAbby.Migrations](ExAbby.Migrations.md): Provides migration code to create/drop the ex_abby A/B testing tables.
Host apps can simply do
- [ExAbby.PhoenixHelper](ExAbby.PhoenixHelper.md): Provides Phoenix-based A/B testing functions that operate with a Plug.Conn

- [ExAbby.Router](ExAbby.Router.md): Provides macros for injecting ExAbby admin routes into a Phoenix router.
- [ExAbby.SessionPlug](ExAbby.SessionPlug.md): A Plug that ensures each user has an ex_abby_session_id and compact bot
status in their session. This is helpful so that LiveViews also have a
stable session ID and request eligibility status to use when assigning an
experiment variation.

- [ExAbby.Statistics](ExAbby.Statistics.md): Statistical comparisons for experiment summaries.
- [ExAbby.Trial](ExAbby.Trial.md): Schema: ex_abby_trials

- [ExAbby.Variation](ExAbby.Variation.md): Schema: ex_abby_variations

- [ExAbby.VariationAuditLog](ExAbby.VariationAuditLog.md)

