My favorites | Sign in
Project Logo
                
Search
for
Updated Jan 17, 2009 by pla...@wanderingbarque.com
Labels: Phase-Requirements
DetailedRequirements  

Xprest System Requirements

Xprest System Requirements

The IT development team spent the better part of the day with the subject matter experts (together, the core team) to discern the desired functionality and constraints on the proposed expense reporting system, code named Xprest. The following represents the core team's findings.


Note to reader: Because this project is for learning purposes, much of the functionality you would expect in a complete expense reporting system has been left out. For instance, this project will not implement currency conversions, a tiered approval process, billable expenses, credit card management, receipt processing, and corporate policy compliance.


Authentication and User Management


Note to reader: In the real world we would almost certainly have to integrate with a single sign on solution and an enterprise directory, but that's beyond the scope of this project. For now, user's will be maintained locally to the system. However, this is subject to change.


Roles and Authtorization

From the Xprest point of view we have identified the following roles and permissions:

Role Permissions
User Can create, view, and edit expense reports created by them. Everyone is a user
Approver Can approve or reject expense reports submitted by her direct reports. Can view her direct report's submitted and approved expenses. Can view summary data about her report's expenses. A user is an approver if they have another user as a direct report.
Department Manager Can view expenses submitted or approved by members of her department. Can view summary date about here report's expenses
Admin Can administer the system, e.g. create users, assign $/mile, etc.
Accountant Can access summary information regarding all expenses. (Note, it is expected that the Accountant role is used by both humans and remote software.)

Expense Report Management

Expenses in Xprest are not weekly, as they are in the current spreadsheet version is. Instead the SMEs would like to track expenses by event. Expense period can be any time encompassed by that event. There is one event per expense report, even if multiple events took place simultaneously or contiguously.

For instance, a simple expense report might be for the "PostgreSQL training," take place over three days, and that's it. On the other extreme a salesperson might be on the road for a week attending a trade show while visiting clients. In this case the trade show would be one event and each client visit would be another. If a single expense could be realistically applied to any of these events, such as travel, than the user simply selects one arbitrarily. A final example, knowing that Pasithea allows home-based employees to expense their Internet access fees, would be the employee who submits a single expense at the end of the year for "Internet access expense;" a report with twelve line items.

Thus, an expense report consists of:

An expense item represents one outlay of funds by an employee. Of importance to the SMEs is the need to track what type of expense has been incurred, e.g. airfare, hotel, dinner, etc. Tracking needs to be two tiered: how much did we spend on travel? How much did we spend on air fare.

An expense item consists of:

Special handling:

Workflow

An expense report has a life cylce. At different points in this life cycle different people are allowed or expected to perform certain actions on an expense report. The states and actions are:

State Meaning Transitions Actions
open Expense has been created but not submitted for approval submitted Expense owner may edit or delete open expense reports.

No one else may see or act on an open expense.

Expense owner may submit expense for approval.
submitted Expense has been submitted for approval mgr-approved, mgr-rejected, withdrawn Expense owner may move a submitted report to the withdrawn state.

A manager may move a submitted expense report to the approved or rejected state.

A manager may add a note to the report or individual items, but may not otherwise edit or delete a report.
A manager may view all submitted reports.

A department manager may view all submitted reports.
mgr-rejected Manager has not approved expense submitted, withdrawn Expense owner may edit (but not delete) a mgr-rejected expense.

Expense owner may withdraw or re-submit expense.

A manager may view her direct report's mgr-rejected expenses.
A department manager may view the mgr-rejected reports of her department members.
mgr-approved Manager has approved expense acctg-rejected, acctg-approved Expense owner may view expense.

A manager may view expense.

A department manager may view expense.

An accountant may move the expense to the acctg-rejected or acctg-approved state.
An accountant may add a note to the report or individual items, but may not otherwise edit or delete a report.
withdrawn The expense owner has removed this report from the approval queue submitted An expense owner may edit a withdrawn report.

An expense owner may move the report into the submitted state.
No one else may view or interact with a withdrawn report.
acctg-rejected Accounting has not approved expense mgr-rejected, mgr-approved Expense owner may view a acctg-rejected expense.

A manager may view her direct report's acctg-rejected expenses.
A manager may add one or more notes to the report or individual items.

A manager may move the report into the mgr-rejected or mgr-approved states. A department manager may view the acctg-rejected reports of her department members.
acctg-approved Accounting has approved the expense paid Owner, manager, department manager, and accounting may view the expense. Accounting may move the report into the paid state. Accounting may add notes to the entire report on an individual item.
paid Accounting has cut a check for the expense amount (none) The expense has been paid and closed. All allowed parties can view. No one may alter the expense

Integration

TBD


Sign in to add a comment
Hosted by Google Code