Product
Introducing License Enforcement in Socket
Ensure open-source compliance with Socket’s License Enforcement Beta. Set up your License Policy and secure your software!
ABToast is a simple A/B Testing app that is developed in django. This app implements the Django Session functionality to achieve the goal.
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
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, is_active=True)
# 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)
Want to contribute? Great!
Do the necessary changes that you feel and send a pull request.
MIT
Free Software, Hell Yeah!
FAQs
ABToast is an A/B Testing app that is developed in django.
We found that django-abtoast demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Product
Ensure open-source compliance with Socket’s License Enforcement Beta. Set up your License Policy and secure your software!
Product
We're launching a new set of license analysis and compliance features for analyzing, managing, and complying with licenses across a range of supported languages and ecosystems.
Product
We're excited to introduce Socket Optimize, a powerful CLI command to secure open source dependencies with tested, optimized package overrides.