OSE Microfunding Proposal/Implementation
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
We chose Drupal.
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:
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.
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
Design
- Lukasz Jagodzinski is working on a Drupal theme, in an ose.org style and layout as definded in the wireframes.
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.
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 |
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 | |
Eduardo Riesco | PHP, MySQL, PostgreSQL/PostGIS, CSS, Java, Drupal, CiviCRM, Joomla | part-time | eduardo.riesco (at) gmail (dot) com | ||
Lukasz Jagodzinski | creating Drupal Theme | PHP and Javascript | part-time | ||
Kelly Schutt | Paypal integration | Blocks: OSE info, social sharing | Graphic design, HTML/CSS, Drupal configuration, intermediate Javascript and PHP | part-time |