Difference between revisions of "InfluenceUs dev task"

(Steps to get to DoneDone: frustrating ... we are having trouble getting the test framework running)
(Steps to get to DoneDone: Commit our incremental changes ... cause we have learned enough to finally get a test passing)
Line 43: Line 43:
 
* <s>Find the cmdLine.inc</s>
 
* <s>Find the cmdLine.inc</s>
 
* <s>include cmdLine.inc to accomplish this</s>
 
* <s>include cmdLine.inc to accomplish this</s>
* enable all warnings when running php to give us more information about what is happening
+
* <s>enable all warnings when running php to give us more information about what is happening</s> couldn't figure out how
* 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>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
* Load the mediawiki files so that functions that are available to the running application are also available to our tests
+
* <s>Load the mediawiki files so that functions that are available to the running application are also available to our tests</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>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
 
* Test that only the domain page should have the influenceus button
 
* Test that only the domain page should have the influenceus button
 
* add css to css.php (wrap in enable_AboutUs_InfluenceUs if desired)
 
* add css to css.php (wrap in enable_AboutUs_InfluenceUs if desired)

Revision as of 05:37, 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

  • Read and understand the task
  • What is the difference between the influenceus and influenceus-stale branches Influenceus is the tested branch that is tracking live while the influenceus-stale is almost complete but untested branch and not tracking live
  • Look in our mediawiki and compost code for a method that will answer whether a page is a domain page or not
  • Add the developer level description of the DomainPage
  • What actually domain page is Domain page has an entry in au_page_meta table and matches a regular expression for domains
  • Create an example domain page
  • Figure out why the tests are running the get_registrar.php line 48 decided it wasn't core to the task ... figure it out later
  • learn how to switch among the open buffers in vim ctl-^ is supposed to work ... isn't working for us
  • create a TestHelper.php that actually loads the cmdLine.inc and other required files (like configuration files, etc) shouldn't load commandLine.inc, instead loads all of our configuration files
  • answer which files already get loaded? answer what the include path is? the testing files get loaded
  • figure out how to include cmdLine.inc in the tests
  • Find the cmdLine.inc
  • include cmdLine.inc to accomplish this
  • enable all warnings when running php to give us more information about what is happening couldn't figure out how
  • 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 some of our extensions don't want to be included except by mediawiki running on a web server ... they need to be refactored
  • Load the mediawiki files so that functions that are available to the running application are also available to our tests
  • 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.
  • commit
  • Test that only the domain page should have the influenceus button
  • add css to css.php (wrap in enable_AboutUs_InfluenceUs if desired)
  • make the image show up from css
  • bring over and test one php function from influenceus-stale
  • 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.
  • 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.

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=14313061"