GithubHelp home page GithubHelp logo

rhelmer / web-science Goto Github PK

View Code? Open in Web Editor NEW

This project forked from mozilla-rally/web-science

0.0 0.0 0.0 4.12 MB

A library of reusable functionality for Mozilla Rally studies.

License: Apache License 2.0

JavaScript 100.00%

web-science's Introduction

Web Science

A library of reusable functionality for Firefox Pioneer studies.

Requirements

Example Usage

See the News and Disinformation Study, which we recommend using as a template.

Architecture

The Web Science library consists of two types of modules: measurement modules that collect a specific type of data, and utility modules that provide supporting functionality. A Firefox Pioneer study can optionally take advantage of the Web Science library (or a subset of the library) for faster development and review. We recommend including the repository for Web Science as a Git subtree in the repository for a Firefox Pioneer study.

Measurement Modules - /Measurements/

The measurement modules provide reusable passive collection and intervention building blocks for conducting studies.

Utility Modules - /Utilities/

The utility modules provide a library of reusable functions that assist with conducting studies.

  • Lifecycle.js - Functions for starting and stopping studies.
  • Debugging.js - Functionality for outputting debugging messages to the console in a consistent format. Implemented with the console Web API.
  • Idle.js - Functionality for supporting browser idle state listeners with differing idle state thresholds. Implemented with the idle WebExtensions API.
  • LinkResolution.js - Functionality for resolving shortened and shimmed URLs. Implemented with the fetch Web API and the webRequest WebExtensions API.
  • Matching.js - Functions for efficiently matching domain names and URLs.
  • Messaging.js - Functionality for supporting message types and message schemes for messaging between the background page and content scripts. Implemented with the runtime WebExtensions API.
  • PageEvents.js - Functions for acting on events associated with webpage loading and user attention. The PageEvents module provides a research abstraction that guarantees the order of events (i.e., a finite-state automaton). Implemented with the tabs, windows, and webRequest WebExtensions APIs and the Idle utility module.
  • Randomization.js - Functionality for selecting and persisting randomized conditions.
  • ResponseBody.js - Functionality for reassembling an HTTP(S) response body using the webRequest WebExtensions API.
  • Scheduling.js - Functionality for scheduling daily and weekly tasks, when the browser is idle. Implemented with the Idle utility module. Similar to the idle-daily event emitted by the Firefox nsIdleService.
  • SocialMediaActivity.js - Functionality for listening to and acting on user sharing activity on social media platforms. Facebook, Twitter, and Reddit are currently supported. Implemented with the webRequest WebExtensions API.
  • Storage.js - Functionality for persisting study data. Implemented using the localForage library.

web-science's People

Contributors

akohlbre avatar benjaminhkaiser avatar jonathanmayer avatar pranayanchuri avatar rhelmer avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.