Eye Lab is an open-source tool to create eye-tracking usability tests. It started as a final undergraduate work for the Computer Engineering student Karine Pistili who made the prototype. The idea is to evolve it into a more complete and useful tool with the community's help.
The current version of the software allows users to create their usability sessions of a website, recording the webcam, screen, and mouse movements and use this information to find out where the user has been looking into the screen by using heatmaps.
The project consists of two parts, this repository contains the backend of the application, and the frontend can be found here. Install it as well to have the full application running.
python3 -m venv venvsource venv/bin/activatepip install -r requirements.txtflask runpython -m venv venvvenv\Scripts\activatepip install -r requirements.txtflask runconda create --name flask_env python=3.10conda activate flask_envpip install -r requirements.txtflask run- Files: use the environment files to configure deployments:
.envand.env.production(keep secrets out of the repo). Script: deploy with./deploy_cloud_run.sh(supports-e devor-e prod, CLI flags override env files).
Quick examples:
# Deploy using development defaults in .env
./deploy_cloud_run.sh -e dev
# Deploy to production using .env.production (or override values with flags)
./deploy_cloud_run.sh -e prod -p my-prod-project -s my-service-name -r europe-west6 -i my-image -aConfiguration variables (place in .env for local/dev or .env.production for prod):
PROJECT_IDβ GCP project idREGIONβ Cloud Run region (example:europe-west6)SERVICE_NAMEβ Cloud Run service nameIMAGE_NAMEβ container image name (default is same as service)ALLOW_UNAUTHβtrueorfalse(whether to allow unauthenticated access)
If no -e value is provided, deploy_cloud_run.sh uses dev and loads .env by default.
Files added by this project:
deploy_cloud_run.shβ helper script that builds with Cloud Build and deploys to Cloud Run..envβ development defaults..env.productionβ production template (do not commit secrets; see.gitignore).
Run locally with .env or .env.production:
# Run using development env file
./run_local.sh -e dev --port 3000
# Run using production env file (if you have it configured locally)
./run_local.sh -e prod --port 3000This script sources the selected env file and runs the app via python wsgi.py.
Security note: never commit production credentials or service account keys. Keep .env.production and any secret files out of source control.
-
If you face issues running
flask run, try:python -m flask run
-
If Flask is not installed, install it manually:
pip install flask
-
On Windows, if
venv\Scripts\activatedoesn't work, run PowerShell as Administrator and enable scripts:Set-ExecutionPolicy Unrestricted -Scope Process
Anyone is free to contribute to this project. Just do a pull request with your code and if it is all good we will accept it. You can also help us look for bugs if you find anything that creates an issue. To see the full list of contributions, check out the ahead commits of the "develop" branch concerning the "main" branch. Full logs of the project development can be found in the Daily Work Progress file. Hoping to see your name in the list of contributors soon! π
This software is under the MIT License.
Copyright 2021 Uramaki Lab