Skip to content
This repository has been archived by the owner on Jan 29, 2021. It is now read-only.
Shae Bryant Smith edited this page Jan 19, 2018 · 34 revisions

Welcome to the Rogue wiki!

Overview

Rogue is DoSomething.org’s user activity service. It is as an admin application that allows the DoSomething.org staff to review, manage, and organize user activity that is tied to impact. It also provides an API for user activity that is collected in the system. More details about our team can be found here.

Please refer to the Rogue Documentation section of this wiki for any relevant documents. You can also follow along on any of our team discussions here.

Terminology

Last Updated: 1/19/18

  • Signup

A sign-up is the container for all user activity on a campaign.

  • Posts

Atomic pieces of content that a user could submit throughout their engagement with the campaign. A signup owns multiple posts.

To help us support campaigns with multiple actions, a post can be categorized so that we can tie user submissions/actions to different CTAs on the same campaign. To do this, post have a type, action_bucket and details column.

Categorization Fields

  • type: Describes the type of post submitted e.g. photo, call, voter-reg.
  • action_bucket: Describes the CTA the action is tied to. A campaign could ask for multiple types of actions throughout the life of the campaign. For example, one month we might ask for a photo and the next month we might ask you to call a senator.
  • details: This is a JSON field that will hold extra details about a post submission. In the case of voter registration or calls, we might receive a JSON object that holds more details about the registration or call that can be stored in this field.

Check out this discussion for more context on action categorization.

  • Status

Reviewed status of a post. Possible statuses:

  • pending: The post has not yet been reviewed. When a post first gets submitted to rogue, it gets a pending status.
  • accepted: The post has been reviewed by and admin and accepted.
  • rejected: The post has been reviewed by and admin and rejected.
  • Events

Events are logged when items are created, updated, get reactions, when signups get created, etc etc. Events track everything that happens throughout the system.

Rogue timestamps are stored & returned in UTC time, which is 4 hours ahead of EST. (i.e., created_at,`updated_at')

  • Tags

Posts can be "tagged" for better categorization in the system. By using tags we can sort and find posts easily.

Phoenix-Ashes Terminology -> Rogue Terms

  • "Reportbacks" - We can determine if a user has reported back or not by seeing if they have at least one post under their signup. Posts more directly correlate with what reportback_items were in Phoenix-ashes. So, the first post proves they reportedback, subsequent posts are just more reportback items.

Stack

  • Frontend: React
  • Backend Framework: Laravel
  • Database: MySQL

Contents

Section Description
Database Schema Overview of database tables and columns.
API API documentation
Admin Interface Admin interface Mocks, Routes, Explanations
Outstanding Questions