ADT Functional Spec ExpenseTracker
ADT Functional Spec ExpenseTracker
Version 1.0
Functional Specification
`Document Revisions
2 of 2 Author: Jason
ADT: Expense Tracker Version 1.0 Functional Specification
1 Introduction 4
1.1 Purpose of this document 4
1.2 Scope of this document 4
1.3 Overview 4
1.4 Business Context 4
2 General Description 4
2.1 Product Functions 4
2.2 General Constraints 4
3 Functional Requirements 11
3.1 Expense Tracker Application 11
3.1.1 Description...................................................................................................................... 11
3.1.2 Risks and Dependencies.................................................................................................. 19
4 Database Design 20
4.1 Description 20
4.2 Communications Interfaces 20
5 Other non-functional attributes 20
5.1 Reliability 20
5.2 Maintainability 20
5.3 Portability 20
5.4 Extensibility 20
5.5 Reusability 21
5.6 Serviceability 21
3 of 3 Author: Jason
ADT: Expense Tracker Version 1.0 Functional Specification
1 Introduction
1.1 Purpose of this document
The purpose of this document is to specify the functional and system specification of the Expense
Tracker application and its counterpart, Expense Admin. The document will provide a road-map
through which the implementation of the application will be developed and where applicable, will
also contain information detailing technical design constraints and assumptions.
1.3 Overview
The basic functions of ExpenseTracker are:
• To record, track, and seek approval for expenses
2 General Description
2.1 Product Functions
The general functionality of the Expense Tracker application is to allow users to display general
information in a single location online. The application generates a dynamic page depending on
the entered information and the setup preferences. Expense Admin permits additions and
removals to the database as well as approvals.
4 of 4 Author: Jason
ADT: Expense Tracker Version 1.0 Functional Specification
The application will be written in Perl and the data files are stored in a common flat file system
(ASCII File). This will slow down in terms of searching for information if there is a presence of
huge database.
The application is also able to interface with relational databases should the administrator desire
it.
5 of 5 Author: Jason
ADT: Expense Tracker Version 1.0 Functional Specification
Link Target ‘_self’ or current window
User_Fields Auth_username, auth_password, auth_groups,
auth_firstname, auth_lastname, auth_email
Mail Params
Type Sendmail Default on most systems
User Mail Send Params
From [email protected]
Subject Password Generated
Admin Mail Send Params
From [email protected]
To [email protected]
Subject Registration Notification
Auth Manager Config Params
Type CGI
Allow Registration Off
Allow User Search Off Allow anyone to checkfor
an old account.
Generate Password Off
Default Groups Normal
Email Registration to Off
Admin
Display Registration On
After Failure
Data Handler Setup How data is handled
Add Form DHM Config
Type CGI
CGI Object $CGI
Data Handlers Email, Exists, HTML, String
Field Mappings Expense_type, amount_in_sing_dollar,
description, project_code, approved
Datasource Setup Configure the database
and fields displayed
Field Names record_id, expense_type, amount_in_sing_dollar, Corresponds to default
description, project_code, approved, extropia database
username_of_poster, group_of_poster,
date_time_posted,
Sample Default Widget Configure field types for
Definitions TTML
Display Name Country Name that appears in the
browser
Type Textfield, textarea, popup_menu
Name Fname Internal field name
Size 30 Display size in characters
Maxlength 80 Maximum number of
characters permitted
Rows 6 Initial height of textarea
Cols 30 Initial width of textarea
Wrap VIRTUAL Wrapping of text in
textarea
Basic Datasource Config Configure datasource
Params
Type File
File $APP_DATAFILES_DIRECTORY/$APP_NAME.
dat
6 of 6 Author: Jason
ADT: Expense Tracker Version 1.0 Functional Specification
Field Delimiter | (pipe)
Comment Prefix # Ignore lines starting with
#
Create File if None On
Exists
Field Names \@DATASOURCE_FIELD_NAMES
Key Fields ['record_id'] Not required if key is not
used
Field Types Record_id => ‘Autoincrement’ Specify a specific kind of
field
Mailer Setup Required for regular
email. Not the same as
Auth Mailer
Mail Config Params
Type Sendmail
Delete Event Mail Send Warns Someone of
Deletions to the database
From [email protected]
To [email protected]
Reply To [email protected]
Subject Expense Delete
Add Event Mail Send Tells user of additions
From [email protected]
To [email protected]
Reply To [email protected]
Subject Expense Addition
Modify Event Mail Send Tells user of
modifications to records
From [email protected]
To [email protected]
Reply To [email protected]
Subject Expense Modification
Logging Setup
Type File
Log File $APP_DATAFILES_DIRECTORY/$APP_NAME.
og
Log Entry Suffix '|' . _generateEnvVarsString() . '|',
Log Entry Prefix ‘ExpenseTracker|’
View Setup Views to use, display,
and defaults
Valid Views CSSView, AddRecordView, BasicDataView, The program cannot
DetailsRecordView, AddAcknowledgementView, display views that are not
AddRecordConfirmationView, available here.
DeleteRecordConfirmationView,
DeleteAcknowledgementView,
ModifyAcknowledgementView,
ModifyRecordConfirmationView,
ModifyRecordView, PowerSearchFormView,
SessionTimeoutErrorView, LogoffView,
OptionsView, ExpenseFrameView,
ExpenseTocView, ExpenseStatsView
View Display Params Defaults for Views
Application Logo logo.gif
Application Logo 40
7 of 7 Author: Jason
ADT: Expense Tracker Version 1.0 Functional Specification
Height
Application Logo Width 353
Application Logo ALT WebDB Demo
Color for Even Rows E5E5E5
Color for Odd Rows FFFFFF
Display Fields expense_type, amount_in_sing_dollar,
description, project_code, approved,
date_time_posted,
Table BG Color 1 6699CC
Table BG Color 2 E5E5E5
Table BG Font Color 1 BLACK
Table BG Font Color 2 BLACK
Allow Additions On
Allow Deletions On
Allow Duplicate Entries Off
Allow Modifications On
Filter Setup
HTMLIZE Filter
Type HTMLize
Convert Double On
Linebreak to P
Convert Linebreak to On
BR
Charset Filter
Type CharSet
Embed Filter
Type Embed
Enable Off
Action/Workflow Setup
Action Handler List Defaults User should not need to
modify
Action Handler Action Params
Action Handler List \@ACTION_HANDLER_LIST
Add Acknowledgment AddAcknowledgementView
View Name
Add Email Body View AddEventEmailView
Add Form View Name AddRecordView
Allow Additions Flag On
Allow Deletions Flag On
Allow Duplicate Entries Off
Allow Username Fields On
to be Searched
Allow Modifications On
Flag
Application Sub Menu ApplicationSubMenuView
View Name
Options Form View OptionsView
Name
Auth Manager Config \@AUTH_MANAGER_CONFIG_PARAMS
Params
Add Record AddRecordConfirmationView
Confirmation View
Name
Basic Data View Name BasicDataView
8 of 8 Author: Jason
ADT: Expense Tracker Version 1.0 Functional Specification
CGI Object $CGI
CSS View URL $CSS_VIEW_URL For speed, change CSS
URL to a location outside
the CGI directory.
CSS View Name CSSView
Datasource Config \@DATASOURCE_CONFIG_PARAMS
Params
Allow Additions On
Allow Deletions On
Allow Duplicate Entries Off
Allow Modifications On
Default Sort Field1 Category
Default Sort Field 2 Fname
Default View Name ExpenseFrameView
Delete DeleteAcknowledgementView
Acknowledgment View
Delete Record Confirm DeleteRecordConfirmationView
View
Records Per Page [5, 10, 25, 50, 100] Remove or change
Options numbers as desired. This
appears under Options.
Max Records Per $CGI->param('records_per_page') || 5
Page
Sort Field 1 $CGI->param('sort_field1') || 'category’ Sort by which field?
Sort Field 2 $CGI->param('sort_field2') || 'fname’ Sort by which field?
Sort Direction $CGI->param('sort_direction') || 'ASC' ASC=Ascending,
DSC=Descending
Delete Form View BasicDataView
Name
Delete Email Body DeleteEventEmailView
View
Details View Name DetailsRecordView
Data Handler Manager \@DATA_HANDLER_MANAGER_CONFIG_PAR
Config Param AMS
Display On
Acknowledgement On
Add
Display On
Acknowledgement On
Delete
Display On
Acknowledgement On
Modify
Display Confirmation On
On Add
Display Confirmation On
On Delete
Display Confirmation On
On Modify
Enable Sorting On
9 of 9 Author: Jason
ADT: Expense Tracker Version 1.0 Functional Specification
Hidden Admin Fields HiddenAdminFieldsView
View
Input Widget \@INPUT_WIDGET_DEFINITIONS
Definitions
Key Field record_id
Logoff View LogoffView
URL Encoded Admin URLEncodedAdminFieldsView
Fields View
Log Config Params ModifyAcknowledgementView
Modify ModifyRecordConfirmationView
Acknowledgment View
Mail Config Params \@MAIL_CONFIG_PARAMS
Modify Form View ModifyRecordView
Modify Email Body ModifyEventEmailView
View
Power Search View PowerSearchFormView
Require Auth to On Is authorization required
Search for the action?
Require Auth for Add On Is authorization required
for the action?
Require Auth for On Is authorization required
Modify for the action?
Require Auth for On Is authorization required
Delete for the action?
Require Auth for On Is authorization required
Details for the action?
Require Matching Off Is a matching group or
Username for Modify username required for
the action on that record?
Require Matching Off Is a matching group or
Group for Modify username required for
the action on that record?
Require Matching Off Is a matching group or
Username for Delete username required for
the action on that record?
Require Matching Off Is a matching group or
Group for Delete username required for
the action on that record?
Require Matching On Is a matching group or
Username for Search username required for
the action on that record?
Require Matching On Is a matching group or
Group for Search username required for
the action on that record?
Send Email on Delete Off
Send Email on Modify Off
Send Email on Add Off
Session Object $SESSION
Session Timeout View SessionTimeoutErrorView
Templates Cache $TEMPLATES_CACHE_DIRECTORY
Directory
Valid Views \@VALID_VIEWS
View Display Params \@VIEW_DISPLAY_PARAMS
View Filters Config \@VIEW_FILTERS_CONFIG_PARAMS
10 of 10 Author: Jason
ADT: Expense Tracker Version 1.0 Functional Specification
Params
View Loader $VIEW_LOADER
Simple Search String $CGI->param('simple_search_string') || ""
First Record on Page $CGI->param('first_record_to_display') || 0
Last Record on Page $CGI->param('first_record_to_display') || "0"
Page Top View PageTopView
Page Bottom View PageBottomView
Action Handler Plugins \%ACTION_HANDLER_PLUGINS,
Basic Input Widget 2
Display COLSPAN
3 Functional Requirements
3.1 Expense Tracker Application
3.1.1 Description
The following definitions only cover the Default settings and views.
Registration of normal users is simply done by pressing “Logon” and following the Registration
Views. User data is written to the datasource. In the default installation, it is written to
Datafiles/Expense/expense.users.dat. It is recommended that administrators do not
alter the contents, especially the encrypted passwords. The information is listed as:
username|password|group_name|fname|lname|email
11 of 11 Author: Jason
ADT: Expense Tracker Version 1.0 Functional Specification
- Logon View requests the Username and Password of registered users. Users may attempt to
logon, Register, or Search for Account. Also the view for failed logins.
- Register View permits any user to enter Username, Password, Confirm, Password, First Name,
Last Name, and E-Mail. The user may then Register or Return to Logon Screen.
12 of 12 Author: Jason
ADT: Expense Tracker Version 1.0 Functional Specification
- Register Confirmation View confirms registration and returns the user to the Logon View.
- Logoff View logs the user out and confirms the logoff. The session is terminated.
13 of 13 Author: Jason
ADT: Expense Tracker Version 1.0 Functional Specification
Application Specific View Definitions
- Default Display is split into two screens. The right screen lists the user’s records. The left isthe
control panel. A user may view his claims, open claims, closed claims, and statistics. The user
may also “fast add.” Users may also search their claims.
14 of 14 Author: Jason
ADT: Expense Tracker Version 1.0 Functional Specification
- My Stats View displays total expenses for that user.
15 of 15 Author: Jason
ADT: Expense Tracker Version 1.0 Functional Specification
- Open Claims View simply displays any unapproved records
- Closed Claims View displays approved records
16 of 16 Author: Jason
ADT: Expense Tracker Version 1.0 Functional Specification
- Details View displays the subject, abstract, and full text of a news item. User may then Modify or
Delete.
- Fast Add Record Form permits entry of a new record. Expense Type, Dollar Amount, Project,
and Description are required fields.
17 of 17 Author: Jason
ADT: Expense Tracker Version 1.0 Functional Specification
- Add Record Confirmation View will display details of the new claim and ask for confirmation.
18 of 18 Author: Jason
ADT: Expense Tracker Version 1.0 Functional Specification
- Add Record Acknow ledgement View will be displayed after a record is added to let the user
know that the action was successful.
- Modify Record form will allow the user to edit the details of his records.
- Modify Record Confirmation Page will display record details for final confirmation before they
are modified in the data source
- Modify Record Acknow ledgement Page will be displayed after a record is modified to let the
user know that the action was successful.
- Delete Record Button permits deletion of records.
- Delete Record Confirmation Page will display details for final confirmation before deleting the
record
- Delete Record Acknow ledgement Page displayed after successful deletion.
Not available.
19 of 19 Author: Jason
ADT: Expense Tracker Version 1.0 Functional Specification
administrator with the same user information as a regular user will be accessible to both
users.
4 Database Design
4.1 Description
The data of the application will be stored in a flat file. Each data fields of a record will be
separated by ‘|’.
5.2 Maintainability
Requires little maintenance. Owners will want to clear out a large flatfile now and then aswell as
ensure their installation is secure from hackers. Users of relational databases will probably not
need to clear out their database.
5.3 Portability
5.4 Extensibility
Information entered via Expense Tracker is portable to any relational database. The program can
easily be switched to a new database with just a few lines of code. The program relies on the
eXtropia ADT that divorces form and function.
20 of 20 Author: Jason
ADT: Expense Tracker Version 1.0 Functional Specification
5.5 Reusability
Expense Tracker is highly reusable. The application can be modified for just about anything!
5.6 Serviceability
21 of 21 Author: Jason