This is still a WIP, but generally reflects the current plan.
As used in these pages, an "interaction" is a specific visitor (user, admin or author) task, designed around a set of mostly-explicit user goals. We aim to keep the number of action as small as possible -- but no smaller: we prefer a larger number of simple interactions to a smaller number of more complex ones, for reasons of improved usability and keeping the combinatorial complexity of each interaction manageably low.
The software architecture is subservient to this "interaction"-based model, though we hope and believe that this focus on simplicity and task independence will in fact aid in development and maintenance of the system. We'll find out soon! (Note: I use the term "architecture" very softly and loosely here; please do not have nightmares of UML and pattern languages leaping fully formed from my fevered brow.)
The distinction between "major" and "minor" interactions below is somewhat arbitrary, currently based almost complete on shaver's initial whim. The general rule is that major interactions are those that virtually every visitor of that category will need to perform. Many of the "minor" interactions are in fact vital to the operation of the site, but our success is likely to be less dependent on the quality of the interaction experience for them, especially early in the lifetime of this new system. In some cases, in fact, we may well settle for little more than scaffolding CRUD pages for the admin/developer minor interactions.
Major user interactions
Minor user interactions
- Register (on site)
- Comment (add comment/discuss add-on)
- Review (add review)
- Rate add-on
- Subscribe (to notifications for comments, updates, etc.)
- Favorites "favorites" lists like in iTunes -- which could possibly be downloadable as extension "packs"
- Author Homepage overview of add-ons
- Submit new/updated add-on
- Update add-on description and metadata (esp. version-compat and localization info)