{ "info": { "author": "Hiten Sharma", "author_email": "sharmahiten3@gmail.com", "bugtrack_url": null, "classifiers": [], "description": "# ABToast\n\nABToast is a simple A/B Testing app that is developed in django. This app implements the Django Session functionality to achieve the goal.\n\n### Installation\n\nABToast requires [Django](https://www.djangoproject.com/download/) to run.\n\nInstall ABToast from pip\n```sh\n$ pip install django-abtoast\n```\nOR, Get ABToast locally\n```sh\n$ git clone https://github.com/htadg/ABToast.git ABToast\n```\n\nAdd ABToast to INSTALLED_APPS\n```python\nINSTALLED_APPS = (\n # Django Default Apps\n 'django.contrib.admin',\n '...',\n # ABToast\n 'ABToast',\n)\n```\nAdd ABToast.middleware.ABMiddleware to the project middlewares\n```python\nMIDDLEWARE_CLASSES = (\n 'django.contrib.sessions.middleware.SessionMiddleware',\n 'django.middleware.common.CommonMiddleware',\n '...',\n # Custom Middleware\n 'ABToast.middleware.ABMiddleware',\n)\n```\nMigrate the database and create admin account\n```sh\n$ python manage.py makemigrations\n$ python manage.py migrate\n$ python manage.py createsuperuser\n```\nNow Create your own new Tests in the Database\n```\nNote: You can also create New Experiment and Tests from the Django Admin Panel\n```\n```python\nfrom datetime import datetime\nfrom dateutil.relativedelta import relativedelta\n\nfrom ABToast.models import Experiment, Test\n\n\n# Starting the Experiment from today\nstart_date = datetime.now()\n# End Date for the Experiment\n# Experiment runs for two months\nend_date = start_date + relativedelta(months=+2)\n\n# Initial Traffic Redirect for the first variant\ninitial_traffic = 50 # 50%\n\n# Create an Experiment\nexp = Experiment.objects.create(name=\"Homepage Test\", template_name=\"registrations/signup.html\", goal=\"registrations/success\", start=start_date, end=end_date, is_active=True)\n\n# Create two variations of the homepage.\n# Currently User can only create two Test instances for a particular Experiment\n# which means currently user can run A/B Testing on only two variants of a Page\n# One Test for the original template\nTest.objects.create(template_name=\"registrations/signup.html\", experiment=exp)\n\n# Other Test for the New Variant\nTest.objects.create(template_name=\"registrations/new_signup.html\", experiment=exp)\n```\nNow You can run A/B Test on a view\n```python\ndef home(request, template_name=\"registrations/signup.html\"):\n try:\n template_name = request.ab.run(template_name)\n except TemplateDoesNotExist:\n pass\n return render_to_response(template_name)\n```\n### Development\n\nWant to contribute? Great!\n\nDo the necessary changes that you feel and send a pull request.\n\n\n### Todos\n\n - [ ] Multivariate Testing\n - [ ] Add Graphical Information\n - [ ] Add Bayesian Formula for the Conversion Rates\n\nLicense\n----\n\nMIT\n\n**Free Software, Hell Yeah!**", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/htadg/ABToast", "keywords": null, "license": "MIT License", "maintainer": null, "maintainer_email": null, "name": "django-abtoast", "package_url": "https://pypi.org/project/django-abtoast/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/django-abtoast/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://github.com/htadg/ABToast" }, "release_url": "https://pypi.org/project/django-abtoast/1.2.0/", "requires_dist": null, "requires_python": null, "summary": "ABToast is an A/B Testing app that is developed in django.", "version": "1.2.0" }, "last_serial": 2463871, "releases": { "1.0.0": [ { "comment_text": "", "digests": { "md5": "79f40529a67016c462965980a6eded69", "sha256": "3d25c7cac28156c2e67cf5e0203c76e44e42dbec7432a2f626193d8ac90f6f6e" }, "downloads": -1, "filename": "django_abtoast-1.0.0-py2-none-any.whl", "has_sig": false, "md5_digest": "79f40529a67016c462965980a6eded69", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 8392, "upload_time": "2016-11-12T19:55:10", "url": "https://files.pythonhosted.org/packages/28/12/0e37876ab55165831ac63146c34a748f4442a8e79f4f372d40f2be2f4225/django_abtoast-1.0.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e81d39d2895dc3cc6f15114c275258a1", "sha256": "0aca50f585031a6e0b81bf68d0580764d4f99a66b7bfe0de05ce507c0d774258" }, "downloads": -1, "filename": "django-abtoast-1.0.0.tar.gz", "has_sig": false, "md5_digest": "e81d39d2895dc3cc6f15114c275258a1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4500, "upload_time": "2016-11-12T19:55:06", "url": "https://files.pythonhosted.org/packages/39/af/e4a9e1a20130ef740573fba4e4fd5960cdde6ee3b12ef11e90b7191df6b6/django-abtoast-1.0.0.tar.gz" } ], "1.0.2": [ { "comment_text": "", "digests": { "md5": "bd42443c58cfab860892097ebef2bd27", "sha256": "230f4e68f64d824826a339dd9e2670df5da7836e43fe1c9e7860979656687598" }, "downloads": -1, "filename": "django_abtoast-1.0.2-py2-none-any.whl", "has_sig": false, "md5_digest": "bd42443c58cfab860892097ebef2bd27", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 7805, "upload_time": "2016-11-13T19:31:00", "url": "https://files.pythonhosted.org/packages/0c/a2/d2800aefe3303113606f5a162b1d28ca9b3f07420920ee96467f257c2c24/django_abtoast-1.0.2-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "5dda5c49c54c60db810f37f81b938de8", "sha256": "9569291451174e7a423d364eee50f816bccab61beefb34eaada57951980705e8" }, "downloads": -1, "filename": "django-abtoast-1.0.2.tar.gz", "has_sig": false, "md5_digest": "5dda5c49c54c60db810f37f81b938de8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4286, "upload_time": "2016-11-13T19:30:56", "url": "https://files.pythonhosted.org/packages/bf/d8/cdc6ed7c8b9a36cad374cc72e0b033d61f125aa68d5a9e68bc8c7f3e37e9/django-abtoast-1.0.2.tar.gz" } ], "1.0.3": [ { "comment_text": "", "digests": { "md5": "6d18b4021488c521a9c5b144a88d4e5f", "sha256": "872975bdbe2ed8fe4dfed3a90b07f7534e323c5dc71945263a35c035afaf0bef" }, "downloads": -1, "filename": "django_abtoast-1.0.3-py2-none-any.whl", "has_sig": false, "md5_digest": "6d18b4021488c521a9c5b144a88d4e5f", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 8620, "upload_time": "2016-11-14T19:01:33", "url": "https://files.pythonhosted.org/packages/38/21/5d41347cb007217f3eda19c80a844fe3a3c1726ccea2bc168e76a1de0955/django_abtoast-1.0.3-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4ebb9cee6f0d585f4433216db061d506", "sha256": "d43a025fb50a9b357fcf05999fda70f3774d4ee1bf311b1d7061d8e9a2f7aa8f" }, "downloads": -1, "filename": "django-abtoast-1.0.3.tar.gz", "has_sig": false, "md5_digest": "4ebb9cee6f0d585f4433216db061d506", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4663, "upload_time": "2016-11-14T19:01:29", "url": "https://files.pythonhosted.org/packages/19/28/18fd7ab2fb06b2337354550c613c6432b4e2ad2b3d673b9bd88e3897f71e/django-abtoast-1.0.3.tar.gz" } ], "1.2.0": [ { "comment_text": "", "digests": { "md5": "41496fde8782ecaecbd05f153df2b78e", "sha256": "ee1988847b07679f04acbf9be990776432cb6ce6f6101ec04853c919f544f1d0" }, "downloads": -1, "filename": "django_abtoast-1.2.0-py2-none-any.whl", "has_sig": false, "md5_digest": "41496fde8782ecaecbd05f153df2b78e", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 8946, "upload_time": "2016-11-16T10:34:53", "url": "https://files.pythonhosted.org/packages/b2/d9/40c734901ccfa028d55ed9314fde4fd6be3db19675d463db8a8d09f7121f/django_abtoast-1.2.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "77d33fc121ba8c65c1ee916ec0ec3ddd", "sha256": "f9abab60660b197fb318ad968ec2a839c3dcb6e3b9aa9eb512e2b0911d48dbaa" }, "downloads": -1, "filename": "django-abtoast-1.2.0.tar.gz", "has_sig": false, "md5_digest": "77d33fc121ba8c65c1ee916ec0ec3ddd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4467, "upload_time": "2016-11-16T10:34:44", "url": "https://files.pythonhosted.org/packages/b9/ab/b494700da415b9e2076b6c91b70cc4ed2b368dd929fe1967fd9e1784739d/django-abtoast-1.2.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "41496fde8782ecaecbd05f153df2b78e", "sha256": "ee1988847b07679f04acbf9be990776432cb6ce6f6101ec04853c919f544f1d0" }, "downloads": -1, "filename": "django_abtoast-1.2.0-py2-none-any.whl", "has_sig": false, "md5_digest": "41496fde8782ecaecbd05f153df2b78e", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 8946, "upload_time": "2016-11-16T10:34:53", "url": "https://files.pythonhosted.org/packages/b2/d9/40c734901ccfa028d55ed9314fde4fd6be3db19675d463db8a8d09f7121f/django_abtoast-1.2.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "77d33fc121ba8c65c1ee916ec0ec3ddd", "sha256": "f9abab60660b197fb318ad968ec2a839c3dcb6e3b9aa9eb512e2b0911d48dbaa" }, "downloads": -1, "filename": "django-abtoast-1.2.0.tar.gz", "has_sig": false, "md5_digest": "77d33fc121ba8c65c1ee916ec0ec3ddd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4467, "upload_time": "2016-11-16T10:34:44", "url": "https://files.pythonhosted.org/packages/b9/ab/b494700da415b9e2076b6c91b70cc4ed2b368dd929fe1967fd9e1784739d/django-abtoast-1.2.0.tar.gz" } ] }