Difference between revisions of "InfluenceUs dev task"

(Steps to get to DoneDone: Writing a small test will help us write real more practical test cases.)
(Steps to get to DoneDone: So that we can search for the presence of the influenceus tag in the skin.)
Line 43: Line 43:
 
* <s>reading previous steps to get to donedone  to understand history of this project</s>
 
* <s>reading previous steps to get to donedone  to understand history of this project</s>
 
* <s> understand how jquery test suite works. Problem: when you change test name, it doesnt run sometimes, inexplicably</s> Cache problem.
 
* <s> understand how jquery test suite works. Problem: when you change test name, it doesnt run sometimes, inexplicably</s> Cache problem.
 +
* Explore how to access the html of the complete page in php tests.
 
* exploring $wgOut functions to write new test case
 
* exploring $wgOut functions to write new test case
 
* Understand how PageMetaTasks.php file works.
 
* Understand how PageMetaTasks.php file works.

Revision as of 07:30, 16 January 2008

OurWork Edit-chalk-10bo12.png

What (summary)

The InfluenceUs wizard provides highly motivated visitors to our site with a fun, easy, and effective way of engaging and influencing the organization they are delighted or frustrated with.

Why this is important

Engagement: Makes a clear call to action for motivated visitors.
BeABuilder: Encourages the kind of constructive collaboration we want where all involved parties benefit.
ValuableContent: Creates public conversations that deeply inform future visitors about how organizations relate with those they touch.
ViralSpiral: The influenced become influencers the next time they are frustrated with an organization.

DoneDone

  • All DomainPages include the InfluenceUs link in the skin
  • No non-DomainPage includes the InfluenceUs link
  • The wizard is invoked by clicking a button "InfluenceUs" in the skin
  • Final submission creates an edit to the DomainPage that when consummated looks just like any other edit (but is really transcluded from a subpage of the person's User_talk page for example User_talk:AwfulAbigail/PageSheHates).
    • Includes a nice edit summary of what it just did
  • The InfluenceUs wizard feels great to use. (Perhaps uses Ajaxy techniques so that no page reloads have to occur)
  • Final submission adds creates an edit that adds an entry to the InfluenceUsLog
  • Vinh has made the InfluenceUs design look great.
  • These pages should all be informative, visually pleasing, and closely coupled with the InfluenceUs tool

Steps to get to DoneDone

  • Describe the difference between the influenceus and influenceus-stale branches Influenceus is tested and tracks live. Influenceus-stale is almost complete but untested branch and not tracking live.
  • Describe a DomainPage has an entry in au_page_meta table with is_domain_page = 1 and matches a regular expression for domains
  • Create an example domain page http://influenceus/example.com
  • Create an example non-domain page http://influenceus/Main_Page
  • Create a file TestHelper.php that loads the configuration files our tests need
  • Test the checkPageIsDomain($title_str) function in wiki/extensions/AboutUs/InfluenceUs/InfluenceUs_test.php file and then use php_run_tests to recursively run the test in this directory and below.
  • bring over and test one php function from influenceus-stale
  • Explore what checkMetaTable function does. It should actually be called updateMetaTable; the new name explains its functionality
  • Move test case from InfluenceUs to PageMetaTasks where they make more logical sense to reside.
  • Read the task page to get a better understanding of the task.
  • Understand how 'find' works!
  • Read article on AJAX and Unit Testing from: http://www.litfuel.net/plush/?postid=117
  • Correct the code on http://influenceus/test/javascript/javascript.html
  • Understand the code on http://influenceus/test/javascript/javascript.html
  • Ensure that http://influenceus/test/javascript/javascript.html runs in the browser.
  • Write a simple javascript test. Check On: http://influenceus/test/Ali/javascript.html
  • reading previous steps to get to donedone to understand history of this project
  • understand how jquery test suite works. Problem: when you change test name, it doesnt run sometimes, inexplicably Cache problem.
  • Explore how to access the html of the complete page in php tests.
  • exploring $wgOut functions to write new test case
  • Understand how PageMetaTasks.php file works.
  • Sample php test is located in wiki/extensions/PageMetaTasks
  • Understanding how PHPUnit works.
  • Reading an article on Link
  • exploring the skin to see how to add button in the skin
  • Write a test that verifies that domain pages have the influenceus button, and non-domain pages do not
  • Pull over and test one javascript function from influenceus-stale
  • Pull over bits from influenceus-stale into influence us and test them as we do
  • Refactor the extension to use the format as the extensions in here: wiki/extensions/AboutUs.
  • Remove the functionality: newly created DomainPages include the InfluenceUs wizard.
  • when the person is frustrated, a different message is shown, asking the reason for frustration.
  • Change the flow of the InfluenceUs wizard to include only two paths.One is the user selects delighted and he writes why is he happy about the company, and the second one is the user selects frustrated and writes why is he frustrated and what does he wants them to change.
  • Add the InfuenceUs log page in the LocalSettings file instead of putting it in extension.

Not related to InfluenceUs ... but need to be done

  • Rename the function checkMetaTabe to updateMetaTable. This is more synchronous with the functionality that this function is providing.
  • Refactor our extensions so that they can be included in tests
  • commit the ./ require_once fix to LocalSettings.php on live (breaks maintenance scripts)

InfluenceUs Page flow

  1. A user who visits NeedsInput.com sees the big "Influence Us Wizard ... blah blah" bit
  2. When they click on it they are presented with a popup describing what influenceus is all about, similar to the way the ThreeCoreOffers work.
  3. On the description, they can either continue on by clicking delighted or frustrated ... or they can close the popup.
  4. If the user clicks Delighted, he is presented with "What made you delighted with this company/domain?" with an emoticon
  5. If the user clicks Frustrated, he is presented with "What made you frustrated with this company/domain?" with an appropriate emoticon
  6. After entering the message, the user clicks submit and a series of edits are made.


Retrieved from "http://aboutus.com/index.php?title=InfluenceUs_dev_task&oldid=14370798"