Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings
/ ABToast Public

ABToast is a simple A/B Testing app that is developed in django. This app implements the Django Session functionality to achieve the goal.

License

Notifications You must be signed in to change notification settings

htadg/ABToast

Folders and files

NameName
Last commit message
Last commit date

Latest commit

History

26 Commits

Repository files navigation

ABToast

ABToast is a simple A/B Testing app that is developed in django. This app implements the Django Session functionality to achieve the goal.

Installation

ABToast requires Django to run.

Install ABToast from pip

$ pip install django-abtoast

OR, Get ABToast locally

$ git clone https://github.com/htadg/ABToast.git ABToast
$ cd ABToast/
$ python setup.py install

Add ABToast to INSTALLED_APPS

INSTALLED_APPS = (
 # Django Default Apps
 'django.contrib.admin',
 '...',
 # ABToast
 'ABToast',
)

Add ABToast.middleware.ABMiddleware to the project middlewares

MIDDLEWARE_CLASSES = (
 'django.contrib.sessions.middleware.SessionMiddleware',
 'django.middleware.common.CommonMiddleware',
 '...',
 # Custom Middleware
 'ABToast.middleware.ABMiddleware',
)

Migrate the database and create admin account

$ python manage.py makemigrations
$ python manage.py migrate
$ python manage.py createsuperuser

Now Create your own new Tests in the Database

Note: You can also create New Experiment and Tests from the Django Admin Panel
from datetime import datetime
from dateutil.relativedelta import relativedelta
from ABToast.models import Experiment, Test
# Starting the Experiment from today
start_date = datetime.now()
# End Date for the Experiment
# Experiment runs for two months
end_date = start_date + relativedelta(months=+2)
# Initial Traffic Redirect for the first variant
initial_traffic = 50 # 50%
# Create an Experiment
exp = Experiment.objects.create(name="Homepage Test", template_name="registrations/signup.html", goal="registrations/success", start=start_date, end=end_date, cancelled=False)
# Create two variations of the homepage.
# Currently User can only create two Test instances for a particular Experiment
# which means currently user can run A/B Testing on only two variants of a Page
# One Test for the original template
Test.objects.create(template_name="registrations/signup.html", experiment=exp)
# Other Test for the New Variant
Test.objects.create(template_name="registrations/new_signup.html", experiment=exp)

Now You can run A/B Test on a view

def home(request, template_name="registrations/signup.html"):
 try:
 template_name = request.ab.run(template_name)
 except TemplateDoesNotExist:
 pass
 return render_to_response(template_name)

Development

Want to contribute? Great!

Do the necessary changes that you feel and send a pull request.

Todos

  • Multivariate Testing
  • Add Graphical Information
  • Add Bayesian Formula for the Conversion Rates

License

MIT

Free Software, Hell Yeah!

About

ABToast is a simple A/B Testing app that is developed in django. This app implements the Django Session functionality to achieve the goal.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

Languages

AltStyle によって変換されたページ (->オリジナル) /