Requirements

About

Library of requirements and use cases for an enterprise portal framework consisting of:

Requirements

what the framework needs to do to fulfill our visions

Use Cases

detailed descriptions of how to meet our requirements, XP story-card style

Requirements

Features a portal framework has to have (both implemented and not currently implemented in uPortal) to allow us to accomplish our vision. Please click on the link below to create additional use cases and add a link under the appropriate functional requirement (or add a new requirement if your use case does not fit within the scope of an existing one)

Add a new use-case

End-user Requirements

Requirements in support of the end users of the portal (in an academic environment, students, faculty, staff, etc.)

Accessibility

User Customization & Personalization

  • pushed content - content groups automatically displayed to users
  • select content groups to be available to users for subscription based on user groups or attributes ("pulled content")
  • distributed content group management (e.g. allow a selected user to modify/maintain 1 fragment)
  • allow "locked down" content - content that cannot be moved/removed by users
  • allow users to customize the content displayed
  • allow users to personalize displayed content (categories, #items, stored settings)
  • display channels by category
  • optionally allow only certain categories of channels to be available on a fragment

User Experience

  • customizable user layout/preferences
  • selectable skins/look & feel
  • easy way to discover/add content
  • standard, semantic markup
  • cross-browser/device rendering support
  • graceful degradation for various client levels (e.g. no JS, CSS, text only)
  • easy way to see what channels are new (e.g. channels that have been added since your last visit)
  • ability to search channels (e.g., by name, keyword, date added)
  • ability to deep link to a channel (i.e., specify a static URL that logs the person on, if necessary, and then takes them directly to that channel)

Friend Access

  • ability to grant access to others (e.g., parents)
  • ability to specify which channels other designated indivuals may see

Infrastructure to support:

Administrator Requirements

Requirements in support of people who configure portal content and policies. Channel publishers, layout owners, etc.

Administration

  • Multiple Admin Access Methods
  • Modify
    • users (GUI, config file)
    • groups (GUI, config file)
    • permissions (GUI, config file)
  • Publish channels (GUI, config file)
  • Error Reporting
    • logging
    • notification of error conditions
  • Layout
    • Specify layout (GUI, config file)
    • Transparently replace channels

Statistics & reporting

  • Useful metrics and statistics out of the box
    • channel usage, performance
    • fragment usage, performance
    • user logins
  • Locally extendable metrics
  • Exposed via reports, JMX, etc.
  • Flexible persitance (file, database)

Generic Channel Support

  • web proxy
  • iframe
  • XML/XSLT
  • RSS / feed reader
  • Portlet (JSR-168)
  • WSRP Consumer

General Purpose Channels

Evaluator Requirements

Requirements for individuals evaluating utilizing or deploying a portal based on the uPortal framework.

  • Public demonstration deployment
  • Quickstart release
  • Documentation of features and capabilities
    • Comparison with other portal solutions

Deployer Requirements

Requirements in support of systems programmers and staff deploying uPortal, designers locally skinning uPortal.

Deployment

  • property management
  • support over-riding default configuration without rebuilding the application
  • support loadbalanced/clustered environments
  • Runs on a FOSS stack (Tomcat servlet container)
  • Runs without modification under JDK 1.4+

Authentication

Institutional Customization & Personalization

Internationalization & Localization

  • internationalized message storage & generation
  • localized messages automatically selected from user agent
  • architecture for separating translation strings, producing & updating translations

Groups & Authorization

  • integrate with externally defined groups (ldap, db, etc)
  • allow locally defined ad-hoc groups defined and managed through the portal UI
  • distributed group administration
  • expose uPortal groups information via LDAP abstraction via embedded LDAP server (for use, integration with other systems)

Person Information

  • integrate with external sources (ldap, db, etc)
  • allow local attributes defined and managed through the portal UI and API
  • ability to merge attribute information from multiple sources

Documentation

  • Comprehensive documentation of configuration and deployment

Developer Requirements

Requirements in support of programmers, designers, and other developers who customize, extend, and write widgets for uPortal.

APIs and extension points

  • Authentication API for integrating with a local SSO or other authentication scheme

Code quality

  • Pervasive source-level logging as a best practice for logging the behavior of the portal
  • Comprehensive unit test coverage to prevent regression and support testing of local customizations
  • Thorough specification of APIs
  • Adoption of patterns and best practices yielding readable and maintable code

Documentation

  • Appropriate use of external libraries and common practices such that external projects' documentation applies to uPortal
  • Comprehensive documentation of intended extension points

Other

Event handling

  • notify users when events occur
  • notify channels when user generated events occur (e.g. login, logout, etc.)
  • general event subscribe, publish support. Support for registration of event listeners.

Migration

  • db conversion/migration tools from previous uP versions
  • ability to export & restore data (e.g. between production tiers/instances)
  • easy to integrate change/progress to uP core to local deployments

Standards Support

  • JSR-168 Portlet Support
  • WSRP Consumer Support
  • WSRP Producer Support
  • IChannel support
  • Database independent

Scalablity, Performance and Reliability

  • Ability to serve thousands of users simultaneously
  • Compatible with application server clustering
  • Session replication support
  • Transparent failover support
  • Ability to run for weeks without restarting