{"id":21293324,"url":"https://github.com/ejw-data/webdev-ab-testing","last_synced_at":"2026-04-12T22:53:52.693Z","repository":{"id":178408453,"uuid":"661783768","full_name":"ejw-data/webdev-AB-testing","owner":"ejw-data","description":"Flask app that tracks webpage interactions for A/B testing ","archived":false,"fork":false,"pushed_at":"2023-07-04T00:08:19.000Z","size":560,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-22T06:47:10.959Z","etag":null,"topics":["flask","html-css-javascript","javascript","sqlalchemy","sqlite"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ejw-data.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-07-03T16:29:52.000Z","updated_at":"2023-07-07T22:14:59.000Z","dependencies_parsed_at":"2023-07-09T18:16:34.433Z","dependency_job_id":null,"html_url":"https://github.com/ejw-data/webdev-AB-testing","commit_stats":null,"previous_names":["ejw-data/webdev-ab-testing"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ejw-data%2Fwebdev-AB-testing","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ejw-data%2Fwebdev-AB-testing/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ejw-data%2Fwebdev-AB-testing/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ejw-data%2Fwebdev-AB-testing/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ejw-data","download_url":"https://codeload.github.com/ejw-data/webdev-AB-testing/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243762236,"owners_count":20343976,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["flask","html-css-javascript","javascript","sqlalchemy","sqlite"],"created_at":"2024-11-21T13:54:21.480Z","updated_at":"2026-04-12T22:53:47.654Z","avatar_url":"https://github.com/ejw-data.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# webdev-AB-testing  \nAuthor:  Erin James Wills, ejw.data@gmail.com  \n\n![AB Testing Banner](./images/AB-flask-db.png)  \n\n\u003ccite\u003ePhoto by \u003ca href=\"https://unsplash.com/@pistos?utm_source=unsplash\u0026utm_medium=referral\u0026utm_content=creditCopyText\"\u003eJeffrey Hamilton\u003c/a\u003e on \u003ca href=\"https://unsplash.com/s/photos/identical?utm_source=unsplash\u0026utm_medium=referral\u0026utm_content=creditCopyText\"\u003eUnsplash\u003c/a\u003e\u003c/cite\u003e\n\n\u003cbr\u003e\n\n## Overview  \n\u003chr\u003e  \nThis repo explores the basic concepts of how to obtain information for AB testing.\n\n## Status  \nThis is just the starting point but the core structure of the code works as of 7/3/2023.  The Flask app currently loads and index.html page that has two buttons.  Each button is tracked through the class associated with it named `trackable`.  The database currently stores only the id of the button clicked but this can be expanded to include a data, session id, and user id.  The app already has a working feature that stores a cookie but this feature needs improved such that the database is checked for this cookie and if the id associated with the cookie can not be found then a new id is assigned.  \n\n\u003cbr\u003e\n\n## Next Phase  \n1.  Create cookie containing a user id\n1.  Update database to collect datetime, cookie id, etc related to page interaction\n1.  Create two html pages that are considered the A and B versions.  \n1.  Create admin page that summarizes website interactions via a dashboard\n    * Dashboard includes  \n        * Table of most recent users to access page\n        * Show t-test of A and B pages\n\n\u003cbr\u003e\n\n## Longterm Goals\n1. add authentication\n1. add error handling\n1. more sophisticated tracking\n1. improved analysis page\n\n\u003cbr\u003e\n\n## Key Performance Indicators (KPI)\n1. conversion rate\n1. click-through rate\n1. bounce rate\n1. page views\n1. form submissions\n\n\u003cbr\u003e\n\n## Browser Information\n1.  Cookies\n1.  Local Storage or Session Storage\n1.  IP Address\n1.  User-Agent String\n1.  Referrer Header\n\n\u003cbr\u003e\n\n## Creating the Database  \n1.  From terminal, type: `sqlite3 \u003cdb_name\u003e`\n2.  Write SQL queries to create tables\n3.  When complete type: `.exit`","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fejw-data%2Fwebdev-ab-testing","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fejw-data%2Fwebdev-ab-testing","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fejw-data%2Fwebdev-ab-testing/lists"}