Online Desktop Project Plan

From Mugshot Developer Wiki

Jump to: navigation, search

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.

Contents

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

Enlarge
  • 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

See Big Board Development

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
  • 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

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?
Personal tools