WebFitts is a web-based Fitts' law testing application inspired by Scott MacKenzie's GoFitts application.
You can get WebFitts up and running on your system by following the instructions below!
In order to run WebFitts, please make sure your device meets the following requirements:
1. Python 3.6+ (Anaconda distribution recommended)
Once all the prerequisites are met, you can now run WebFitts by following the instructions below:
Open terminal and type the following command:
git clone https://github.com/adildsw/WebFitts
In the terminal, type the following command:
cd WebFitts
Once in the WebFitts directory, you can host the WebFitts web application in the localhost by typing the following command in the terminal:
python app.py
Upon successful server hosting, the terminal/command prompt should return the following message:
* Serving Flask app "server" (lazy loading)
* Environment: production
WARNING: This is a development server. Do not use it in a production deployment.
Use a production WSGI server instead.
* Debug mode: off
* Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
WebFitts can now be launched by opening any browser and entering the address http://127.0.0.1:5000
![](https://github.com/adildsw/WebFitt/raw/main/assets/screenshot_main.jpeg)
![](https://github.com/adildsw/WebFitt/raw/main/assets/screenshot_task.jpeg)
![](https://github.com/adildsw/WebFitt/raw/main/assets/screenshot_result.jpeg)
WebFitts offers some configurable parameters:
WebFitts has the functionality allowing users to host the application in custom address to allow for multi-device access over a network. This can be done by using the ip
and port
argument while launching the application.
python app.py --ip <IP> --port <PORT>
NOTE: The default IP is set to 127.0.0.1
, and the default port is set to 5000
.
In order to create tasks with a combination of multiple amplitude and width values, simply write all the amplitude and width values in their respective fields separated by a comma, and WebFitts will create all possible tasks using the (amplitude x width) configurations.
You can configure WebFitts to not save task results on the server setting the servdown
argument to 0.
python app.py --servdown 0
After the completion of every task, WebFitts saves 3 task result files on the client system (and the same files are also stored on the server if WebFitts is configured that way). The file description are differentiated using individual file types:
- click - files of this type contains detailed information of every click made during the task.
- task - files of this type contains the aggregated information of each task.
- overall - files of this type contains the aggregated information obtained from all the tasks.
All the data are stored in CSV format, and can be accessed using any text editor of choice. The data headers are included with each file. The header definition and calculations are derived from Scott MacKenzie's GoFitts application, the documentation of which can be found here.
All contributions are welcome! You can open an issue to discuss the changes, and use pull requests to send in the updates.