OSE Microfunding Proposal/Implementation

From Open Source Ecology
Jump to navigation Jump to search

Terminology

Here is the common terminology:

  • TF = True Fan

Design

Wireframes

The wireframes of the proposal were implemented in Lumzy.

Development

PHP CMS (Content Management System)

We chose Drupal.

CRM (Contact Relationship Management)

We chose CiviCRM. (http://civicrm.org)

From the CiviCRM Web site:

CiviCRM is a free, libre and open source software constituent relationship management solution. CiviCRM is web-based, internationalized, and designed specifically to meet the needs of advocacy, non-profit and non-governmental groups. Integration with both Drupal and Joomla! content management systems gives you the tools to connect, communicate and activate your supporters and constituents.

We are specially interested in CiviContribute module (http://civicrm.org/civicontribute):

CiviContribute is an online fundraising and donor management component which enables you to track and manage contributions to your organization. It also allows you to quickly and easily create customized web pages to accept online donations. CiviContribute is fully integrated with CiviCRM, and creates or updates contact and donation records for all contributions, eliminating data entry time and errors.

Why we chose CiviCRM?

  • We don't want to reinvent.
  • It's an application orientated to non-profit microfunding improved during years for hundreds of developers.
  • It's installed over Drupal, so we can integrate it with our web page, web profiles, personal blogs, etc.
  • It has a lot of helpful tools around microfunding: bulk email by groups, reports, integration of events, contact and groups management, etc.

Resources:

Drupal Environments


Page Flow

Ose-microfunding-proposal-flow.png

True Fans Page

  • Description
    • Showing motivational content about OSE, its importance, tangible outcome, etc.
    • Allowing subscription.
  • Transitions
    • Recognition Page
      • Requirements: all data for the user is gathered: Name, Email, Subscription (verified, PayPal for now). This means that the user will be forwarded to PayPal, will subscribe, and then comes back to a page of ours - Recognition Page or a temporary page where he can fill out additional information (City, Country, ...) and after submitting these forwarded to the Recognition Page.
      • Effects: the user is added as a True Fan, an embeddable badge is created for him, email notifications is sent to him containing a link to the recognition page.
      • Final State: the user is logged in his Recognition Page
  • Design considerations
    • TODO by Alistair

Recognition Page

  • Description
    • If The True Fan is logged. Edit mode is available:
      • He sees his information and edit links for video, photo and text are available for clicking.
      • When he saves some information, he will be offered a link to the Share page.
    • If it is not the True Fan who is logged, or it is an anonymous user:
      • The person sees the information the True Fan has saved.
      • Under that is the TF subscription.
      • There is a login link somewhere (top-right?), so that if this is the TF itself, he can login to his page.
  • Transitions
    • Share Page
      • Requirements:
        • TF of the Recognition page should be logged
        • video or text should be filled out.
        • The TF clicks on the "Share page" link.
      • Effects: no
      • Final State: the TF is logged in the Share page.
  • Design Considerations
    • Add form inputs for user to link to their Twitter, Facebook accounts for use in sharing page.

Share Page

  • Description
    • If The True Fan is logged. Edit mode is available:
      • The TF writes the name, email of several of his friends, and clicking on each one of the added friends, he can add a personal video and text below. He can add/remove/edit friends and their data.
      • He can send the data either to one of his friends (maybe a button to the right of the email) or to all of them (asking for confirmation).
    • If it is not the True Fan who is logged, or it is an anonymous user:
      • the page is not accessible.
  • Transitions
    • Share Page
      • Requirements:
        • TF cliks on invite friend, or invite all friends.
      • Effects:
        • a notifications appears that the friend/s was/were successfully invited.
        • an email is sent to every invited friend, containing a link to the "Invited Page".
        • a link is offered back to his Recognition Page. In this case he can just open it (this transition understandable and will not be described).
      • Final State: the TF remains on the Share page.

Invited Page

  • Description
    • Everybody who has the link can access it, no difference between logged users and anonymous.
    • Shows the invitation of the TF to his friend.
    • Shows the TF subscription.
  • Transitions
    • Recognition Page
      • the same transition as in the True Fans Page

Strategy

Video

The videos can be

  • youtube video (easy to program, time-intensive for the user)
  • flash camera recorder (harder to program, quick to record for the user, lower quality)

We have the possibility of providing the user with two options:

  1. Past a link to a YoueTube video
  2. Record video from Flash and upload to YouTube using their developer API

If we rely on Option 2, we might bottleneck the development. It would make sense to build the functionality for Option 1 first and then begin working on a solution for Option 2 when the project is functionally complete.

Details of the YouTube's video uploads can be found here:

Replication

These are the steps required to replicate our implementation into another Drupal installation.

Prototype 1

  • A user opens the True Fans page Phttp://microfundingtest.openfarmtech.org/truefan
  • The user clicks the PayPal subscribe button, goes to PayPal, completes the subscription and gets redirected back to his True Fans profile (http://microfundingtest.openfarmtech.org/user#overlay=user/1/edit/true_fan) as logged in True Fan.
  • The True Fan edits his profile and clicks save. A text is shown with a link to create an Invitation content - http://microfundingtest.openfarmtech.org/user#overlay=node/add/invitation
  • The True Fan adds in the Invitation a video, text and a photo, clicks save, and then he is shown a "Invite by email" button (seen only by him, the author). He clicks it and an invitational email is sent to his friend containing a link to the Invitation page. Also a relationship is created between the True Fan and the friend.


Drupal Tasks

You can view the current tasks in the Pivotal project.

Badges

  • Check a demo for the embeddable badge: http://microfundingtest.openfarmtech.org/mywebsite.php
    • Parameters:
      • id - true fan id
      • name - if equals 1, then displays the name of the True Fan above the badge, otherwise not.
    • TODO - make secure reading of the URL parameters
  • TODO - make a visualization of all OSE badges.


  • Make a PHP Script (drupalroleusers.php) that takes the users from a Drupal installation with a specific Role (e.g. True Fan Role, or for testing we can take Administrator role) and saves in a CSV file (truefanusers.txt) the following information:
    • ID
    • Name
  • Read in truefan-badge.php the names of the users from truefanusers.txt and display them correctly by their ID.

PayPal

Paypal updates 6-27-11

  • Kelly Schutt completed basic Paypal integration. After completing the True Fan subscription payment, the user is automatically added to the True Fan role. We don't need an administrator to approve every account/payment this way.
    • Overview of the Paypal subscription process
      • Custom microft module redirects user to Paypal for payment after registering account. Microft also passes custom_var to Paypal with Drupal User ID
      • Paypal connects to /paypalipn page and POSTs User ID variable. /paypalipn then save the user account with the additional True Fan role
        • Paypal should automatically redirect the user back to their profile page after payment, and the user should be logged in. Right now, the user has to click a button to be redirected and isn't automatically logged in.
  • We still need to configure the registration process with a dropdown menu for different levels of True Fan support (e.g. $10/month vs $50/month)

Design

  • Lukasz Jagodzinski is working on a Drupal theme, in an ose.org style and layout as definded in the wireframes.

Drupal Features Module

Why?

Other Drupal tasks

  • Show a text when certain fields are filled out
    • We will need this for the Recognition page - when the video and text are filled out a text linking to the Share page should be displayed.
  • True Fan status
    • requested - a person has requested a True Fan status - An statusadmin should check whether there is a subscription by this
    • true fan - the person is a True Fan
      • list of subscriptions - a True Fan can have more than one subscription, e.g. now $10, after few months $20.
      • from - the date of subscription
      • to - the date of unsubscription
      • amount - the amount of the subscription
  • Configure Invite and User Relationships
    • Allow users with the True Fan role to invite multiple friends
    • Make sure the relationship shows between the invited and the invitee
      • Create a block using Views to show relationships
        • Make sure the block view uses arguments such that users are dynamic
        • Show block on Recognition, Share and Invited pages
    • Note, Invite is still in -dev branch for D7. Module is working after applying patch found here : http://drupal.org/node/1054392#comment-4536388
  • Create block to show all True Fans
    • Show this block universally
    • Block should just be list of True Fan users as their pictures
  • Create block with PayPal button link to donate
    • Show this block below main content on the True Fans page
    • Block will show a standard PayPal button, let the user subscribe through PayPal and redirect him back to a Drupal user registration page. When he registers, he should have the status "True Fan Requested" (or similar) and an Administrator should approve it.
  • Video embedding Support
    • Enable Vimeo and others video providers for video embedding in Drupal 7
    • Make quicker embedding of Videos in Drupal 7

Theme Tasks

  • Make visible the main menu.
  • Theme the user menu.
  • Review content with in "Donate" and "Tell a friend" pages

CiviCRM Tasks

You can find our CiviCRM configuration here. It gives you the possibility of replicate and quickly review our design.

  • (Eduardo Riesco and others) Review CiviCRM flow page.
  • Theme CiviCRM pages and adjust layout. It has a template system similar to Drupal's.
  • Configure the reports for the CiviCRM Dashboard.
  • Redesign User Dashboard.
  • Review standard CiviCRM messages to adapt it to True Fans and Donate campaign.
  • (Eduardo Riesco) Improve CiviCRM "Personal Campaign Pages" (our "Share Page"). This is by far the biggest task because we'll need to modify the CiviCRM core code. It's our opportunity to contribute the CiviCRM project improving it!
  • ...

Team

This is the Team working currently on the Proposal.

Microfunding IT Team
Name Current Tasks Finished Tasks Skills Commitment (DRC or part-time) Email
Nikolay Georgiev create tasks Embeddable Badge project manager and web programmer (intermediate PHP and MySQL skills, but no PHP Framework experience, good CSS and Javascript skills) Dedicated Remote Collaboration nikolay (at) opensourceecology.org
Eduardo Riesco CiviCRM integration PHP, MySQL, PostgreSQL/PostGIS, CSS, Java, Drupal, CiviCRM, Joomla part-time eduardo.riesco (at) gmail (dot) com
Lukasz Jagodzinski creating Drupal Theme Overall theme ready PHP, CSS, JavaScript, Symfony, Java, MySQL part-time luke (dot) jagodzinski (at) gmail (dot) com
Nick Person Recognition Page in CiviCRM part-time person (dot) nick (at) gmail (dot) com
Jacob Roufa PayPal integeration Project Manager / Intermediate Developer : Drupal, CiviCRM, XHTML/HTML5, CSS, Javascript (jQuery library mostly), PHP, MySQL DRC if available, part time if not jacob.roufa@gmail.com
Kelly Schutt Blocks: OSE info, social sharing, Paypal integration Graphic design, HTML/CSS, Drupal configuration, intermediate Javascript and PHP part-time