GSOC 2012/Student Application rabisg

=INSIGHT Use Cases= GSOC_2012/Student_Application_rabisg

Proposal Description
Fedora Insight is a Drupal-based website that serves as a place to publish and share news, articles related to Fedora and Fedora marketing materials in various formats. This site is currently under heavy development and the wiki page(Fedora_Insight) outlines three major Use Cases that will help extend the current functionality. This project aims at handling two of the three Use Cases and begins by integrating Fedora Account_System as the primary mode of logging in across the site.
 * Insight_use_cases_for_status_and_microblogging
 * Insight_use_cases_for_events

Phase 1: Integrate FAS into Insight Website

 * As discussed previously on IRC, there is already a service for this and we are left with the task of integrating it with Insight.
 * The second part of the integration would involve adding Twitter authentication. This will be used in the next phases where statuses can be posted directly to Twitter Feed or can be requested to be post as the Official Fedora User(more on that later)
 * We can also integrate Google+, Facebook at the authentication step which will help us in the future (sending notifications, etc.)

Phase 2: Insight Use Cases for Status and Microblogging
The main idea is to let user stay on the same page because as @tatica mentioned “The idea is to mak e the user stay at the main item as much as possible. Is not a website that work s as a forum, is more lik e an agenda that lets you have a small interaction (at least as first option)”
 * 1) Provide a status update box for all authenticated users. The basic idea is to provide a Facebook/Twitter like Status Update Box where users can post content. A quick hack and some editing allowed me to come up with the following design (only some aspects shown, others explained below)
 * 1) The additional features would include the following
 * 2) All #hashtags would be converted to links and a taxonomy term reference would be added as well. This will help us in exploiting Drupal’s in-built taxonomy module better and even allow viewing all updates with a specific tag.
 * 3) @user mentions would be converted into links. Additionally it can be merged with Notifications Module to notify the user as well.
 * 4) The comments block would  be displayed below the teaser as well as on the viewnode page. Comments would be added  and deleted via AJAX, and instead of pagination, comments would be added to the comment-div dynamically.
 * 1) Additionally since it is an agenda-like interaction  we can also have thumbsUpthumbsDown or Like-Dislike like functionality by integrating it with Rules. (to be done in Phase 4)
 * 2) The Status Box would have an additional  checkbox: ‘Set Identi.ca/Twitter Status’. Once checked the character limit would be set to 140 characters. On hitting 'SUBMIT'
 * 3) A overlay box would open asking for confirmation whether the person wants to post it or not.
 * 4) It would have an additional checkbox Post as Fedora. If checked the message would go the moderation queue, which would be visible to moderators only, who decide which post to allow and which to not.
 * 5) Geo-Tagging posts is another feature we can look at (Phase 4) http://drupal.org/project/geotaxonomy will serve a starting point.This module has support for Open Layers, a module for Open Street.)

Phase 3: Insight Use Cases for Events

 * 1) The update status box would actually be one of the horizontal tabs, the other being Add-anEvent form. Quick hack and some editing allowed me to come up with the following layout (additional fields like Presenter, etc. to be added)
 * 1) In my understanding someone else would be working on Insight Use Cases for Calendar. The plan is to collaborate with him/her to know how events are stored in database and then replicate the same on hitting SUBMIT. This would lead to a two way benefit
 * 2) Events added through this module would go into the Calendar views easily.
 * 3) Events added to the  Calendar (through any other source) can be displayed  in the main news-feed of the individual.
 * 4) A sample screenshot of how an event could look like.
 * 1) I’m attending link would open an overlay that helps manage attendance (asks user for food preference, shirt size, etc.).
 * 2) The drop down menu block would have additional menu items
 * 3) Trend: Pulls out Tweets of the certain hashtag.(Phase 4)
 * 4) Sponsors: Provides a link to the Trac-Ticket.
 * 5) The admin/organizer has an additional menu link that lets him/her  manage attendance, see all attendees, manage budget, etc.
 * 6) If a user signs up for any particular event, he gets notified before the event.(This might overlap with Insight use cases for Calendar)
 * 7) After the event is over, the ‘I’m attending’ link is replaced with ‘Resources’ link that links to the slides, videos, photo galleries, wiki, etc.
 * 8) Also adding geo-tagging to events would help a person find out the events in his vicinity and thus Geo tags for Events will be a additional feature (to be explored in Phase 4).

