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


Ignore:
Timestamp:
10/05/13 11:35:19 (8 years ago)
Author:
Fran Boon
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • BluePrint/SocialMedia/GHC2013SocialMediaHITProcessing

    v27 v28  
    2020a training game -- workers got "experience points" and were awarded badges. See: http://gwob.org/101010-hackathon-winners/
    2121
    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.
     24
     25Test Server to see User Interface:
     26* http://demo.eden.sahanafoundation.org/eden/msg/
     27
     28Install on your own system:
     29* Install Eden
     30* Install the [https://pypi.python.org/pypi/TwitterSearch/ TwitterSearch] library
     31* Follow the [UserGuidelines/Messaging#TwitterSearch User Guidelines] to get a Twitter OAuth account & use this to search
     32
     33Relevant documentation:
     34* DeveloperGuidelines/Messaging
     35* DeveloperGuidelines/Messaging/Channels
     36
     37Note: Documentation for both end-users & devs could use improvement
     38* feel free to dive in!
     39
     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
     44
     45==== Simple Enhancements ====
     46The current workflow for a user to search Twitter is very cumbersome!
     47
     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 * http://eden.sahanafoundation.org/wiki/S3/FilterForms
     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 * http://eden.sahanafoundation.org/wiki/S3/S3Report
     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: http://demo.lacrmt.sahanafoundation.org/eden/vulnerability/risk/summary
     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  * https://github.com/flavour/eden/blob/master/private/templates/CRMT/config.py#L235
     65* We want to add tools to the Table view to Geocode, Classify, Whitelist sender, Blacklist sender
     66
     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.
    64108
    65 Relevant documentation:
    66  * UserGuidelines/Messaging (very much in need of clarification and concrete examples)
    67  * DeveloperGuidelines/Messaging
    68  * DeveloperGuidelines/Messaging/Channels
    69 
    70 User interface:
    71 http://demo.eden.sahanafoundation.org/eden/msg/
    72 
    73 In summary:
    74 * Install the [https://pypi.python.org/pypi/TwitterSearch/ TwitterSearch] library
    75 * Follow the [UserGuidelines/Messaging#TwitterSearch User Guidelines] to get a Twitter OAuth account & use this to search
    76 
    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]]
    79111http://booki.flossmanuals.net/sahana-eden/_draft/_v/1.0/building-a-new-application/
     
    90122Copy it to {{{models/000_config.py}}} and add an entry for the hit module.
    91123
    92 === Add a database table for message processing tasks ===
     124===== Add a database table for message processing tasks =====
    93125
    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.
    115147
    116 === Track which messages have been processed ===
     148===== Track which messages have been processed =====
    117149
    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.
    135167
    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.
    151183
    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.
    157189
    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