Harassment Manager is a web application that aims to empower users to document and take action on abuse targeted at them on online platforms.

Overview

Harassment Manager

Online abuse and harassment silence important voices in conversation, forcing already marginalized people offline.

Harassment Manager is a web application that aims to empower users to document and take action on abuse targeted at them on online platforms. It is designed for anyone that experiences significant online harassment, which can be episodic or an ongoing challenge. The tool has been built and tested using a community based research and design process with active Twitter users that experience significant and/or frequent harassment (more details about our research process and published results are available on Arxiv). Target users include folks who are disproportionately impacted by online harassment such as women and other marginalized groups, journalists, activists, and politicians.

This web app was built by Jigsaw, a unit within Google that explores threats to open societies and builds technology that inspires scalable solutions, in collaboration with Twitter. To detect potentially harmful comments, it uses Jigsaw’s Perspective API, which uses machine learning to identify “toxic” language. We define toxicity as language that is rude, disrespectful or likely to make someone leave a conversation. You can read our model cards to learn more about how our machine learning models are trained.

Development

  • Setup contains a technical overview of the application and how to set up dependencies
  • Development covers how to set up a local environment for development
  • Deployment contains instructions on how to deploy the application

Support

For any technical issues, please create an issue in this repository. For additional support and to contact us, see https://developers.perspectiveapi.com/s/contact-us.

Resources

There are many organizations, tools, and resources to support people who are experiencing online harassment. Below, we've included a few sources of information, as well as organizations and tools that can be used to help navigate.

Get Informed

Explore Digital Tools

Connect with Organizations

