GithubHelp home page GithubHelp logo

citizendesk-interface's People

Contributors

danse avatar petrjasek avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

citizendesk-interface's Issues

Twitter filters

An editor can add or delete filters for viewing items from the Twitter stream. These are:

  • Twitter user ("follow" in Twitter's glossary)
  • Keyword ("track")
  • Geolocation ("locations")

Here users will add multiple filter criteria, such as the users @dougiegyro and @BarackObama, as well as the keywords "Mozambique" and "Maputo" and the hashtag #gerais, and location coordinates.

A filter can be deleted, which then stops the stream.

Allow session deletion

XMLHttpRequest cannot load https://cd2.sourcefabric.net/citizendesk-interface//auth/5448f5c99c61673fc1e1dd04?cachebuster=1414067662502. Method DELETE is not allowed by Access-Control-Allow-Methods. (index):1

Single sign-on with Superdesk

Citizen Desk should allow for single sign-on with Superdesk and/or other services (OAuth, Google, Facebook, Twitter).

Blacklisted terms for incoming SMS

Administrators and editors can create a list of blacklisted terms to automatically delete incoming junk SMS messages, or to not send automatic replies.

This blacklist can be edited at any time to better respond to the incoming junk messages.

Manual reply via SMS

An editor or verifier is able to write a reply to an incoming SMS. This reply is sent via the core to an SMS gateway (either Kannel, FrontlineSMS, Gammu or other) back to the sender's phone number. The window needs to display the number of characters remaining from the 140 characters.

Manage user roles

System privileges are used to determine what a user can and cannot do in the system. There will be a relatively limited set of roles in the system:

  • administrator
  • editor
  • verifier
  • citizen

An administrator can attach and remove roles for each user. Users can have multiple roles (i.e. a user can be an administrator, an editor and a verifier).

Assign incoming item

When an editor decides that an incoming item is worth verifying, they assign it to a verifier.

  • The report is visually marked for both the editor and verifier as assigned.
  • The proto report tag is nullified
  • The verifier can see the report in their incoming queue in real time

Reports can be generated later showing

  • which items have been assigned to which verifier
  • which items are assigned and are more than 12 hours old

Verifier incoming queue

When a verifier logs in to the system, they are led to the incoming queue page. This page lists:

  • Items that have been assigned and not verified
  • Verification status
  • Threaded view
  • Option to reply (if reply is implemented)

The verifier also has the option of displaying:

  • Further detail about the report
  • "Citizen card" including the ability to list previous reports from the sender

Automated reply via SMS

Administrators and editors are able to pre-define automated replies to incoming SMS messages. Examples include:

  • "Thank you" message
  • Asking for geolocation

A preferences page stores:

  • Whether the feature is turned on or off
  • Timeout to be set
  • The text to be sent in the automated message

The automated message should be written along the lines of:

  • "Thanks for your message to @verdade. We will be back with you if we have further questions. Can you also tell us where you are?"

Combined Twitter search and stream

When a user types in a filter criteria (follow, track, locations), the system should return the following:

  • Search results (probably limited to a certain number)
  • Stream for new items matching the criteria

redesign

the pages have to be redesigned, due to:

  • absence of grouping
  • performance issues preventing direct filtering on the main stream
  • requirement to look good on mobile (tablet)

i think that it is better for the new design to be mobile first

Trusted reporter list

The editor or verifier can access a page to create either a blacklist or whitelist of trusted reporters or known abusers. This list can include:

Whitelist

  • News organization staff
  • Trusted staff of collaborating organizations
  • Public figures whose identity has been confirmed

Blacklist

  • Known spammers
  • Known spreaders of hate messages
  • Users sending nonsense messages (airtime, configure, etc.)

Each of these lists should show the average verification score to validate assumptions about the users' trustworthiness.

Streams

Listing new items in chronological order in a linear timeline, with newest items on top. A stream returns items from the Twitter API or SMS (or other ingest sources later). Streams will require paging (for older items). Newer items in the thread require real-time updates as they are added to the database.

Enable, disable delete filters

An editor can enable, disable or delete a filter,

  • When a filter is enabled, new items are added to the database.
  • When a filter is disabled, new items are not added, but the previous items are stored.
  • When a filter is deleted, nothing new is coming in and all matching items are deleted.

Session summary message

When a citizen writes a message (mainly over SMS) that results in a session with multiple SMS messages, the verifier is able to write a summary message that sums up the session and is in the news organization's copywriting style.

The summary message, if used, is the message that is passed to the Live Blog.

Login

A user logs in with their username and password. This login provides the system with identification of the user, which is then used to determine system privileges.

Error modifying an existing report

Currently Sails issues an error when an existing report is modified, for example when some validation steps are checked. The error says:

E11000 duplicate key error index: citizendesk.reports.$id_1  dup key: { : nan.0 }

This may be related to balderdashy/sails#1573

Convert to Sails 0.10

The bigger part of the development of Sails moved to the new branch, 0.10. I think that the branch will probably become the stable one around June or before. Since there are several differences, i think that it is better to use the new version as soon as possible, in order to avoid the need for rewriting and debug again core parts of this code

Notification to users from third parties

Citizen Desk should pass along notifications from its upstream services (such as Twitter) notifying of error messages as:

  • Too many tweets, try again later
  • Too many criteria
  • Invalid ID

and so on. Whatever Twitter communicates to us via the API, we should communicate further to the user.

Sessions

Items from a communication are presented in a single session, which is then presented to the user in thread view. This means items between a citizen and an editor, or between two or more citizens, would be presented together and in chronological order, so that replies from one to the other can be made visible.

Account creation

An administrator has to create the user. When the account is created, a password is automatically generated and communicated to the user

Report filters

On several pages, the editor or verifier needs to select what is displayed in an effective way. Possible selecting parameters include:

  • Citizen belongs to a trusted reporters list
  • Citizen belongs to a banned list
  • Type of report
  • Verification score
  • More active sessions (lots of reports in the same session)
  • Reports from an invididual citizen
  • Duplication score (when a report is present in several streams, for example when it is retweeted often)

Filters can be used to select the current display or to affect the visual appearance of reports (for example, to change the color of a report)

Citizen profile

The system will securely store information about the citizen reporter. This profile page will include:

  • Citizen contact information
  • Citizen roles (could also be a verifier)
  • Previous messages
  • Location
  • Verification score (defined at first as plus one for verified report, minus one for report proved false, zero for report not verified)

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.