Phase 4: Replying to Twitter Users through Insight.
To be done if time permits and in the order specified
 * 1) Provides a separate menu entry for Twitter feeds and allows users to reply to users directly.
 * 2) For this part we would require Integration with Twitter either through the OAuth module or directly Twitter Module on Drupal.
 * 3) Providing a option in events to view tweets of this hashtags(TRENDS)
 * 4) Integrating Flags with Status as mentioned in Phase 2.

The need you believe it fulfills
In my opinion this project would give a great boost to the Insight Project.

The integration of FAS into the Insight website would is a long term goal (as told to me by @asrob) and it would eventually have many benefits.
 * It will align the activity on fedoraproject.org with Insight
 * It will open up options for having access permissions and better moderation system as there would be a one-to-one mapping between users on Insight and fedoraproject.org
 * In the future if changes are made to the FAS, they will automatically echo to Insight

Having a Microblogging like structure would
 * enable admins to better manage the site(without sharing passwords).
 * allow individual users to reply to/post messages and even official messages can be initiated by anyone, though moderated by admins

Lastly the Events Use Cases would prove to be the greatest boon to the community. With that in place
 * It would be easier to keep track of major events and be notified for the same.
 * Help organizers better plan the event
 * Integration would Use Cases for Calendar would open up another broad spectrum of possibilities altogether.

Any relevant experience you have
I have been working on Drupal for quite some time and am familiar with Module Development on Drupal, thoroughly understanding the API structure. Also I have been working on a module which somewhat addresses the Insight_use_cases_for_status_and_microblogging and thus would serve as a starting point for this project

How do you intend to implement your proposal
My end-semesters would be ending in the first week of May. After that I will be able to devout around 8-10 hours a day(or more if necessary) for around 3 months till the last week of July. After that my college reopens but still I'll be able to devout around 5-6 hours a day. My plan is to work taking one goal at a time and strictly following deadlines specified by me in my timeline. All the time I will stay very actively in contact with the assigned mentor taking in feedback and making the changes as and when necessary. Also, I wish to lay more stress upon quality than quantity. That is to say I'll try to code the things perfectly, as bug free and robust as possible rather than trying to implement more features.
 * By the mid-term evaluation i.e. July 9 I wish to complete Phase 1 and Phase 2 and begin working on phase 3.
 * By 25th of July I plan on completing Phase 3 and working on Phase 4.

Final deliverable of the proposal at the end of the period

 * 1) Integration of FAS with the authentication for Insight
 * 2) A fully functional microblogging interface complete with #hashtags, @mentions.
 * 3) Integration of external services like Identi.ca and Twitter to enable cross-posting
 * 4) A simple interface to add and view events and submit preferences for attending.

Timeline
July 9:Mid-Term Evaluations College Reopens August 13:Suggested Pencils Down Date
 * May 5-May 25: Integrate FAS and Twitter Authentication (Phase 1)
 * May 26-June 25: Complete Phase 2
 * June 26-July 25: Complete Phase 3
 * July 26-August 12: Phase 4

Why should you pick me?

 * I am experienced with Drupal and thus the learning phase for me would be shorter and I will be able to spend more time coding the solution.
 * I am creative and will come up with more ideas as the project progresses and thus contribute in a better way to this project.

Have you communicated with a potential mentor? If so, who?
I have been in continuous contact with @asrob, @tatica and @bckurera. I have discussed my project proposal with them and its through their feedback that I have been able to improve it and present it in its current form.