Difference between revisions of "InfluenceUs dev task"

(Steps to get to DoneDone: Commit our incremental changes ... cause we have learned enough to finally get a test passing)
(Steps to get to DoneDone: Cleaned up our task page)
Line 30: Line 30:
  
 
== Steps to get to [[DoneDone]] ==
 
== Steps to get to [[DoneDone]] ==
* <s>Read and understand the task</s>
+
* <s>Describe the difference between the influenceus and influenceus-stale branches</s> Influenceus is tested and tracks live. Influenceus-stale is almost complete but untested branch and not tracking live.
* <s>What is the difference between the influenceus and influenceus-stale branches</s> Influenceus is the tested branch that is tracking live while the influenceus-stale is almost complete but untested branch and not tracking live
+
* <s>Describe a [[DomainPage]]</s> has an entry in au_page_meta table with is_domain_page = 1 and matches a regular expression for domains
* <s>Look in our mediawiki and compost code for a method that will answer whether a page is a domain page or not</s>
+
* <s>Create an example domain page</s> http://influenceus/example.com
* <s>Add the developer level description of the [[DomainPage]]</s>
+
* <s>Create an example non-domain page</s> http://influenceus/Main_Page
* <s>What actually domain page is</s> Domain page has an entry in au_page_meta table and matches a regular expression for domains
+
* <s>Create a file TestHelper.php that loads the configuration files our tests need</s>
* <s>Create an example domain page</s>
 
* <s>Figure out why the tests are running the get_registrar.php line 48</s> decided it wasn't core to the task ... figure it out later
 
* <s>learn how to switch among the open buffers in [[vim]]</s> ctl-^ is supposed to work ... isn't working for us
 
* <s>create a TestHelper.php that actually loads the cmdLine.inc and other required files (like configuration files, etc)</s> shouldn't load commandLine.inc, instead loads all of our configuration files
 
* <s>answer which files already get loaded? answer what the include path is?</s> the testing files get loaded 
 
* <s>figure out how to include cmdLine.inc in the tests</s>
 
* <s>Find the cmdLine.inc</s>
 
* <s>include cmdLine.inc to accomplish this</s>
 
* <s>enable all warnings when running php to give us more information about what is happening</s> couldn't figure out how
 
* <s>isolate where the failure is happening by commenting out parts of InfluenceUs_test.php and php_run_tests and then tracing back into the code</s> some of our extensions don't want to be included except by mediawiki running on a web server ... they need to be refactored
 
* <s>Load the mediawiki files so that functions that are available to the running application are also available to our tests</s>
 
 
* <s>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.</s>
 
* <s>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.</s>
* commit
+
* <s>bring over and test one php function from influenceus-stale</s>
* Test that only the domain page should have the influenceus button
+
* <s>clean up the task page for next pair</s>
* add css to css.php (wrap in enable_AboutUs_InfluenceUs if desired)
+
* Write a test that verifies that domain pages have the influenceus button, and non-domain pages do not
* make the image show up from css
+
* Pull over and test one javascript function from influenceus-stale
* bring over and test one php function from influenceus-stale
+
* Pull over bits from influenceus-stale into influence us and test them as we do
* bring over and test one javascript function from influenceus-stale
 
* bring the code over after that
 
 
* Refactor the extension to use the format as the extensions in here: wiki/extensions/AboutUs.
 
* Refactor the extension to use the format as the extensions in here: wiki/extensions/AboutUs.
 
* Remove the functionality: newly created [[DomainPage]]s include the [[InfluenceUs]] wizard.
 
* Remove the functionality: newly created [[DomainPage]]s include the [[InfluenceUs]] wizard.
Line 59: Line 46:
 
* 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.
 
* 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.
 
* Add the [[InfuenceUs]] log page in the LocalSettings file instead of putting it in extension.
 +
 +
== Not related to InfluenceUs ... but need to be done ==
 +
* Refactor our extensions so that they can be included in tests
  
 
== Unrelated to influence us ==
 
== Unrelated to influence us ==

Revision as of 05:49, 15 January 2008

OurWork Edit-chalk-10bo12.png

What (summary)

The InfluenceUs task creates a wizard to InviteParticipation.

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.

There is a substantial creative design component to this task. It will be important to socialize ideas before too much investment goes into any particular choice. Low fidelity by-hand drawings can supplement in person conversation and can be scanned for review on IRC. Here is an example where sketches have served this purpose.

Here is some text

Why this is important

Some of the most motivated visitors we attract are folks who are delighted or frustrated with the organization behind the domain page they land on.

Engagement: Makes a clear call to action for these 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

  • DomainPages should include the InfluenceUs link in the skin for that page
  • The wizard is invoked by clicking a button "InfluenceUs" in the skin
  • Final submission creates an edit to the page 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)
  • Every time a constructive edit is made to that page, both the organization and the user are notified via email (this of course includes the initiating edit). This is done by hand by looking at the InfluenceUsLog where these contributions are logged.
  • Vinh has made the InfluenceUs design look great.

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
  • clean up the task page for next pair
  • 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

  • Refactor our extensions so that they can be included in tests

Unrelated to influence us

  • commit the ./ require_once fix to LocalSettings.php on live (breaks maintenance scripts)

InfluenceUs Page flow

  1. A user who visits NeedInput.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. They have two options on this page to go next and participate and one to close the popup.
  3. Once the user clicks "Next", he is presented with two choices : Delighted and Frustrated.
  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 the comment is saved.

LocalSettings

require_once("extensions/InfluenceUs/InfluenceUs.php");
$enableInfluenceUs = true;  // enable/disable influence
$addInfluenceUsTagInDomain = true; // enable/disable adding influenceus tag by default to newly created pages


Needs Attention



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