Comments
  • Migrate blocks from Twitter API Standard v1.1 to v2

    Migrate blocks from Twitter API Standard v1.1 to v2

    v2 introduces a few changes, including:

    • A new endpoint: https://api.twitter.com/2/users/:id/blocking, where :id is the ID of the requesting user.
    • Different request parameters. Namely, v2 does not support screen_name, only target_user_id.
    • Rate limiting to 50 requests per user per 15 minutes.

    To accomodate these changes, we update interfaces, request logic, and the UI. The error logic and UI messaging mimics our implementation for hiding Twitter replies for consistency.

    opened by dslucas 1
  • Update non-Angular packages

    Update non-Angular packages

    The most notable change here is the upgrade to version 9 of the Firebase Web SDK. We update the imports to the v9 compat library to keep changes small for now, but we'll want to upgrade to the modular v9 library in the future.

    See https://firebase.google.com/docs/web/modular-upgrade for more details.

    Other changes are just small import or RxJS operator fixes.

    opened by dslucas 1
  • Typo in README

    Typo in README

    Where it currently says "likely to make someone read a conversation", I think it should say "likely to make someone leave a conversation"?

    opened by cdbeland 1
  • Add support for Twitter API v2 Full-Archive Search

    Add support for Twitter API v2 Full-Archive Search

    As-is, Harassment Manager leverages the Enterprise Full-Archive Search API to fetch tweets directed at the logged-in user. This change enables developers to use either Enterprise or Twitter API v2 Full-Archive Search, which is the latest version of the Twitter API.

    To implement this, we add the relevant request logic to twitter.middleware.ts. We "pack" the v2 response format into the Enterprise response format to enable developers to switch between Enterprise and v2 forwards and backwards, without breaking usage for existing users of the application.

    Additional changes include:

    • Removing unused types and defining new ones for the v2 format
    • Changing fromDate and toDate to startDateTimeMs and endDateTimeMs and using formatting functions to accommodate differences in the timestamps expected by Enterprise vs. v2
    • Modifying server_config_template.json with a bearerToken field, which is necessary for using v2 Full-Archive Search
    • Updating the AppEngine runtime to nodejs12 to support some new operators, like flatMap
    • Updating documentation

    We deployed and tested an instance of Harassment Manager with each API and the application's behavior is largely identical between both versions, with a couple minor differences:

    1. The APIs return slightly different sets of tweets because of differences in the granularity of the timestamp format expected by each API. This difference is usually no more than an additional 1-3 tweets in the v2 instance.
    2. The tweets are displayed in slightly different orders when sorted by "Priority". This is due to small differences in how we parse the tweet text, which causes some variation in the Perspective API scores for the text. We opened issue #19 to investigate.

    We also noticed the Enterprise instance does not render some images that the v2 instance does. This seems more like an implementation issue on our end, rather than an API difference. We opened issue #17 to investigate.

    opened by dslucas 0
  • Add development build to angular.json and update build:app:dev command

    Add development build to angular.json and update build:app:dev command

    Angular 12 changed ng build to use the "production" configuration by default, which doesn't create source maps (used for debugging in the browser). We add that configuration and change the corresponding build command.

    opened by dslucas 0
  • Migrate from Google API Client Library to Identity Services library

    Migrate from Google API Client Library to Identity Services library

    We use the gapi.auth2 module to authenticate with Google to create a report in Sheets. The module was deprecated, so we migrate to the newer library in this PR. For this change, we:

    • Install the @types/google.accounts package for the relevant typings
    • Replace the library in index.html
    • Rewrite getGoogleSheetsAuth() to use the new library
    • Move getGoogleSheetsAuth() to OauthApiService and delete GapiService to clean things up a bit
    • Remove @types/gapi and @types/gapi.auth2 because they are no longer needed
    • Remove references to redirectUrls we were not using in createOAuthClient() in serving.ts
    • Update documentation

    See https://developers.google.com/identity/oauth2/web/guides/migration-to-gis for more details.

    opened by dslucas 0
  • Migrate mutes from Twitter API Standard v1.1 to v2

    Migrate mutes from Twitter API Standard v1.1 to v2

    This is largely identical to PR #8. We also:

    • Add logic to remove duplicate user IDs in getTwitterUsersInReport()
    • Modify DropdownButtonComponent to emit when an action is selected. We use this to update the action card text when block or mute are selected.
    opened by dslucas 0
  • Stripped-out text is different when using v2 vs. Enterprise

    Stripped-out text is different when using v2 vs. Enterprise

    In PR #18, we added support for v2 Full-Archive Search and noticed small differences in the sort order of tweets in the Create Report page. This seems like it's due to small bugs in how we strip out entities like URLs, hashtags, etc. in Enterprise. We should investigate and make the text as consistent as possible.

    opened by dslucas 0
  • Missing images in some Tweets

    Missing images in some Tweets

    Some tweets with images are missing the image(s) when displayed in the Create Report page when using Enterprise Full-Archive Search. This is likely something to do with how we're parsing out the media from the Twitter API response.

    opened by dslucas 0
  • Upgrade Firebase library usage from v9 compat to v9 modular

    Upgrade Firebase library usage from v9 compat to v9 modular

    We upgraded from v8 to v9 of the Firebase package in PR #5. v9 introduces a new modular API and accompanying methods, so we used the compat libraries to minimize the code changes. The compat libraries will be removed eventually, so we'll want to migrate accordingly.

    See https://firebase.google.com/docs/web/modular-upgrade for more details.

    opened by dslucas 0
Owner
Conversation AI
The Conversation AI Github Organization
Conversation AI
A simple to do list webpage where you can log the daily tasks you have to do, mark them as checked, modify them, reorder them and remove them. Made using HTML, CSS and JavaScript.

To-Do-List This Webpage is for an app called To-Do-List which helps you add, remove or check tasks you have to do. It is a simple web page which conta

Zeeshan Haider 9 Mar 12, 2022
This is a Webpack based to-do-list project. With this app, users can add thier daily routine tasks to the list, mark them as complet, edit them or delete them.

To Do List This is a Webpack based to-do-list project. With this app, users can add thier daily routine tasks to the list, mark them as complet, edit

