Typing Study: Cross-Device Keystroke Experiment

Overview

This project is a browser-based experiment that measures how typing speed and behavioral patterns differ between devices (laptop vs. smartphone) and age groups (18–22 vs. 40–55).

It’s built as part of my CS-258 Machine Learning project and forms the foundation for a later statistical and machine-learning analysis phase.

Features
  • Dynamic Consent & Participant Management:

    Generates unique participant IDs, records consent, and logs demographic info.

  • Balanced Randomization System:

    Uses a Google Sheets “meta” tracker to balance device order across age groups, ensuring even sampling between laptop → phone and phone → laptop conditions.

  • Phase-Based Typing Trials:

    Each participant completes one practice and three recorded sentences per device.

    Metrics logged include total typing time, mean and 95th percentile inter-key intervals, pause frequency, and backspace count.

  • Automatic Device Handoff:

    Intelligent cross-device flow using URLs and QR codes — automatically transitions between devices for Phase 2.

  • Google Apps Script Backend:

    Functions as a lightweight REST API for data storage and synchronization across devices.

Technologies Used
  • Frontend: HTML, CSS, and Vanilla JavaScript for a responsive interface and real-time user feedback.

  • Backend: Google Apps Script and the Google Sheets API, acting as a lightweight cloud-based REST server to securely handle participant data, device assignment, and trial timing records.

  • Data Processing (Planned): Python with NumPy, Pandas, SciPy, and scikit-learn for statistical analysis and machine-learning modeling.

  • Visualization (Planned): Matplotlib and Seaborn for generating comparative visualizations of typing speed and behavioral metrics across devices and age groups.

Upcoming Work
  • Implement machine-learning models to classify device type or age group based on keystroke patterns.

  • Conduct two-way mixed ANOVA to compare mean completion times between age and device factors.

  • Add real-time dashboards for participant balance and progress tracking.

Try out the website

Images

Images from phone
Images from laptop
Check out the project files on Github!