Alfred

From MozillaWiki
Jump to: navigation, search

Project Alfred is an IRC bot and a web dashboard for reporting status and tracking accountability for small teams.

Background

Regular meetings with roundtable status updates are great for teams which strive to be efficient and transparent. However the process of editing a status update is tedious and repetitive. Furthermore most tools used for collecting updates (e.g. wiki) offer no way to track an evolution of an update. If something was reported to be a struggle one week, what happens to it the following week?

Goals
  • Create a dashboard for viewing weekly status reports.
  • Design a workflow for rolling updates over to the following week.
  • Allow an easy data input via a chat bot.
  • Integrate the dashboard with Bugzilla and GitHub.
Non-goals
  • Create a project management tool.
  • Create a to-do app.

Design Philosophy

Using the vocabulary of https://polidea.com/deck.

  • Reactive, not pro-active: All interactions with the app are intiated by users.
  • Automatic, not smart: The app does little or no data processing beyond what is initiated by the user.
  • Serious, not playful: The app’s visuals and tone of voice are serious.
  • Native, not custom: The app’s structure and information architecture adheres to platform-specific guidelines.

The user should interact with it in the most frictionless way possible. Some user input is better than no input at all. Alfred tries to be as helpful as possible and doesn't get in the way.

Overview

Alfred's architecture consists of three components:

API server
The server is connected to a MongoDB instance which stores all user-submitted updates and reports. It has a REST-ful API which is used by the bot and the front-end to add and change updates. The server also exposes endpoints for webhooks which allows enabling integrations with other web services, like Github.
IRC bot
The bot allows users to manipulate their inboxes and reports via IRC. Updates submitted via the bot are saved to the user's inbox for a later triage.
WWW front-end
The front-end offers two main views: an inbox view which is user-specific and a weekly report view which displays updates reviewed by each user. The inbox view lists all updates gathered by Alfred from different sources: the bot, webhook integrations and previous reports; it allows the user to curate what their current weekly report look like.

An individual update can have many states throughout its lifetime: inbox, event, todo, done, archived, removed, goal, struggle, achievement. Alfred keeps track of the state changes by creating a copy of the changed update and by marking the old updates as resolved. By creating copies Alfred can show an update as a goal on one week's report and as achievement on the following week's report.

Roadmap

Alfred is in very early stages of development. Consult https://github.com/stasm/alfred/milestones for more information about the current status and release planning.