Online Desktop Project Plan
From Mugshot Developer Wiki
This is a project plan and detailed task list for the online desktop, for a higher-level discussion we need to make a Wiki page but for now see this blog post.
Sprint to Monday April 30
- Create a jhbuild target for "online desktop" (someone with gnome svn access)
- Big board polish items (Colin)
- Big board "log in" mode (Colin)
- Deploy new server code, then start on API revision (Owen)
- Online Apps packaging (Havoc)
Next Few Sprints
These items might be about right for the GUADEC timeframe (late July).
Initial Login
- On a clean install, walk through the steps of choosing online desktop mode, creating or logging in to an account, having gnome-session start the right stuff, etc.
- Set up the distinct defaults for e.g. gnome-panel, such as dropping top panel and moving icon tray to bottom panel
We can leave the local login / account system as is, this help us to not muck with multple first boot type systems on different distros. Instead when the person logs into the desktop we can present desktop and the big board as logged out until they either create a new account or log into their existing account.
Big Board Polish
Applications Stock: Integrate with mugshot.org/applications
- We're pulling in the most popular applications (you don't have installed) in any category the browser navigates to
- Main category gets the popular apps of all
- Sub categories show most popular applications within that category
- Searches using the search box will send off an async query to search the application database
- Results of the database query are presented in a double size "promo" area
The Application stock / Application browser is starting to function really well. See the Category:Application Browser and Category:Application Stock sections for mockups. We are still focusing on functionality over our ugly appearance right now.
Add Online Apps to App Catalog
We need to get these applications into the online catalog as well as collecting popularity information.
- Short list of online applications to initially support, a full list might end being like this. Current apps listing from Subversion
- Picasa
- Flickr
- GMail
- other webmail
- Google Docs
- Google Spreadsheets
- Google Reader
- RSS reader or two
- Package these apps as tarballs in jhbuild, and RPMs so they have a .desktop file (perhaps one tarball for all apps for now?)
- Add them to mugshot.org/applications database
- In packaging, consider
- is there a need to write or package a locally-running component such as mail notification
- is there a need for a protocol or MIME type handler (mailto:, etc.)
- The app catalog may need some tweaking so people expect online apps to be mixed in
Mugshot Client: Clean up API
Server: "Affiliations"
- Mockup and prototype an idea that Mugshot users have one or more "affiliations" such as Fedora, Ubuntu, etc. and that these affiliations might change the branding they see and what their page looks like to others
- We need not implement this with high priority, but we should be ready to explain it / show mockups relatively soon
Big Board: Easier Third Party Contribution / Bundle System
- Spend time enhancing the stock/module system with focus on ease of creating and distributing the stocks
- Consider a server-side catalog of stocks
- Spend time enhancing the search module system with similar focus on ease of use
- Documentation
- We have a fairly long list of possible features for the stock system such as showing who created each one (or even the "ancestry" as the music embed theme used to), local sharing, etc.
People Stock: Local Browsing
- merge in people who are on the LAN
- allow some way to contact these people
- allow sending a file to these people
People Stock: IM Integration
- show presence in some way (bubble present people to top, fade out not-present people, something)
- show away messages in some way
- merge in buddy lists from logged-in IM sessions to the stock
- add ability to "IM this person"
Later Items
Search Stock: Modules
- Search across your own and friends' accounts
- Flickr
- Del.icio.us
- Google Docs
Big Board: RSS Reader Stock
- Ideally, a local display of whatever online RSS reader someone already uses; show the latest articles
- Also, instant notification via the stock or via a tray icon when new feed entries arrive; currently people are overloading Mugshot proper for this purpose
Big Board: Calendar Stock
- Making the calendar stock good is a fairly involved design and coding project
Mugshot Client: Split Stacker UI and Proxy Server
- Split the D-Bus service that provides API to the rest of the desktop from the stacker notifications ?
File Sharing
- some simple way to share files with someone else (needs design and prototype)
Server: Keeping the Code Sane
- proactive cleaning up and deleting old gunk; this will be important as we work on further scalability; some quick ideas here
- mop up the various "async tasks" (post-commit actions, periodic polling tasks, etc.) and make the system for this a clusterwide work queue all nodes can pull from
- reorganize and split up the java packages
- implement http://developer.mugshot.org/wiki/Extensible_Server_API
- clean up the two remaining "orange" pages (/sharelink and /visit) and delete associated javascript and css
Server: Scalability
- adjust how our deployment scripts work so we can start the cluster in parallel
- change some singleton-based stuff to instead be a shared work queue that all nodes can pull from, e.g. polling tasks
- profile the server and see if there are some easy efficiency wins
Server: Account Page
- We have an old mockup to make the account page scale to many more accounts, will need to implement it eventually
Server: Clean Error Logs
- There are some hard-to-get-rid-of errors that we need to bite the bullet and get rid of
- There may be real errors concealed by these
Server: OpenID Support
- Add support for OpenID
GNOME Integration: Games
- Enhance gnome-games to use the same friends list as the People stock, and use our notification infrastructure to invite people to play
GNOME Integration: Enhance Chat Apps
- Show headshots or current songs in xchat and/or gaim
Fedora: Live CD or USB Key
- Create a live CD or USB key version of the online desktop
Stacker: Improve Web Swarm
- Special-case YouTube, potentially inlining videos or otherwise making them easy to get to
- Improve /sharelink and its ability to be smart about taking title (and thumbnail?) from the shared page
Stacker: Filter "Stuff Sent To Me Explicitly"
- Make it "more robust" to know you've read and know others will read explicitly-shared items
Stacker: Support More Accounts
- Continue to pick stuff off of Where_I'm_At_Locations
Stacker: Handle Friends Without Accounts
- Needs more thought, the idea is to be able to watch people that don't sign up for Mugshot
- ask for your friends on other sites via their APIs then track them?
- allow adding "phantom friends"?
"Files Problem"
- Nautilus encourages local storage and file management; fix this
- Journal app? Online journal? Use Google Docs journal?
- Merge online docs into Recent Documents and have a stock for it
- Modify the GTK+ file dialog in some way?
- How does file sharing fit in?
- Backup?