Ali Aqa Atayee 12 Oct 30, 2022
Security tool + attack database used to take quick action against newly-discovered vulnerabilities in the blockchain.

SolidGuard Version: v1.0.1 SolidGuard is a Blockchain Security tool catered towards organizations who manages decentralized applications on the Ethere

Team SolidGuard 4 Jan 3, 2023
A unified and lightweight web application framework for multiple platforms.

Handlers.js Handlers.js is a unified and lightweight web application framework for multiple platforms. import handlerJS from "handlers.js"; const App

186526 7 Jul 26, 2022
A decentralised portal that aims to help Government Educational organisations to track student and colleges data to provide them with fellowships and programs.

DeSIDB A decentralised database built on Ethereum & Solidity. Introduction - India is a country with a population of 6.8 crore students graduating eac

Sachin Pandey 14 Jul 10, 2022
GameLand is an online gaming web application that allows users to view different kind of games available and share their views on each game.

GameLand is an online gaming web application that allows users to view different kind of games available and share their views on each game.Users can like and make reservations to play online. Built with HTML/CSS , JAVASCRIPT,API.

tarike bouari 6 Sep 9, 2022
CDK construct to periodically take snapshots of RDS databases, sanitize them, and share with selected accounts.

CDK Construct for RDS Sanitized Snapshots Periodically take snapshots of RDS databases, sanitize them, and share with selected accounts. Use this to a

CloudSnorkel 6 Dec 7, 2022
Brickdoc is an open-source compound document-based online workspace and low-code development platform.

Brickdoc ⚠️ Note: This software is currently under active development. Some features may be available in the future, and the API and interface may cha

Brickdoc 210 Dec 20, 2022
Brickdoc is an open-source compound document-based online workspace and low-code development platform.

Brickdoc ⚠️ Note: This software is currently under active development. Some features may be available in the future, and the API and interface may cha

MashCard 65 Jun 17, 2022
A totally functional user api. It's a service where you list users, create users, update or even delete them.

USER-API ?? ABOUT A user api system made with TypeScript using express and prisma. It's a service where you list user, create users, update them or ev

Luiz Sanches 4 Oct 27, 2022
this project is an online library application that enables users to keep track of books in their library by adding to and removing books from a list. Built with JavaScript ES6 syntax, HTML, and CSS

Awesome-Book1 The aim of this project is to restructure the Awesome books app code by using ES6 syntax and organising the workspace using modules. The

Afolabi Akorede 7 Jul 17, 2022
MERN stack application which serves as an online map journal where users can mark and rate the places they've been to.

PlaceRate PlaceRate is a MERN stack application which serves as an online map journal where users can mark and rate the places they've been to. You ca

Yuvraj Virdi 0 May 17, 2022
LearnR is an educators application that aims to bring together students and teachers on the community platform.

Getting Started with Create React App This project was bootstrapped with Create React App. Available Scripts In the project directory, you can run: np

Emerenini Cynthia Ngozi 0 Sep 5, 2022
Web-based tool to build gradient data for retro platforms using a visual editor

Gradient Blaster https://gradient-blaster.grahambates.com Gradient Blaster is a web-based tool to build gradient data for retro platforms using a visu

Graham Bates 5 Dec 13, 2022
A devtool improve your pakage manager use experience no more care about what package manager is this repo use; one line, try all.

pi A devtool improve your pakage manager use experience no more care about what package manager is this repo use; one line, try all. Stargazers over t

tick 11 Nov 1, 2022
Meogic-tab-manager is an extensible, headless JavaScript tab manager framework.

MeogicTabManager English document MeogicTabManager是一个有可拓展性的、headless的JavaScript标签页管理框架。 MeogicTabManager旨在提供可自由组装页面框架、自定义页面组件、甚至覆盖框架自带事件响应的开发体验。 Meogi

meogic-tech 5 Oct 8, 2022