PHP + MySQL Backend for the iOS A/B Split Test Library
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
images
results
shared
tests
.gitignore
README.md
database_setup.sql

README.md

A-B-Split-Test-Server

This is a simple PHP Server to provide data for and store results from the iOS A/B Split Test Library (https://github.com/chrismaddern/iOS-Split-A-B-Test-Library).

It is very basic at the moment and allows configuration only by entering test cases directly in to the MySQL Database.

Setup

This should run on any PHP+MySQL Environment

Use the included database_setup.sql to set up the MySQL Database. You will need to create a user with permission to read/write this database.

Copy the files to a folder on your webserver.

Edit the DB_USER, DB_PASSWORD, DB_NAME variables in functions.php

Set the server_base_url value in ABTestSettings.plist in the iOS library to the URL of the folder the files are in.

Either leave the application_token the same in both the database and the client library or create a new Application (table applications) and then set the application_token in the plist file to match the token for your newly created Application.

Making a test

A test is created by creating a test_cases table record and series of test_case_values records with their test_case_id set to that of the newly created test case. The value of token in test_cases is the identifier that you use to set the test in the User Defined Values in Interface Builder - testCase.

The test case must have it's Application set to the current Application's id (application_id column).

Results will automatically be uploaded to the test_case_responses table as tests are conducted in the client.

License

This is licensed under the MIT License.

Contribution

Contribution is welcomed and encouraged! It would be great to create a web UI for configuring and visualising results but I'm not sure when I will have time.

If you have any difficulties in setup, please update this doc so that others won't have the same problem - the initial docs were very brief!