Changes between Version 27 and Version 28 of BluePrint/SocialMedia/GHC2013SocialMediaHITProcessing

10/05/13 11:35:19 (10 years ago)
Fran Boon



  • BluePrint/SocialMedia/GHC2013SocialMediaHITProcessing

    v27 v28  
    2020a training game -- workers got "experience points" and were awarded badges. See:
    22 == Project breakdown ==
     22=== Current System ===
     23For ease of getting a large dataset to play with, we will use Twitter for this example, although the same system can be used for other message channels, like Email, SMS & RSS.
     25Test Server to see User Interface:
     28Install on your own system:
     29* Install Eden
     30* Install the [ TwitterSearch] library
     31* Follow the [UserGuidelines/Messaging#TwitterSearch User Guidelines] to get a Twitter OAuth account & use this to search
     33Relevant documentation:
     34* DeveloperGuidelines/Messaging
     35* DeveloperGuidelines/Messaging/Channels
     37Note: Documentation for both end-users & devs could use improvement
     38* feel free to dive in!
     40=== Projects ===
     41There are 2 projects that we can work on during this session:
     42(A) Some simple enhancements to the current interface
     43(B) Creating a 'Human Intelligence Tasking' module to allow the processing of these messages to be divided up amongst a lot of workers
     45==== Simple Enhancements ====
     46The current workflow for a user to search Twitter is very cumbersome!
     48Some ideas for improvements (although feel free to come up with your own!)
     49* There should be an option (on by default) to have the Search run after save
     50* The next screen should be the Results: {{{s3db.configure(create_next = URL(f="twitter_result"))}}}
     51* There should be some filters above the results:
     52 *
     53* There should be a link to see the results on a Map
     54 * this will require modifying the code to have the msg_twitter_result table use self.gis_location_id() Foreign key instead of !lat/lon fields
     55 * The S3Map() method is then automatically accessible via /eden/msg/twitter_result/map
     56 * This will use the same filters defined for the list view
     57* There should be a Report method configured for charts based on pivot tables
     58 *
     59* We could create a 'Summary' view which allows the Table, Chart & Map to be separate tabs on a single page, sharing a common set of filters, keeping the settings when moving between the views
     60 * Example:
     61 * This is accessible via /eden/msg/twitter_result/summary
     62 * The Chart, Table, Filter, map settings are inherited
     63 * The configuration of which Tabs to display can be seen in the CRMT template
     64  *
     65* We want to add tools to the Table view to Geocode, Classify, Whitelist sender, Blacklist sender
     67==== HIT Module ====
     68===== Project breakdown =====
    2369This project is intended to be easy to subdivide into tasks that can be worked on somewhat independently and in parallel,
    2470given the choice of a few naming conventions for new database tables and fields.
    60106are other things besides people that have addresses and such, there is a superentity for person-like types.
    61107But when we know we're referring to an actual person, we refer to their record in pr_person.
    62 === Set up incoming messages ===
    63 Read the information on how messages are received by Eden from Twitter or SMS, and get test messages into an Eden instance.
    65 Relevant documentation:
    66  * UserGuidelines/Messaging (very much in need of clarification and concrete examples)
    67  * DeveloperGuidelines/Messaging
    68  * DeveloperGuidelines/Messaging/Channels
    70 User interface:
    73 In summary:
    74 * Install the [ TwitterSearch] library
    75 * Follow the [UserGuidelines/Messaging#TwitterSearch User Guidelines] to get a Twitter OAuth account & use this to search
    77 === Fill in required "new module" boilerplate ===
     109===== Fill in required "new module" boilerplate =====
    78110Look at the lesson on "making a new module" in the Eden book:[[BR]]
    90122Copy it to {{{models/}}} and add an entry for the hit module.
    92 === Add a database table for message processing tasks ===
     124===== Add a database table for message processing tasks =====
    94126We want to add a table that holds the data entered by one worker for one message.
    114146the quality of their work and refer them to more training if needed.
    116 === Track which messages have been processed ===
     148===== Track which messages have been processed =====
    118150We don't want to add fields to {{{msg_message}}} just for our module. But we need a way to tell when
    134166{{{msg}}} module's incoming message handling to pick out the desired messages and create records for them.
    136 === Add a controller function to generate task pages for workers ===
     168===== Add a controller function to generate task pages for workers =====
    137169Look at:
    138170 * Other controllers in {{{eden/controllers}}}
    150182 * Return the standard form for the new record to the user.
    152 === Add a view that presents a task to the worker and submits their work ===
     184===== Add a view that presents a task to the worker and submits their work =====
    153185The worker will get an autogenerated "edit" form, produced by the controller
    154186and view code together. If a plain edit form is ok, then this may be a very
    156188be left until after the controller is done.
    158 === Generate a list of categories from the database ===
     190===== Generate a list of categories from the database =====
    159191We would like to encourage workers to use existing categories when there is a close enough match, but be able to add new ones
    160192if not. So, we want to give the worker a menu of categories to choose from, consisting of all the current categories found in the