Wish List

From Deep Thought

Jump to: navigation, search

Contents

About

Open source software wish list management system based on KISS rules. Keep track of software enhancement requests and keep the interested parties informed of the plans to implement the requests.

Contributions can be made to Cyber Sprocket Labs, the architects & maintainers of this application, at their contributions page. Just enter "wishlist" as the invoice number.

Download

The application can be downloaded by pulling the files from the subversion repo as noted in the Development section below.

License

Platform

System Architecture

Data Structure

Accounts

Users belong to accounts, allowing for separate wish lists to exists with a single installation. For a shared hosting environment this allows multiple accounts to exist on a system, each with their own user base all being managed on a single server/single install (SaaS environment).

  • acct_id
  • acct_name

Users

  • user_id
  • user_acctid
  • user_name
  • user_pwd - md5()
  • user_level - user,admin

Requests

  • req_id
  • req_request
  • req_details
  • req_by
  • req_date
  • req_catid

RequestPriority

The priority and level assigned to a request. A linked table so we can change the priority and/or level after the initial request. The idea is that the original requestor can state what they think the priority should be (i.e. "Critical / Level 0") and the project manager can re-assign a new priority (i.e. "Not-So-Critical / Level 10") and we'll be able to report a history of the priorities/levels for a specific request over time.

  • reqp_id
  • reqp_reqid
  • reqp_priority
  • reqp_level - integer to rank requests within priority classes
  • reqp_by - who did this
  • reqp_date - when
  • reqp_reason - why the priority was changed (default: original request)

Categories

How we group our requests. Free form text entry. Use this for something simple like the name of various products (i.e. "Icarus, Daedalus, Eyore") or for functional areas of one application (i.e. "Accounts Payable", "Accounts Receivable", "Payroll").

  • cat_id
  • cat_name
  • cat_rank - for sort order if not alpha

Priorities

What priorities are allowed for your ranking of requests. A typical priority list would be "Critical","Standard","Low".

  • pri_id
  • pri_name
  • pri_rank - for sort order if not alpha

User Interface

All

  • Create Request
  • Report All Requests

Admin

  • Categories admin (add/remove/modify)
  • Priorities admin (add/remove/modify)
  • Requests admin (add/remove/modify)



Development

This application is distributed and updated via the subversion source control system.

  • The home base is located at svn://cybersprocket.com/wishlist/

Directories & Files

Root (/)

The main home of the application.

  • .htaccess - controls the URL to direct everything into index.pl for processing
  • index.pl - the controller for the entire system, invokes the framework

Data (/data)

Where the data related documents, schemas, and tools live.

The files named schema-*.sql are the data schema files that contain the SQL used to create and populate the database on an install or upgrade. Files names schema-update-*.sql are the iterative changes between versions, starting with the 0.1 release you can run each SQL file in sequence to upgrade to the next release (that is our current theory anyway).

  • schema-current.sql : the data schema and initial data records for the current application schema (great for new installs)

Library (/library)

The supporting Perl libraries go here including the action and view interfaces.

  • Actions.pm - handles the application actions
  • Views.pm - manage the presentation of the app

View (/view)

The display stuff like templates, etc. live here.

Templates (/view/templates)

The different view templates.

Zinc Framework(/zinc)

Contains a copy of the Zinc framework files. On development boxes this is a symbolic link to the Zinc installation directory.

Personal tools
Cyber Sprocket Labs
Cyber Sprocket Tech