Changes

Jump to: navigation, search

Desktop Social Networking Integration

8,591 bytes added, 21:47, 9 January 2008
no edit summary
== Project Leader(s) ==
[http://zenit.senecac.on.ca/wiki/index.php/User:Tjduavis Timothy Joseph Duavis]
== Project Contributor(s) ==
* [http://zenit.senecac.on.ca/wiki/index.php/User:Vlam6 Vincent Lam]
** provided support with sqlite by providing a client and researching
** available for future contribution opportunities
* [http://zenit.senecac.on.ca/wiki/index.php/User:Rueen Rueen Fiez]
** provided support with sqlite by providing a client and researching
** available for future contribution opportunities
== Project Details ==
# twitter status
#* issue is twitter coop is dependent on facebook api, but api is lacking
# to use another facebook service to the coop
# exchange service
=== Milestone 1 - Release 0.1 ===
To provide support for Twitter in the existing Coop API. More documentation can be found posted on my blog (Coop DPS909 Release 0.1 - Documentation). The source code can be found [http://matrix.senecac.on.ca/~tjduavis/dps909/coop-dps909-release0.11a.zip here] and requires the [http://developer.mozilla.org/en/docs/Building_an_Extension#Test test method] to install. Be advised that I turned debugging on. The patch for release 0.1 is [http://matrix.senecac.on.ca/~tjduavis/dps909/coop0-1a-patch.txt here]. ==== Use Cases Requirements and Specifications ====
For release 0.1, I will be focusing on getting twitter support and integrated into the coop. The following functionalities below will be included in the release:
Use Cases:
# Log into Twitter account from Coop
# List and view Twitter friends (followers only)# View current status messages from friends on main friends pane; view all status messages for a specific friend when selected (friendpane).
==== Deliverable ====
<p><b>Figure 1</b> - Login page for Twitter. Started by clicking the pop-up menu item under the "friends" menu.</p>
[[Image:Coop-twitter-viewMessage-Friends.png]]<p><b>Figure 2</b> - Main page showing my friends in Twitterwith a status message</p> [[Image:Coop-twitter-viewMessage-Friend.png]]<p><b>Figure 3</b> - A selected friend's pane showing their corresponding 20 status messages.</p>  ==== Code Walkthrough ==== The below points show the two layers used in this add-on application. The database/persistence layer is coupled within the logic layer (nsCoopFacebookService.js). UI Layers<pre>- sidebar.js, sidebar.xul, - authBrowser.js, authBrowser.xul- addLink.js (have not walkthrough)- addLink.xul (have not walkthrough)- browser-overlay.js, browser-overlay.xul</pre> Logic Layers<pre>- facebook-client.js- Microsummary.js (have not walkthrough)- nsCoopFacebookService.js, nsCoopFacebookService.idl (with corresponding .xpt)</pre> Function Paths: The following shows the path of the code for the below use case functions. For this deliverable I used conditional statements to separate and distinguish calls for the two services.
[[Image:Coop* Logging In<pre>1. From sidebar.js the login command buttons calls startSession of the member service object (this._fbs)2. In the function startSession of the service object class (nsCoopFacebookService.js) it calls on another service object member function called createAuthToken; this function calls on the client member object (facebook-client.js) to post an AJAX request, so that the helper event function _onCreateAuthToken can be triggered to set the session information of the social service being accessed (facebook or twitter-message)3. onCreateAuthToken open the login screen (authBrowser.png]]xul)<p/pre* Viewing friends code paths<bpre>Figure 1. Upon successful session (this._fbs.sessionState of sidebar.js is active), sidebar.js calls a member function called buildpane which calls the function getFriends of the member service object. getFriends uses the member function currentUser to traverse through the coop database. The coop database is sqllite.2. If there is no friends then sidebar.js calls its member function updateFriends which calls this._fbs.updateFriends.3. nsFaceBookService.updateFriends is similar to the createAuthToken where it uses this._client to make an AJAX request in order to get data from the corresponding service session, such as the case of friends. Information retrieved by the social service is retrieved as a json format to be parsed.4. onUpdateFriends is the even function used to populate new friends.</bpre> * Viewing Messages<pre> - A selected 1. Once friends are populated the sidebar.js builds a Friends Pane. When the a user selects a specific friend's pane and from the message browser page loaded when list of friends the member function showFriend adds a button titled "more" button is clickedto open a message box page.</ppre>
==== Bugs ====
* after first successful login during a session when you logout and switch to the facebook session a unsuccessful twitter login occurs.
* logout for twitter
* authentication window prompts twice for facebook
* friends picture does not update on twitter and facebook
* unsuccessful login of a twitter prompts an http authentication dialog
* unsuccessful login via http authentication dialog loads users from sqlite
* remove added null message and timestamp during getMessages
=== Milestone 2 - Release 0.2 ===
 
For this release I will continue to build on release 0.1 by cleaning up the features and functionalities defined. Further more I will apply the changes specified by the comments and feedback made from my primary stakeholders and the community (but must be approved by my primary stakeholders).
 
==== Requirements and Specifications ====
 
The following are requirements and specifications that will be included in release 0.2:
* Fix bugs informed by stakeholder during their attempt to test release 0.1
** After the login dialog, login process fails and produces a blank sidebar
* Clean up features and functionalities
** Remove icons in The existing Coop
** Use XUL description element for messages
** Order list of friends alphabetically
** Replace release 0.1 timestamp format with user-readable timestamp (ex: "2 Days ago")
** Provide ability to merge users existing in different social services, with the same identity using drag and drop.
* Fix bugs introduced in release 0.1
 
==== Deliverable ====
 
Source Code:
* The source code for release 0.2 can be found [http://matrix.senecac.on.ca/~tjduavis/dps909/coop-release0.2.zip here]
* The patch of release 0.2 can be found [http://matrix.senecac.on.ca/~tjduavis/dps909/coop0.2-patch.txt here]
 
Instructions for installing:
* The [http://developer.mozilla.org/en/docs/Building_an_Extension#Test test method] is used for installation.
=== Milestone 3 - Release 0.3 ===
 
For this release I will focus on providing user interface / usability enhancements. I will also look to resolve any development bugs or unexpected results.
 
==== Requirements and Specifications ====
 
<pre>
<tjduavis> i think i should resolve the login problem
<dave> agreed.
<dave> what else?
<tjduavis> should i bother in getting the text element into a description element?
<dave> yes, I think so
<tjduavis> ok
<tjduavis> the timestamp into local time?
<dave> what do you think?
<dave> I'm less concerned with that
<tjduavis> right and i think thats above my powers as its tight up with the twitter api. the api is converting the time into utc
<tjduavis> but i could be wrong.
<tjduavis> how about this facebook service being down
<tjduavis> i want it included but i honestly dont know where to start investigating
<tjduavis> or that might set me back
<dave> I think leave that
<dave> it could very well be their side killing apis
<dave> focus on the twitter stuff
<dave> I agree about the date stuff, leave it
<tjduavis> ok
</pre>
 
==== Deliverable ====
 
Source Code:
* The source code for release 0.3 can be found [http://matrix.senecac.on.ca/~tjduavis/dps909/coop-release0.3.zip here]
* The svn patch for release 0.3 can be found [http://matrix.senecac.on.ca/~tjduavis/dps909/coop-release0.3-patch.txt here]
 
Instructions for installing:
* The [http://developer.mozilla.org/en/docs/Building_an_Extension#Test test method] is used for installation.
 
=== Resources ===
* [http://wiki.mozilla.org/Labs/The_Coop The Coop]
* [http://labs.mozilla.com/2007/04/keep-track-of-your-friends-with-the-coop/ Mozila Labs - The Coop]
* [http://live.gnome.org/OnlineDesktop/Sidebar BigBoard]
* [http://groups.google.com/group/twitter-development-talk/web/api-documentation Twitter API Doc]
=== Schedule ===
|-
|1.0 Create Requirements
|In ProgressCompleted
|Sep 22, 2007
|Sep 28, 2007
|-
|
|colspan="3"|1.1 <del>Draft (Include scope, features and use cases)</del>
|-
|
|colspan="3"|1.2 <del>Send for feedback</del>
|-
|
|colspan="3"|1.3 <del>Update based on feedback</del>
|-
|2.0 Research
|-
|
|3.1 <del>Plan Use CaseRequirements and Specifications</del>
|Oct 1, 2007
|Oct 4, 2007
|-
|
|3.2 <del>Perform Implemention of Use CaseRequirements and Specifications</del>
|Oct 5, 2007
|Oct 15, 2007
|-
|4.0 Milestone 0.2
|Waiting on previous dependenciesComplete
|Oct 15, 2007
|Nov 12
|-
||4.1 <del>Plan Milestone 0.2 Deliverable</del>|Oct 15, 2007|Nov 1, 2007|-|||colspan="2"|4.1.1 <del>Gather requirements</del>|-|||colspan="2"|4.1.2 <del>Draft requirements and specifications</del>|-|||colspan="2"|4.1.3 <del>Send for feedback and verification</del>|-|||colspan="2"|4.1.4 <del>Update accordingly</del>|-||4.2 <del>Implement deliverable</del>|Nov 4, 2007|Nov 10, 2007|-|||colspan="2"|4.2.1 Perform clean up of user interface|-|||colspan="2"|4.2.2 Perform clean up of functionalities|-||4.3 <del>Perform Tests</del>|Nov 4, 2007|Nov 10, 2007|-|||colspan="2"|4.3.1 Perform tests for user interface and release|-|||colspan="2"|4.3.2 Perform tests for release|-||4.4 <del>Release for feedback</del>|Nov 4, 2007|Nov 11, 2007|-|5.0 <del>Milestone 0.3</del>|Waiting on previous dependenciesComplete
|Nov 12
|Dec 14|-||5.1 <del>Plan Milestone 0.3Deliverable</del>|Dec 3, 2007|Dec 3, 2007|-|||colspan="2"|5.1.1 <del>Gather requirements</del>|-||5.2 Implement Deliverable|Dec 3, 2007|Dec 12, 2007|-|||colspan="2"|5.2.1 <del>Perform implementation and unit testing</del>|-||5.3 Funtion Testing|Dec 8, 2007|Dec 14, 2007|-|||colspan="2"|5.2.1 <del>Perform function testing</del>
|}
 
=== Resources ===
* [http://wiki.mozilla.org/Labs/The_Coop The Coop]
* [http://labs.mozilla.com/2007/04/keep-track-of-your-friends-with-the-coop/ Mozila Labs - The Coop]
* [http://live.gnome.org/OnlineDesktop/Sidebar BigBoard]
* [http://groups.google.com/group/twitter-development-talk/web/api-documentation Twitter API Doc]
== Project News ==
#* Defined Milestone 1; approved both by Dave and Myk
# Updated Project Details - Oct 1, 2007
#* Drafted Use CaseRequirements and Specifications
#* Updated work break schedule for milestone 1
# Updated Project Details - Oct 3, 2007
#* Further defined Use CaseRequirements and Specifications;
#* Updated work break schedule for milestone 1
#* Updated TODO for milestone 1;
#* Updated bugs section for release 0.1
#* Posted screen shot of deliverable for milestone 1 - release 0.1
# Updated Project Details - Oct 19, 2007
#* milestone 1 is incomplete; unexpected results for requirements: view messages from friend.
#* updated details for expected system use case 3: view messages from friend.
#* posted patch to current working release.
# Updated Project Details - Oct 28, 2007
#* updated Figure 2 of release 0.1 with system use case 2: view main page with status of message per friend.
#* updated Figure 3 of release 0.1 with system use case 3: view status messages
#* updated Bugs
#* posted patch and updated source zip file for release 0.1a (included updated requirements)
# Updated Project Details - Nov 4, 2007
#* updated project schedule
#* drafted proposed requirements and specifications for release 0.2
# Updated Project Details - Nov 22, 2007
#* Completed Milestone 2
#* Updated Milestone 2 with source code and patch.
# Updated Project Details - Dec 12, 2007
#* Updated Project Schedule
# Updated Project Details - Dec 15, 2007
#* Updated Project Schedule
#* Updated Project Details for Release 0.3
1
edit

Navigation menu