Git Product home page Git Product logo

conversationai-moderator's People

Contributors

aalempijevic avatar dependabot[bot] avatar dslucas avatar ericagreene avatar iislucas avatar jde avatar rufushamade avatar sorensenjs avatar tdreyno avatar thomasbnt avatar waalsh avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

conversationai-moderator's Issues

Deferred All View doesn't scale

Context

The only way to view all the comments that are deferred, across all articles and all categories is to go to the Moderated tab of the All view /#/categories/all/moderated/deferred. That view is not performant when there are a lot of comments in the database. In the NYT production system, the /services/moderatedCounts/categories/all call that returns the commentIds for all the Moderated tabs eventually times out. So even though the product has a place to see all the deferred comments, it's not usable.

Expected Behavior

Ideally, the deferred tab of the All view renders all the deferred comments regardless of the scale of the comments in the database.

Actual Behavior

Since the deferred-all view is part of the Moderated-All tab (i.e. /#/categories/all/moderated), rendering that tab requires rendering the comments for all the tabs and that means fetching the commentIds for what could be millions and millions of comments.

Possible Fix

I'm not sure what the easiest fix is. We could change the /services/moderatedCounts/categories/all endpoint to return a paginated list of commentIds instead of all the ids. I'm not sure how big of a change that would be on the frontend.

Steps to Reproduce

  1. Load a bunch of comments into your database
  2. Go to the /#/categories/all/moderated/deferred page
  3. Notice that the /services/moderatedCounts/categories/all endpoint returns every id in the database.

Context

Your Environment

  • Environment name and version (e.g. Chrome 39, etc):
  • Operating System and version (desktop or mobile):

Search

As a moderator, I want to search a string of text and see which comment(s) it appears in so that I can quickly find comments to resolve issues or questions. As a moderator, I want to search via email or username and find a commenter’s member ID so that I can follow-up on specific questions.

Details: Moderator currently supports search by ID, which we would want to keep.

Make search better

Current fails:

  • Search for phrases outside of individual article is too slow. e.g. last time someone said monkey. It returns the wrong results. Currently using SQL string search.
  • Find by email/contributor. etc.

Think about elastic search.

Dashboard with auto-refresh

As a moderator, I want to see the status of all comments on a particular article at a glance so that I can understand what’s most pressing. As a moderator I want to switch automation on or off from this dashboard view so that I can quickly manage moderation across sensitive stories.

Details: Showing what’s new and what’s already been approved are the two most important statuses, but creating a high-level view of all the tabs would be great. The dashboard view should auto-refresh so that the most up-to-date numbers are being shown without disrupting a moderator’s workflow. Auto-refresh can be up to a few minutes behind, but should not refresh the browser, just the data displayed. The dashboard should also link to the articles in Scoop in order to facilitate turning comments on/off quickly.

Pictured here is a screenshot from CRNR’s dashboard which can be used as an example. This screenshot is not intended to influence design choices, only to give an example of what’s currently in use.
screen shot 2018-07-05 at 1 54 22 pm

Typescript issues with React/Redux type munging.

A number of React / Redux functions such as 'connect' and 'mergeProps' can do type munging (e.g., wrapping an object in a container with a subtly different type signature) that cause compile failures in later versions of the TypeScript compiler. As yet we haven't worked out the proper way to fix these issue

We are currently fixing them by casting the types to 'any', but this is far from satisfactory.

This issue is a placeholder to make it easier to find these workarounds. We'll add TODOs each time we do a workaround. Once we work out a proper way to fix this issue, we can return and fix the TODOs.

Error running local server

Context

Trying to run the local docker server and getting npm error

Expected Behavior

Expected behavior is to have a running local server

Actual Behavior

Building server
Step 1/7 : FROM gcr.io/google_appengine/nodejs
 ---> 6a09807598e8
Step 2/7 : RUN install_node v8.11.1 && apt update && apt dist-upgrade -y && apt install -y mysql-client
 ---> Using cache
 ---> 17970a2b50be
Step 3/7 : WORKDIR /app/
 ---> Using cache
 ---> 3edcee9a4b05
Step 4/7 : COPY . /app/
 ---> Using cache
 ---> ad612aeac03e
Step 5/7 : RUN npm cache verify && bin/install
 ---> Running in 406492d6e37f
npm ERR! stream.push() after EOF

npm ERR! A complete log of this run can be found in:
npm ERR!     /root/.npm/_logs/2019-07-03T19_39_56_468Z-debug.log
ERROR: Service 'server' failed to build: The command '/bin/sh -c npm cache verify && bin/install' returned a non-zero code: 1

Possible Fix

Steps to Reproduce

  1. Cloned repo and checkout master
  2. Follow readme and run docker-compose -f deployments/local/docker-compose.yml up -d

Context

Your Environment

  • Environment name and version (e.g. Chrome 39, etc): Docker Engine 18.09.2
  • Operating System and version (desktop or mobile): MacOs

TypeError: OAuth2Strategy requires a clientID option

Hi, I got into trouble when trying to setup the local mysql. when I run the second commands(for the first line is ok, but not for the second):
mysql -uroot os_moderator < packages/backend-core/seed/initial-database.sql
./bin/osmod migrate

I got the error message below. Any help is appreciated.

Response

conversationai-moderator-master/packages/backend-core/node_modules/passport-oauth2/lib/strategy.js:82
if (!options.clientID) { throw new TypeError('OAuth2Strategy requires a clientID option'); }
^

TypeError: OAuth2Strategy requires a clientID option
at Strategy.OAuth2Strategy (./conversationai-moderator-master/packages/backend-core/node_modules/passport-oauth2/lib/strategy.js:82:34)
at new Strategy (./conversationai-moderator-master/packages/backend-core/node_modules/passport-google-oauth20/lib/strategy.js:52:18)
at Object. (./conversationai-moderator-master/packages/backend-core/dist/domain/auth/providers/google.js:91:26)
at Module._compile (module.js:635:30)
at Object.Module._extensions..js (module.js:646:10)
at Module.load (module.js:554:32)
at tryModuleLoad (module.js:497:12)
at Function.Module._load (module.js:489:3)
at Module.require (module.js:579:17)
at require (internal/module.js:11:18)
at Object. (./conversationai-moderator-master/packages/backend-core/dist/domain/auth/providers/index.js:21:10)
at Module._compile (module.js:635:30)
at Object.Module._extensions..js (module.js:646:10)
at Module.load (module.js:554:32)
at tryModuleLoad (module.js:497:12)
at Function.Module._load (module.js:489:3)

Section-specific banned word list

As a moderator, I want to auto-approve/reject comments based on word lists specific to a section so that auto-moderation can keep up with language as it pertains to specific topics.

Details: “Section” in this case means the sections identified in Moderator (often a combination of desks).

Configuration File Missing

Several parts of the documentation... including the very first line of the Readme reference a file packages/config/index.js

Specifically: The configuration is found in packages/config/index.js. It is pretty self explanatory. All settings can be overridden via environment variables.

Not helpful as... well, that file isn't there, but it's mentioned many other places in the documentation.

I'm not sure if it will get generated after running some command or another, or if it's been moved.

image

Context

As a new user, I'm trying to figure out what environment variables to set, and so not being able to find this file is a bit frustrating.

Expected Behavior

The file to exist.

Actual Behavior

No file is there and I'm confused.

Possible Fix

Either update the docs to point to the new location of this file, OR specify how to get it generated.

Steps to Reproduce

  1. Read the docs
  2. Look for the file specified

Context

I'm trying to figure out how to setup authentication

Your Environment

N/A

Dashboard assignment management

As a moderator manager, I want to be able to manage when comments are opened and closed on an article from the dashboard view, as well as set the default sort for the comments on an article, so that I can quickly manage multiple articles.

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.