OSE Microfunding Proposal/Implementation: Difference between revisions
Line 209: | Line 209: | ||
=CiviCRM Tasks= | =CiviCRM Tasks= | ||
You can find our CiviCRM configuration [[OSE_Microfunding_Proposal/Implementation/CiviCRM | here]]. It gives you the possibility of replicate and quickly review our design. | You can find our CiviCRM configuration [[OSE_Microfunding_Proposal/Implementation/CiviCRM|here]]. It gives you the possibility of replicate and quickly review our design. | ||
* Review CiviCRM flow page. | * Review CiviCRM flow page. |
Revision as of 07:54, 16 August 2011
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.
CMR (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:
- http://civicrm.org/ - CiviCRM Web. Good to get a general idea about it and about the different modules.
- http://en.flossmanuals.net/CiviCRM/ - CiviCRM book. Good to understand CiviCRM concepts (the most important and maybe the most difficult).
- http://wiki.civicrm.org/confluence/display/CRMDOC40/CiviCRM+Documentation - Wiki documentation. Good to work.
- http://d7.demo.civicrm.org/ - CiviCRM admin demo. With Drupal integration and test data. Good to play.
Drupal Environments
- Drupal-test - http://microfundingtest.openfarmtech.org/ - used for development and testing
- Official Drupal - http://civicrm.opensourceecology.org/ - used for real
Page Flow
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
- 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.
- If The True Fan is logged. Edit mode is available:
- 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.
- Requirements:
- Share Page
- Design Considerations
- Add form inputs for user to link to their Twitter, Facebook accounts for use in sharing 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.
- If The True Fan is logged. Edit mode is available:
- 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.
- Requirements:
- 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
- Recognition 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:
- Past a link to a YoueTube video
- 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:
- http://code.google.com/apis/youtube/2.0/developers_guide_protocol.html#Uploading_Videos
- http://code.google.com/apis/youtube/2.0/developers_guide_protocol.html#Resumable_uploads
Replication
These are the steps required to replicate our implementation into another Drupal installation.
- Install the modules:
- CKEditor - from the URL and extract the contents of from the download in sites/all/modules/ckeditor/ckeditor .
- media
- media_youtube
- media_vimeo
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
- 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
- Jacob Roufa is trying to integrate PayPal into the registration process of Drupal 7 users: http://www.deerwalk.com/PayPal-Integration-with-Drupal-7
- TODO - still getting bugs
- Using the lm_paypal module, a key function of the module (displaying the paypal button allowing users to subscribe to a role) is not working.
- Block configuration found here : http://microfundingtest.openfarmtech.org/admin/structure/block/manage/block/1/configure (note: lm_paypal is currently disabled on the site)
- Thread in Drupal.org project page issue queue here : http://drupal.org/node/733520
- Implementation without lm_paypal described in the Drupal Tasks section here : http://opensourceecology.org/wiki/OSE_Microfunding_Proposal/Implementation#Other_Drupal_tasks
- TODO - still getting bugs
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.
- Overview of the Paypal subscription process
- 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
- Create a block using Views to show relationships
- 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
- Check this page: http://microfundingtest.openfarmtech.org/node/5
- The user has to make 3 clicks for URL input - "Select media", "Web", "Submit". Can we make it with only 1?
CiviCRM Tasks
You can find our CiviCRM configuration here. It gives you the possibility of replicate and quickly review our design.
- 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.
- 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.
Name | Current Tasks | Finished Tasks | Skills | Commitment (DRC or part-time) | |
---|---|---|---|---|---|
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 |