Team_B_Design_Specification_FINAL

advertisement
It CIS 470 Design Specification
Team:
Team B
Team Members:
Cale Coyle
Michael Kozy
Brian Maerhofer
Christopher Ozaetta
Dave Rigsby
Date:
August 27, 2007
Project Tile
Taylor’s Professional Services – eCommerce Web Site
1.
Scope
1.1. Project Objective
The purpose of this project is to create a web-based application that will fill the needs for
TPS with staffing requests. To create a web site so that their clients can complete a
staffing request over the internet.
This system will be design to allow the maintenance and retrieval of four types of
data:




Staffing Requests
Contracts
Staff Information
User Access Control
1.2. Deliverables
This system will manage employment information from user input. The project will also
include various access/security levels depending on the user type. Each type of user has
different functionality to be able to maintenance the system fully.
1.3. Milestones
Milestone
Due Date
Project Plan
July 15, 2007
Requirements Specification
July 22, 2007
Team Charter
July 22, 2007
System Design Specification
August 5, 2007
Component/Unit Code
August 19, 2007
Testing Complete
August 26, 2007
Final Presentation
August 27, 2007
1.4. Technical Requirements
The system will be designed to be hosted using Microsoft Internet Information Server
running on the Windows Server 2000 operating system. This system is also designed for
20 con-current users.
1.5. Limits and Exclusions
Non-authenticated users which browse the site (Public Users) will be able to view the
home page which will contain a link to the Login page which will allow users to
authenticate to the web site.
1.6. System Description
Taylor’s Professional Services (TPS) is a technical and engineering staffing service.
TPS wants to provide a web site so that their clients can complete a staffing request
over the internet. In addition, TPS wants to provide their clients with a list of
potential candidates based on experience, education, salary, and location. The
purpose of this project is to create a web-based application that will fill the needs for
TPS with staffing requests.
The following is a basic model of how our website will allow all these functions and
interactions between the staff, client, and contract manager.
1.7. Major Software Functions
1.7.1 User Authentication
The application will be partitioned into two main sections, public and
authenticated. The public portion of the web site will allow visitors to view the
front page, the login page, and the contact us web pages. In order to increase site
security, automatic logins (cookie-based, etc) will not be supported. In addition,
the Login will occur over Secure Socket (HTTPS) in order to help maintain the
confidentiality of information.
Authentication credentials will consist of a user name and password that will be
validated by the back end server processes. The User Credentials Validation
process will compare the supplied credentials against user account information in
the database and will return a true or false value. If the return value is true, then
a match for the supplied credentials was found in the database. If the return value
is false then no match was found.
If the credentials cannot be validated, the Login page will display an error
message indicating that the user name and password could not be validated. As a
hacker deterrent, the error message will not indicate which value (user name or
password) was invalid. In addition, the account will become locked if within a
two minute period three login attempts are unsuccessful.
Upon account lockout, the Email contact for system messages will be notified that
the account has been locked. The administrator may then take corrective actions.
Though the password that exists in the database will not be transmitted back to the
client, the password will be encrypted for enhanced security purposes.
1.7.2 Access Control
The site administrator will have the ability to define system roles which will be
granted permissions to specific pages on the web site. A user may only be
assigned to a system role. Multiple role assignments will not be supported. The
creation and configuration of roles will allow the administrator flexibility in
assigning permissions to system roles, thus negating the need for multiple role
assignment.
Users will be assigned a system role and will inherit access permissions from the
assigned system role. The default system roles are Administrator, Client, Staff,
and Contract Manager
Administrator
The initial system configuration will include a default Administrative user name
and password. This default account will be associated with the Administrator. The
Administrator role will have the ability to perform the following actions:







Create User Profiles
Update User Profiles
Delete User Profiles
Site Configuration
SMTP Server Configuration
System Role Administration
Email notification contact (must be a user assigned to the
Administrator role)
The goal of the Administrator role is to administer the technical portions of the
application as well as supporting database records and configuration data. The
Administrator will not have the ability to maintain business level data such as
staffing requests and contracts. The business level data will be maintainable by
the appropriate business level system roles.
Client
The client system role is intended for users which are TPS customers. This role
allows assigned users to perform the following actions:





Create Staffing Requests
Search Staffing Requests
Search Staff Member profiles
Select Staff Members for Staffing Requests
Submit Staffing Requests
This role provides assigned users the ability to add information to their profiles
such as resumes. They can review the job openings to see which suits their needs
the best.
Staff Member
This system role is intended for users which are considered TPS staff which may
be used to fill and work on staffing requests. Users assigned to this role may
perform the following actions:



Update Staff Member Profile
o Update Resume
o Update Picture
o Update Personal Information
o Update User Profile (password)
View Staffing Request Assignment History
View Pending Staffing Request Assignments (own)
Contract Manager
Users assigned to this role are considered to be TPS employees who are
authorized to administer contracts, staffing requests, and staff member
information. Users assigned to this role may perform the following actions:





Validate Staffing Requests
Search Staffing Requests
Search Staff Member profiles
Update Staff Member Profile
o Update Resume
o Update Picture
o Update Personal Information
o Update User Profile (password)
View Staffing Request Assignment History
o By staff member
o By contract
o By customer
Outside of the default and defined system roles exists the non-authenticated users,
or Public Users. Public users are non-authenticated users which browse the site.
Public users will be able to view the home page. The home page will contain a
links to the Login, Contact TPS, and About TPS web pages. The Login page will
allow public users to authenticate to the web site. Users that do not authenticate
will only be able to view the public pages of the web site.
1.7.3 Staffing Request Processing
Clients will have the ability to create and submit staffing requests to the contract
manager. The staffing requests will consist of the following information:
Attribute
STAFFING_REQUEST_ID
STAFFING_REQUEST_DESC
STATUS_ID
FILL_STATUS_ID
CONTRACT_ID
Description
Unique Key used to identify the staffing
request within the database. This value will
be auto-generated.
A description of the staffing request. This
value will be specified by the Client.
A value that specifies the status of the
staffing request. The valid values are found
in the
STAFFING_REQUEST_STATUS_TYPES
table. This value will be auto-assigned by
the system during the creation of the
staffing request.
This value is used to indicate the fill status
of the staffing request. Valid values are
found in the STAFF_FILL_STATUS table.
This value represents the contract for which
the staffing request is being created. The
client will select this value from a list of
contracts (non-expired) associated with their
CLIENT_ID.
The client will also have the ability to select up to three staff members which to
assign to the staffing request. The client will have the ability to search for staff
members based on experience, education, salary (hourly rate), and location. Staff
members with an hourly rate outside of the CONTRACT_HIGH_FEE and
CONTRACT_LOW_FEE value range may not be added to the request.
Selected staff members will be recorded into the STAFFING_REQUEST_STAFF
table using the following attribute mappings:

STAFFING_REQUEST_STAFF.STAFFING_REQUEST_I
D = STAFFING_REQUEST.STAFFING_REQUEST_ID

STAFFING_REQUEST_STAFF.EMPLOYEE_ID =
TPS_STAFF.EMPLOYEE_ID
Once the staffing request has been submitted by the client, the system will send
both the client and the contract manager an Email. The email that the client
receives will contain the following verbiage:
Subject: Staffing Request #[Request ID] Received.
Dear [Contact Name]
We have received your staffing request. A contract manager will validate
your staffing request within 24 hours.
Thank you
Taylor’s Professional Services Inc.
support@tps-inc.net
The contract manager will then login to the system and retrieve the staffing
request specified in the Email. The contract manager will then perform the
manual validation steps and mark the request as valid or invalid. If the request is
deemed invalid then the contract manager will provide an explanation as to why
the request was rejected.
After the contract manager has validated the staffing request, an Email will be
sent to the user that submitted the request. The Email will specify whether the
staffing request was valid or invalid.
1.7.4 Staffing Request Validation
Once the client submits a request, the contract manager must validate the request
before it may continue processing through the system. For the initial rollout of
this product, the validation of the staffing request is based on a manual process
executed by the contract manager.
1.7.5 Contract Maintenance
The contract manager will have the ability to create, modify, and retrieve
contracts. The contract manager will have the ability to specify values for the
following contract attributes:
Attribute
CLIENT_ID
CONTRACT_NUMBER
CONTRACT_BEGIN_DATE
CONTRACT_END_DATE
CONTRACT_HIGH_FEE
CONTRACT_LOW_FEE
Source Table
TPS_CONTRACTS
TPS_CONTRACTS
TPS_CONTRACTS
TPS_CONTRACTS
TPS_CONTRACTS
TPS_CONTRACTS
Contract Creation Rules
The CLIENT_ID must be specified and may be selected from a drop-down list
which displays the available organization names from the TPS_CLIENTS table.
The CONTRACT_NUMBER cannot be empty and must be specified.
The CONTRACT_BEGIN_DATE and CONTRACT_END_DATE attributes
must be specified. The CONTRACT_END_DATE must be a higher value than
CONTRACT_BEGIN_DATE.
The CONTRACT_HIGH_FEE and COTNRACT_LOW_FEE columns represent
the minimum and maximum hourly rates of TPS_STAFF which the contract will
allow. Both of these attributes must be specified. The COTNRACT_HIGH_FEE
must be a value greater than or equal to the CONTRACT_LOW_FEE.
Once a contract has been created, the CLIENT_ID attribute may not be altered by
the contract manager.
Search
The contract manager will have the ability to search contracts by any combination
of the following attributes:






CLIENT_ID (mapped via ORG_NAME)
CONTRACT_NUMBER
CONTRACT_BEGIN_DATE
CONTRACT_END_DATE
CONTRACT_HIGH_FEE
CONTRACT_LOW_FEE
1.7.6 Staff Member Maintenance
Staff members will have the ability to login to the system and modify the nonsystem level attributes (such as system role) of their user profile. Staff members
will have the ability to modify the following attributes of their user profile:
Attribute
EMP_FIRST_NAME
EMP_LAST_NAME
EMP_ADDRESS
EMP_CITY
EMP_STATE
EMP_EMAIL
EMP_PHONE
EMP_MOBILE_PHONE
PASSWORD
STAFF_RESUME
STAFF_PICTURE
Source Table
TPS_EMPLOYEES
TPS_EMPLOYEES
TPS_EMPLOYEES
TPS_EMPLOYEES
TPS_EMPLOYEES
TPS_EMPLOYEES
TPS_EMPLOYEES
TPS_EMPLOYEES
TPS_USERS
TPS_STAFF
TPS_STAFF
1.7.7 User Profile Maintenance
All users will have the ability to maintain their user profile. Users will have the
ability to maintain non-system level attributes (such as system role) of their
profile. The following lists the profile attributes which a contract manager may
modify:
Attribute
EMP_FIRST_NAME
EMP_LAST_NAME
EMP_ADDRESS
EMP_CITY
EMP_STATE
EMP_EMAIL
EMP_PHONE
Source Table
TPS_EMPLOYEES
TPS_EMPLOYEES
TPS_EMPLOYEES
TPS_EMPLOYEES
TPS_EMPLOYEES
TPS_EMPLOYEES
TPS_EMPLOYEES
EMP_MOBILE_PHONE
PASSWORD
TPS_EMPLOYEES
TPS_USERS
The following lists the profile attributes which a client may modify:
Attribute
CLIENT_NAME*
CLIENT_ADDRESS*
CLIENT_CITY*
CLIENT_STATE*
CLIENT_ZIP*
CONTACT_FIRST_NAME
CONTACT_LAST_NAME
CONTACT_EMAIL
CONTACT_PHONE
CONTACT_TYPE
PASSWORD
Source Table
TPS_CLIENTS
TPS_CLIENTS
TPS_CLIENTS
TPS_CLIENTS
TPS_CLIENTS
TPS_CLIENT_CONTACTS
TPS_CLIENT_CONTACTS
TPS_CLIENT_CONTACTS
TPS_CLIENT_CONTACTS
TPS_CLIENT_CONTACTS
TPS_USERS
*Only Client Contacts with a role from the TPS_ROLES table with the
IS_CLIENT_ADMIN flag set to true will have the ability to modify these
attributes.
Clients that are not mapped to an IS_CLIENT_ADMIN type of role will only be
able to maintain their own TPS_CLIENT_CONTACT record information.
1.8. Database Description
Microsoft Access will serve as the database for this project. The database is designed to the third normal form.
1.8.1
Data Dictionary
Table Name
Column Name
Description of Data
Data Type
Len
NOT
NULL
P
K
Y
Y
F
K
DEGREE_TYPE_ID
Unique Identifier within
the system by which to
identify the record
AUTONUMBER
DEGREE_TYPE_NAME
The name of the degree
type (EG: PhD,
Bachelors, etc)
TEXT
EDUCATION_ID
Unique Identifier within
the system by which to
identify the record
AUTONUMBER
Y
EMPLOYEE_ID
The ID of the Employee
(of Staff Member) to
which the education
record belongs
NUMBER
Y
Y
DEGREE_TYPE_ID
The ID of the Degree
Type for this degree
NUMBER
Y
Y
DEGREE_TYPES
30
Y
STAFF_EDUCATION
Y
Table Name
Column Name
Description of Data
Data Type
Len
NOT
NULL
EDUCATION_DEGREE_NAME
A description of the type
of degree (EG:
Computer Information
Systems, Physics, etc)
TEXT
255
Y
EDUCATION_DEGREE_YEAR
The year in which the
degree was earned
INTEGER
EDUCATION_DEGREE_LOCATION
The organization from
which the degree was
obtained (EG: DeVry
University)
TEXT
FILL_STATUS_ID
Unique Identifier within
the system by which to
identify the record
AUTONUMBER
FILL_STATUS_DESC
The description of the fill
status
TEXT
IS_FILLED_FLAG
Flag indicating whether
this status represents a
status of filled
YES/NO
Y
IS_UNFILLED_FLAG
Flag indicating whether
this status represents a
status of unfilled
YES/NO
Y
P
K
Y
255
STAFF_FILL_STATUS
STAFFING_REQUEST
Y
255
Y
Y
F
K
Table Name
Column Name
Description of Data
Data Type
Len
NOT
NULL
P
K
Y
Y
F
K
STAFFING_REQUEST_ID
Unique Identifier within
the system by which to
identify the record
AUTONUMBER
STAFFING_REQUEST_DESC
Description of the
staffing request
TEXT
255
Y
WORK_LOCATION
Location in which the
work for the request will
take place.
TEXT
255
Y
FROM_DATE
The date on which the
work will begin
DATE
Y
TO_DATE
The date on which the
work will end
DATE
Y
TOTAL_TIME
The total amount of work
required between the
FROM and TO date.
NUMBER
Y
TIME_UNITS_ID
The unit of measure for
the TOTAL_TIME
NUMBER
Y
Y
STATUS_ID
The Status ID of the
staffing request
NUMBER
Y
Y
FILL_STATUS_ID
The Fill Status ID of the
staffing request
NUMBER
Y
Y
CONTRACT_ID
The Contract ID against
which the staffing
NUMBER
Y
Y
Table Name
Column Name
Description of Data
Data Type
Len
255
NOT
NULL
P
K
Y
F
K
request is being filed.
COMMENTS
Comments or notes
concerning the staffing
request.
TEXT
STAFFING_REQUEST_STAFF_ID
Unique Identifier within
the system by which to
identify the record
YES/NO
Y
STAFFING_REQUEST_ID
Staffing Request for
which the staff member
is being requested
YES/NO
Y
Y
EMPLOYEE_ID
The Employee ID of the
staff member selected
for the staffing request
YES/NO
Y
Y
FILL_STATUS_ID
The Fill Status ID for the
staff member record
YES/NO
Y
Y
STATUS_ID
Unique Identifier within
the system by which to
identify the record
AUTONUMBER
Y
STATUS_NAME
The short name for the
status
TEXT
STAFFING_REQUEST_STAFF
STAFFING_REQUEST_STATUS_T
YPES
20
Y
Y
Table Name
Column Name
Description of Data
Data Type
Len
NOT
NULL
IS_VALID_FLAG
Flag indicating whether
this status represents a
valid request
YES/NO
Y
IS_INVALID_FLAG
Flag indicating whether
this status represents an
invalid request
YES/NO
Y
IS_CLOSED_FLAG
Flag indicating whether
this status represents a
closed request
YES/NO
Y
IS_OPEN_FLAG
Flag indicating whether
this status represents an
open request
YES/NO
Y
IS_PENDING_FLAG
Flag indicating whether
this status represents a
pending request
YES/NO
Y
TIME_UNIT_ID
Unique Identifier within
the system by which to
identify the record
AUTONUMBER
Y
TIME_UNIT_NAME
The name given to the
unit of time. For
example: Hours, Days,
Months, Years.
TEXT
P
K
TIME_UNITS
TPS_CLIENT_CONTACTS
15
Y
Y
F
K
Table Name
Column Name
Description of Data
Data Type
CONTACT_ID
Unique Identifier within
the system by which to
identify the record
CLIENT_ID
Len
NOT
NULL
P
K
AUTONUMBER
Y
Y
The Client ID to which
the contact is associated
NUMBER
Y
CONTACT_FIRST_NAME
The first name of the
contact
TEXT
40
Y
CONTACT_LAST_NAME
The last name of the
contact
TEXT
40
Y
CONTACT_EMAIL
The Email address for
the contact
TEXT
120
Y
CONTACT_PHONE
The phone number for
the contact
TEXT
20
CONTACT_TYPE
A note describing the
purpose of the contact
(EG: Accounts Payable
Manager)
TEXT
255
USER_ID
The User ID of the
contact
NUMBER
Y
CLIENT_ID
Unique Identifier within
the system by which to
identify the record
AUTONUMBER
Y
F
K
Y
Y
TPS_CLIENTS
Y
Table Name
Column Name
Description of Data
Data Type
Len
NOT
NULL
CLIENT_NAME
The name of the client
TEXT
80
Y
CLIENT_ADDRESS
The address of the client
TEXT
255
CLIENT_CITY
The city in which the
client is based
TEXT
40
CLIENT_STATE
The state in which the
client is based
TEXT
2
CLIENT_ZIP
The zip code in which
the client is based
TEXT
9
CONTRACT_ID
Unique Identifier within
the system by which to
identify the record
AUTONUMBER
Y
CLIENT_ID
The client to which the
contract belongs
NUMBER
Y
CONTRACT_NUMBER
A value assigned by the
contract manager that
identifies the contract as
known by TPS and the
customer
TEXT
COTNRACT_BEGIN_DATE
The first date on which
the contract is valid
DATE
Y
CONTRACT_END_DATE
The last date on which
DATE
Y
P
K
F
K
TPS_CONTRACTS
80
Y
Y
Y
Table Name
Column Name
Description of Data
Data Type
Len
NOT
NULL
P
K
F
K
the contract is valid
CONTRACT_HIGH_FEE
The highest hourly fee
allowed by the contract
CURRENCY
Y
CONTRACT_LOW_FEE
The lowest hourly fee
allowed by the contract
CURRENCY
Y
DEPT_NO
Unique Identifier within
the system by which to
identify the record
AUTONUMBER
Y
Y
DEPT_NAME
The name of the
department
TEXT
EMPLOYEE_ID
Unique Identifier within
the system by which to
identify the record
AUTONUMBER
Y
Y
USER_ID
The user account to
which the employee
record is linked
NUMBER
Y
EMP_FIRST_NAME
The first name of the
employee
TEXT
40
Y
EMP_LAST_NAME
The last name of the
employee
TEXT
40
Y
TPS_DEPARTMENTS
40
TPS_EMPLOYEES
Y
Table Name
Column Name
Description of Data
Data Type
Len
NOT
NULL
EMP_ADDRESS
The address of the
employee
TEXT
255
EMP_CITY
The city in which the
employee lives
TEXT
40
EMP_STATE
The state in which the
employee lives
TEXT
2
EMP_EMAIL
The employee’s Email
address
TEXT
120
Y
EMP_PHONE
The employee’s phone
number
TEXT
20
Y
EMP_MOBILE_PHONE
The employee’s mobile
phone number
TEXT
20
DEPT_NO
The Department to
which the employee
belongs
NUMBER
Y
IS_STAFF
Flag indicating whether
this employee is a
billable staff member
YES/NO
Y
FEATURE_ID
Unique Identifier within
the system by which to
identify the record
AUTONUMBER
Y
P
K
F
K
Y
TPS_FEATURES
Y
Table Name
Column Name
Description of Data
Data Type
Len
NOT
NULL
P
K
F
K
FEATURE_PAGE_NAME
The page name of the
feature
TEXT
255
Y
FEATURE_DESCRIPTION
A simple description of
the feature
TEXT
50
Y
FEATURE_GROUP
The group to which the
feature belongs
TEXT
30
FEATURE_ROLE_ID
Unique Identifier within
the system by which to
identify the record
AUTONUMBER
Y
FEATURE_ID
The Feature ID to be
associated with a given
role
NUMBER
Y
Y
ROLE_ID
The role which will be
granted access to the
specified feature
NUMBER
Y
Y
DIRECT_ACCESS
Specified whether or not
the role has direct
access to this feature
YES/NO
Y
ROLE_ID
Unique Identifier within
the system by which to
identify the record
AUTONUMBER
Y
TPS_ROLE_ACCESS_CONTROL
Y
TPS_ROLES
Y
Table Name
Column Name
Description of Data
Data Type
Len
NOT
NULL
ROLE_NAME
The name of the role
TEXT
40
Y
IS_SYSTEM_ADMIN
Flag indicating whether
the role is a System
Administrator role
YES/NO
Y
IS_CLIENT_ADMIN
Flag indicating whether
the role is a Client
Administrator role
YES/NO
Y
IS_CLIENT_ROLE
Flag indicating whether
the role is a client
assignable role (only by
client users with the
IS_CLIENT_ADMIN flag)
YES/NO
Y
IS_CONTRACT_MGR
Flag indicating whether
the role is a Contract
Manager role
YES/NO
Y
IS_STAFF
Flag indicating whether
the role is a staff role
YES/NO
Y
EMPLOYEE_ID
Unique Identifier within
the system by which to
identify the record
AUTONUMBER
Y
STAFF_RESUME
The resume of the staff
member
OLE Object
Y
P
K
TPS_STAFF
Y
F
K
Table Name
Column Name
Description of Data
Data Type
Len
NOT
NULL
STAFF_PICTURE
A picture of the staff
member
OLE Object
STAFF_HOURLY_RATE
The hourly rate of the
staff member
CURRENCY
Y
YEARS_EXPERIENCE
The staff member’s
years of experience
NUMBER
Y
IS_AVAILABLE
A flag indicating whether
or not the staff member
is available
YES/NO
Y
RESUME_FILE_NAME
A logical name for the
resume file. When the
staff member’s resume
is downloaded this is the
name by which it will be
downloaded.
TEXT
USER_ID
Unique Identifier within
the system by which to
identify the record
AUTONUMBER
USERNAME
The name of the user
TEXT
30
Y
PASSWORD
Encrypted user
password
TEXT
20
Y
ROLE_ID
The role assigned to the
NUMBE
P
K
F
K
255
TPS_USER
Y
Y
Y
Y
Table Name
Column Name
Description of Data
Data Type
Len
NOT
NULL
P
K
Y
user
USStates
StateID
The two letter
abbreviation of the state.
Text
2
Y
StateName
The name of the state
Text
50
Y
F
K
2.
Design Description
TPS Home Page
Contact TPS
About TPS
Login
Authenticated
User Home Page
Staffing Requests
Create Staffing
Request
Update Staffing
Request
Search Staffing
Requests
Contracts
Create
Contract
Update
Contract
Search
Contracts
Access Control
Roles
Features
ACLs
Users and Employees
Users
2.1. Data Description
Staff
Employees
2.1.1 Relational Schema
TPS_ROLES
PK,I1
ROLE_NAME
IS_SYSTEM_ADMIN
IS_CLIENT_ADMIN
IS_CLIENT_ROLE
IS_CONTRACT_MGR
IS_STAFF
TPS_ROLE_ACCESS_CONTROL
PK,I2
ROLE_ID
FEATURE_ROLE_ID
FK1,I4,I1 FEATURE_ID
FK2,I5,I3 ROLE_ID
DIRECT_ACCESS
TPS_USERS
PK
USER_ID
USERNAME
PASSWD
FK1,I2,I1 ROLE_ID
TPS_DEPTARTMENTS
PK
DEPT_NO
DEPT_NAME
TPS_EMPLOYEES
PK,I1
TPS_FEATURES
PK,I1
FEATURE_ID
FEATURE_PAGE_NAME
FEATURE_DESCRIPTION
FEATURE_GROUP
PK,I2
CONTACT_ID
FK1,I1
CLIENT_ID
CONTACT_FIRST_NAME
CONTACT_LAST_NAME
CONTACT_EMAIL
CONTACT_PHONE
CONTACT_TYPE
USER_ID
FK2,I3
EMPLOYEE_ID
FK2,I4,I3 USER_ID
EMP_FIRST_NAME
EMP_LAST_NAME
EMP_ADDRESS
EMP_CITY
EMP_STATE
EMP_ZIP
EMP_EMAIL
EMP_PHONE
EMP_MOBILE_PHONE
FK1,I2
DEPT_NO
IS_STAFF
TPS_CLIENT_CONTACTS
TPS_STAFF
PK,FK1,I1
STAFF_RESUME
STAFF_PICTURE
STAFF_HOURLY_RATE
YEARS_EXPERIENCE
IS_AVAILABLE
RESUME_FILE_NAME
USStates
PK,I1
StateID
FK1
StateName
EMPLOYEE_ID
TPS_CONTRACTS
STAFF_EDUCATION
PK,I2
CONTRACT_ID
FK1,I1
CLIENT_ID
CONTRACT_NUMBER
CONTRACT_BEGIN_DATE
CONTRACT_END_DATE
CONTRACT_HIGH_FEE
CONTRACT_LOW_FEE
TPS_CLIENTS
PK,I1
FK1
PK,I1
EDUCATION_ID
FK2,I2
FK1
EMPLOYEE_ID
DEGREE_TYPE_ID
EDUCATION_DEGREE_NAME
EDUCATION_DEGREE_YEAR
EDUCATION_DEGREE_LOCATION
CLIENT_ID
CLIENT_NAME
CLIENT_ADDRESS
CLIENT_CITY
CLIENT_STATE
CLIENT_ZIP
PK,I2
FK3
FK2,I4
FK1,I3
FK4,I1
STAFFING_REQUEST_ID
STATUS_ID
STATUS_NAME
IS_VALID_FLAG
IS_INVALID_FLAG
IS_CLOSED_FLAG
IS_OPEN_FLAG
IS_PENDING_FLAG
STAFFING_REQUEST_DESC
WORK_LOCATION
FROM_DATE
TO_DATE
TOTAL_TIME
TIME_UNITS_ID
STATUS_ID
FILL_STATUS_ID
CONTRACT_ID
COMMENTS
TIME_UNITS
PK,I1
TIME_UNIT_ID
TIME_UNIT_NAME
STAFF_FILL_STATUS
PK,I1
STAFFING_REQUEST_STAFF
PK,I3
STAFFING_REQUEST_STAFF_ID
FK1,I2
FK2,I1
STAFFING_REQUEST_ID
EMPLOYEE_ID
FILL_STATUS_ID
Figure 1 Relational Schema
DEGREE_TYPE_ID
DEGREE_TYPE_NAME
STAFFING_REQUEST_STATUS_TYPES
PK,I1
STAFFING_REQUEST
DEGREE_TYPES
PK,I1
FILL_STATUS_ID
FILL_STATUS_DESC
IS_FILLED_FLAG
IS_UNFILLED_FLAG
2.2. Data Flow
TPS_STAFF
TPS_CONTRACTS
Search for TPS staff based on
Experience, Location, Hourly Rate,
And Education
Staff Education
Education
STAFF_EDUCATION
Submit
Staffing
Request
Retrieve Contracts for Client
Create Staffing
Request
Maintain
Profile
Staff Member Profile
Types of degree for
Staff Education Records
Client
DEGREE_TYPES
Search own
staffing requests
Requested
Staff
STAFFING_REQUEST_
STAFF
Role access controls
Record Staffing Request
Search
Staffing
Requests
Maintain Own Profile
TPS_ROLES
STAFFING_REQUEST_
STATUS_TYPES
STAFFING_REQUEST
Logged in User role
TPS_RULE_ACCESS_CON
TROLS
Requested Staff
Open Staffing Requests
Contract
Manager
Access Control
TPS_FEATURES
Status Types
Maintain
Organization
Contacts
Records Time
Role access controls
Fill Status
Staff Member
If request is invalid
TIME_UNITS
User Credentials
and Role
Validate and
Approve
Staffing
Requests
STAFF_FILL_STATUS
TPS_UNABLE_TO_FILL_ME
MO
Create and
modify contracts
TPS_CLIENT_CONTACTS
Maintain
Contacts
Contract
Maintenance
TPS_CLIENTS
Maintain
Employees
Users
Employees
Departments
TPS_EMPLOYEES
Maintain
Maintain
TPS_USER
Figure 2 Data Flow Diagram
Maintain
User Profile
Maintenance
System
Administrator
Maintain
Staff Members
TPS_DEPARTMENTS
2.3. Program Architecture
As illustrated in Error! Reference source not found.3, external users shall
access the TPS web application via the internet. The web server shall exist on the DMZ
portion of the internal network, protected by the firewall. The Firewall shall prevent
unwanted access to the web server. Internal TPS users will communicate with the web
application in the DMZ through the firewall.
Internet User
DMZ
Internal Network
DMZ Web Server
ASP.NET
AJAX.NET
TPS Web Application
Architecture
Components
Data Access
Components
.NET Framework
User Interface
Components
TPS User
AJAX Extensions
Internet Information
Server
Access Control
Firewall
Access Database
Operating System
Figure 3 Program Architecture
2.4. Component Interfaces
2.4.1 Create User
Input
String: USERNAME
String: PASSWORD
Integer: ROLE ID
Output
Integer: USER ID
String: Error
2.4.2 Update User
Input
Integer: USER ID
String: USERNAME
String: PASSWORD
Integer: ROLE ID
Output
Boolean: Success
String: Error
2.4.3 Create Employee
Input (all optional except identifier)
Integer: USER ID
String: FIRST NAME
String: LAST NAME
String: ADDRESS
String: CITY
String: STATE
String: EMAIL ADDRESS
String: PHONE
String: MOBILE PHONE
String: DEPARTMENT NAME
Bool: IS STAFF MEMBER
Output
Integer: EMPLOYEE ID
String: Error
2.4.4 Update Employee
Input (all optional except identifier)
Integer: EMPLOYEE ID (required)
Integer: USER ID
String: FIRST NAME
String: LAST NAME
String: ADDRESS
String: CITY
String: STATE
String: EMAIL ADDRESS
String: PHONE
String: MOBILE PHONE
String: DEPARTMENT NAME
Output
Boolean: Success
String: Error
2.4.5 Create Staff Member Profile
Input
Integer: EMPLOYEE ID (required)
byte[]: RESUME
byte[]: PICTURE
Currency: HOURLY RATE
Integer: YEARS OF EXPERIENCE
String: LOCATION
Output
Boolean: Success
String: Error
2.4.6 Update Staff Member
Input (all optional except identifier)
Integer: EMPLOYEE ID (required)
Integer: USER ID
Output
Boolean: Success
String: Error
String: FIRST NAME
String: LAST NAME
String: ADDRESS
String: CITY
String: STATE
String: EMAIL ADDRESS
String: PHONE
String: MOBILE PHONE
String: DEPARTMENT NAME
byte[]: RESUME
byte[]: PICTURE
Currency: HOURLY RATE
Integer: YEARS OF EXPERIENCE
String: LOCATION
2.4.7 Add Staff Member Education
Input
Integer: EMPLOYEE ID (required)
Integer: DEGREE TYPE ID
Integer: DEGREE NAME
Integer: DEGREE YEAR
String: DEGREE LOCATION
Output
Integer: EDUCATION ID
String: Error
2.4.8 Update Staff Member Education
Input (all optional except identifier)
Integer: EDUCATION ID (required)
Integer: DEGREE TYPE ID
Integer: DEGREE NAME
Integer: DEGREE YEAR
String: DEGREE LOCATION
Output
Boolean: Success or Failure
String: Error
2.4.9 Search Employees
Input (at least one value is required)
String: USERNAME
Integer: ROLE ID
Integer: EMPLOYEE ID
String: FIRST NAME
String: LAST NAME
Output
Integer: EMPLOYEE ID
Integer: USER ID
String: FIRST NAME
String: LAST NAME
String: ADDRESS
String: CITY
String: STATE
String: EMAIL ADDRESS
String: PHONE
String: MOBILE PHONE
String: DEPARTMENT NAME
Date: DATE OF BIRTH
String: SOCIAL SECURITY NUMBER
2.4.10 Search Staff Members
Input (all optional)
Integer: EMPLOYEE ID
String: FIRST NAME
String: LAST NAME
Currency: HOURLY_RATE
Integer: YEARS OF EXPERIENCE
String: DEGREE NAME
Output
Integer: EMPLOYEE ID
Integer: USER ID
String: FIRSTNAME
String: LAST_NAME
String: EMAIL ADDRESS
Memo: RESUME
Memo: PICTURE
Currency: HOURLY RATE
Integer: YEARS OF EXPERIENCE
STAFF EDUCATION RECORDS
 DEGREE TYPE
 DEGREE NAME
 DEGREE YEAR
 DEGREE LOCATION
2.4.11 Create Feature
Input (all optional)
String: PAGE NAME
String: DESCRIPTION
String: FEATURE_GROUP
Output
Integer: FEATURE ID
String: Error
2.4.12 Update Feature
Input (all optional)
Integer: FEATURE ID
String: PAGE NAME
String: DESCRIPTION
String: FEATURE_GROUP
Output
Boolean: Success or Failure
String: Error
2.4.13 Search Features
Input (all optional)
String: PAGE NAME
String: DESCRIPTION
Output
Integer: FEATURE ID
String: PAGE NAME
String: DESCRIPTION
2.4.14 Create Role
Input (all optional)
String: ROLE NAME
Bool: IS SYSTEM ADMIN ROLE
Bool: IS CLIENT ADMIN ROLE
Bool: IS CLIENT ASSIGNABLE ROLE
Bool: IS STAFF
Output
Integer: ROLE_ID
String: Error
2.4.15 Update Role
Input
Integer: ROLE ID
String: ROLE NAME
Bool: IS SYSTEM ADMIN ROLE
Bool: IS CLIENT ADMIN ROLE
Bool: IS CLIENT ASSIGNABLE ROLE
Bool: IS CONTRACT MANAGER
Output
Boolean: Success or Failure
String: Error
2.4.16 Search Roles
Input (all optional)
String: ROLE NAME
Bool: IS SYSTEM ADMIN ROLE
Bool: IS CLIENT ADMIN ROLE
Bool: IS CLIENT ASSIGNABLE ROLE
Output
Integer: ROLE_ID
String: ROLE NAME
Byte: IS SYSTEM ADMIN ROLE
Byte: IS CLIENT ADMIN ROLE
Byte: IS CLIENT ASSIGNABLE ROLE
2.4.17 Create Access Control List
Input
Integer: FEATURE ID
Integer: ROLE ID
Bool: DIRECT ACCESS
Output
Integer: FEATURE ROLE ID
String: Error
2.4.18 Update Access Control List
Input
Integer: FEATURE ROLE ID
Integer: ROLE ID
Integer: FEATURE ID
Bool: DIRECT ACCESS
Output
Boolean: Success or Failure
String: Error
2.4.19 Delete Access Control List
Input
Integer: FEATURE ROLE ID
Output
Boolean: Success or Failure
String: Error
2.4.20 Search Access Control List
Input (all optional)
Integer: FEATURE ID
Integer: ROLE ID
Output
Integer: FEATURE ROLE ID
Integer: FEATURE ID
Integer: ROLE ID
String: FEATURE NAME
String: ROLE NAME
2.4.21 Create Client
Input (all optional)
String: CLIENT NAME
String: ADDRESS
String: CITY
String: STATE
String: ZIP
Output
Integer: CLIENT ID
String: Error
2.4.22 Update Client
Input (all optional except identifier)
Integer: CLIENT ID (required)
String: CLIENT NAME
String: ADDRESS
String: CITY
String: STATE
String: ZIP CODE
Output
Boolean: Success or Failure
String: Error
2.4.23 Search Client
Input (all optional)
String: CLIENT NAME
String: ADDRESS
String: CITY
String: STATE
String: ZIP CODE
Output
Integer: CLIENT ID
String: CLIENT NAME
String: ADDRESS
String: CITY
String: STATE
String: ZIP CODE
2.4.24 Create Client Contact
Input
Integer: CLIENT ID
String: FIRST NAME
Output
Boolean: Success or Failure
String: Error
String: LAST NAME
String: EMAIL ADDRESS
String: PHONE NUMBER
String: CONTACT TYPE
String: USERNAME
String: PASSWORD
2.4.25 Update Client Contact
Input (all optional except identifier)
Integer: CONTACT ID (required)
String: FIRST NAME
String: LAST NAME
String: EMAIL ADDRESS
String: PHONE NUMBER
String: CONTACT TYPE
String: USERNAME
String: PASSWORD
Output
Integer: CONTACT ID
String: Error
2.4.26 Delete Client Contact
Input
Integer: CONTACT ID
Output
Integer: CONTACT ID
String: Error
2.4.27 Search Client Contacts
Input
Integer: CLIENT ID
Output
Integer: CONTACT ID
String: FIRST NAME
String: LAST NAME
String: EMAIL ADDRESS
String: PHONE NUMBER
String: CONTACT TYPE
String: USERNAME
2.4.28 Retrieve User Menu
Input
Integer: USER ID
Output
MENU: Features to which the specified
user has access.
2.4.29 User Login
Input
Output
String: USER NAME
String: PASSWORD
Boolean: Success or Failure
String: Error
2.4.30 Validate Page Access
Input
ACTION: Page Access Request
Output
RESPONSE: Feature Page
String: Error
2.4.31 Create Contract
Input (all required)
Integer: CLIENT_ID
String: CONTRACT_NUMBER
Currency: CONTRACT_LOW_FEE
Currency: CONTRACT_HIGH_FEE
String: CONTRACT_BEGIN_DATE
String: CONTRACT_END_DATE
Output
Integer: CONTRACT_ID
String: Error
2.4.32 Update Contract
Input
String: CONTRACT_NUMBER
Currency: CONTRACT_LOW_FEE
Currency: CONTRACT_HIGH_FEE
String: CONTRACT_BEGIN_DATE
String: CONTRACT_END_DATE
Output
Integer: CONTRACT_ID
String: Error
2.4.33 Retrieve Contract
Input
Integer: CLIENT_ID
String: CONTRACT_NUMBER
String: CONTRACT_BEGIN_DATE
String: CONTRACT_END_DATE
Currency: CONTRACT_HIGH_FEE
Currency: CONTRACT_LOW_FEE
Output
String: Error
String: CONTRACT_NUMBER
Double: CONTRACT_LOW_FEE
Double: CONTRACT_HIGH_FEE
String: CONTRACT_BEGIN_DATE
String: CONTRACT_END_DATE
Integer: CONTRACT_ID
Integer: CLIENT_ID
String: CONTRACT_NUMBER
3.
Detailed Design
3.1. User Access Control
3.1.1 Overview
Users will be granted or denied access to features based upon the role to which
they have been assigned. The TPS_ROLES table will contain the list of roles
recognized by the system as well as the classification of each role: System
Administrator Role, Client Administrator Role, and Client Assignable Role.
1. System Administrator Role
This flag indicates that the specified role is a System Administrator Role.
2. Client Administrator Role
This flag indicates that the role is a Client Administrator Role. Client
Administrators may add, modify, or delete client contacts
(TPS_CLIENT_CONTACTS) for their organization.
3. Client Assignable Role
This flag indicates whether the role is assignable by a Client
Administrator to another user within the Client’s user base.
Features are defined in the TPS_FEATURES table. The feature records specify
the page name and a short description of the feature implemented by the page.
Roles are granted access to features through associations in the
TPS_ROLE_ACCESS_CONTROL table. This table contains the ROLE_ID from
the TPS_ROLE table and the FEATURE_ID from the TPS_FEATURES table to
which the specified role will be granted access. Authenticated users will only
have access to those pages and features for which role and feature associations
have been defined.
Only System Administrator type users may maintain TPS_ROLES,
TPS_FEATURES, and TPS_ROLE_ACCESS_CONTROL data.
Create ACL
Update ACL
System Administrator
Delete ACL
Search ACL
Public Site User
«uses»
Request Page
Authenticated Site User
Figure 4 User Access Control User Cases
Validate Access
3.1.2 Processing Description
TPS_FEATURES
Features
Create ACL
Roles
Features
System
Administrator
Features
Update ACL
TPS_ROLES
Roles
Feature/Role Pairs
Search ACL
Features
Roles
Feature/Role Pairs
Feature/Role Pair
Updated ACL
TPS_ROLE_ACCESS_CONTROL
Roles
Delete ACL
Figure 5 User Access Control Processing
Feature/Role Pairs
3.1.3 Interface Description
Figure 6 User Access Control Maintenance Page
3.1.4 Pseudocode
Validate Access (in response to a user request to access a web page)
FUNCTION OnPageLoad()
BEGIN
LET USER_ID equal SESSION[“USER_ID”]
IF USER_ID is equal to NULL OR
ValidateUser(USER_ID) is equal to FALSE THEN
BEGIN
Show Page “Unauthorized”
ELSE
LET AUTH equal INVOKE ValidatePageAccess(USER_ID)
IF AUTH is equal to FALSE then
BEGIN
Show Page “Unauthorized”
ELSE
Show Page as Requested
END
END
END
FUNCTION ValidatePageAccess(INPUT INTEGER pUserID)
BEGIN
LET USER_ROLE equal SELECT ROLE_ID from TPS_USERS where
USER_ID is equal to pUserID;
IF USER_ROLE is equal to NULL THEN
BEGIN
RETURN FALSE
ELSE
LET PAGE_NAME equal URL from REQUEST
LET PAGE_ID equal SELECT FEATURE_ID from TPS_FEATURES
Where FEATURE_PAGE_NAME is equal to PAGE_NAME
LET AUTHORIZED = SELECT count(PAGE_NAME) from
TPS_ROLE_ACCESS_CONTROL where FEATURE_ID is equal
to PAGE_ID and ROLE_ID is equal to USER_ROLE
IF AUTHORIZED >0 THEN
BEGIN
RETURN TRUE
ELSE
RETURN FALSE
END
END
END
3.1.5 Module Uses
Uses


Roles
Features
Used By


3.2.
ValidatePageAccess
Site Master Page (all page access)
User Maintenance
User Maintenance is comprised of the Create Users, Update Users, Search Users,
and Assign Roles use cases.
Create Users
«uses»
«uses»
Update Users
Delete User
Search Users
System Administrator
Figure 7 User Maintenance Use Cases
Assign Roles
3.2.1 Processing Description
Create User
Roles
TPS_ROLES
System
Administrator
Update User
Roles
Updated User
User account
Assign Role
Roles
User Account
Delete User
User Account
New User
Updated User
Delete User
TPS_USERS
List of Matching Users
Roles
Search Users
Figure 8 User Maintenance Processing
3.2.2
Interface Description
Figure 9 User Maintenance Page
3.2.3
Pseudocode
No out of the ordinary decisions or complex calculations are involved in this
process.
3.2.4
Module Uses
Uses


Users
Roles
Used By


UserLogin
ValidatePageAccess
3.3. Client Contact Maintenance
Client Administrators will have the ability to create, update, delete, and search
(maintenance page) contacts and users associated with their organization.
«uses»
Create Contact
«uses»
Assign Roles
Update Contact
Search Contacts
Client Administrator
Delete Contact
Figure 10 Client Contacts Use Cases
3.3.1 Processing Description
Client Administrators will have the ability to maintain contacts for the
organization.
TPS_USERS
Client
Administrator
New Contact
TPS_CLIENT_CONTACTS
New User
Updated Contact
TPS_ROLES
Delete associated user account
Associated
Updated User
Updated
User Account
User
Associated Client Contact
Create
Contact
List of Roles
Associated Client User Accounts
Associated Client Contact
Roles matching user records
List of Client Roles
Associated Client Contact
Update
Contacts
TPS_CLIENT
(Own Contact Record)
Delete Contacts
Delete
Contacts
List of Client Contacts
Search
Contacts
Client
(Non-Client
Admin)
Figure 11 Client Contact Processing
3.3.2 Interface Description
Figure 12 Client Contact Maintenance Page
3.3.3 Pseudocode
No out of the ordinary decisions or complex calculations are involved in this
process.
3.3.4 Module Uses
Uses


Users
Roles
Used By


UserLogin
ValidateAccess
3.4. Feature Maintenance
System Administrators will have the ability to maintain the features of the web
site. Feature Maintenance is comprised of the Create Feature, Update Feature,
Delete Feature, and Search Features use cases.
Create Features
Update Feature
Search Features
System Administrator
Delete Feature
Figure 13 Feature Maintenance Use Cases
3.4.1 Processing Description
Create
Feature
System
Administrator
New Feature
TPS_FEATURES
List of Features
Updated Feature
Update
Feature
Search
Feature
Delete Feature
List of Features
Delete
Feature
Figure 14 Feature Maintenance Processing
3.4.2 Interface Description
Figure 15 Feature Maintenance Page
3.4.3 Pseudocode
No out of the ordinary decisions or complex calculations are involved in this
process.
3.4.4 Module Uses
Uses

Features
Used By


ValidatePageAccess
ACL Maintenance
3.4.5 Role Maintenance
System Administrators will have the ability to create, update, delete, and search
(role maintenance page) roles within the system. The System Administrator will
be able to designate the type for each role (SYSTEM ADMIN, CLIENT ADMIN)
and the authority required to access the role. If a role has not been specified as
CLIENT ASSIGNABLE, only System Administrator will have the authority to
view or assign the role to other users.
Create Role
Update Role
Delete Role
System Administrator
Search Roles
Figure 16 Role Maintenance Use Cases
3.4.6 Processing Description
Create Role
New Role
TPS_ROLES
Updated Role
System
Administrator
Update Role
Roles
Delete Role
Roles
Search Roles
Roles
Delete Role
Figure 17 Role Maintenance Processing
3.4.7 Interface Description
Figure 18 Role Maintenance Page
3.4.8 Pseudocode
List Client Roles
FUNCTION ListClientRoles(INPUT INTEGER pUserID)
BEGIN
IF INVOKE ValidateUser(pUserID) is equal to FALSE THEN
BEGIN
RETURN ERROR “Not Authorized”
ELSE
FETCH SELECT TPS_USERS.ROLE_ID,
TPS_ROLES.IS_SYSTEM_ADMIN, TPS_ROLES.IS_CLIENT_ADMIN from
TPS_USERS and TPS_ROLES where TPS_USERS.ROLE_ID is equal to
TPS_ROLES.ROLE_ID and TPS_USERS.USER_ID is equal to pUserID
into USER_ROLE_TABLE_OBJECT
IF INVOKE ValidateRole(USER_ROLE_TABLE_OBJECT.ROLE_ID) is
equal
to FALSE THEN
BEGIN
RETURN ERROR “Not Authorized”
ELSE
IF USER_ROLE_TABLE_OBJECT.IS_CLIENT_ADMIN THEN
BEGIN
RETURN ROLE_ID and ROLE_NAME from (SELECT ROLE_ID and
ROLE_NAME from TPS_ROLES where IS_CLIENT_ROLE is
equal
to TRUE)
ELSE
IF USER_ROLE_TABLE_OBJECT.IS_SYSTEM_ADMIN THEN
BEGIN
RETURN ROLE_ID and ROLE_NAME from (SELECT ROLE_ID and
ROLE_NAME from TPS_ROLES
ELSE
RETURN ERROR “Not Authorized”
END
END
END
END
END
Assign Role
FUNCTION AssignRole(INPUT INTEGER pUserID, INPUT INTEGER pRoleID)
BEGIN
IF ValidateUser(USER_ID) is equal to TRUE
BEGIN
IF pRoleID EXISTS IN TPS_ROLES THEN
BEGIN
UPDATE TPS_USERS set ROLE_ID equal to pRoleID where USER_ID
is equal to pUserID
RETURN SUCCESS
ELSE
RETURN ERROR “Role ID is not valid”
END
ELSE
RETURN ERROR “User ID is not valid”
END
END
FUNCTION ValidateUser(INPUT INTEGER pUserID)
BEGIN
IF pUserID EXISTS IN TPS_USERS THEN
BEGIN
RETURN TRUE
ELSE
RETURN FALSE
END
END
FUNCTION ValidateRole(INPUT INTEGER pRoleID)
BEGIN
IF pRoleID EXISTS IN TPS_ROLES THEN
BEGIN
RETURN TRUE
ELSE
RETURN FALSE
END
END
3.4.9 Module Uses
Uses


Users
Roles
Used By


ValidatePageAccess
UserAccessControl
3.4.10 Staff Member Profiles
Staff Members will have the ability to update their staff member profiles
(TPS_EMPLOYEES and TPS_STAFF tables). Contract Managers will have the
ability to Update Staff Members as well as search through the profiles of all Staff
Members (users within the TPS_STAFF table). Contract Managers and Client
that search Staff Member profiles will not have the ability to view sensitive staff
member data such as Social Security Number.
Update Staff
Contract Manager
Staff Member
Search Staff
Members
Client
Figure 19 Staff Member Use Cases
3.4.11 Processing Description
Updated Staff
TPS_STAFF
Staff Member
TPS_ROLES
STAFF_EDUCATION
Updated Education
Associated Role
Education
Update Staff
Member
Staff Member
Departments
Updated
Associated
User Account
User Account
Contract
Manager
Associated Employee Record
Staff Education
Degree Types
TPS_USERS
Updated Employee Record
Degree Types
Search Staff
Members
Employee Record
Departments
DEGREE_TYPES
TPS_EMPLOYEE
Client
Figure 20 Staff Member Processing
Staff Members
TPS_DEPARTMENTS
3.4.12 Interface Description
Figure 21 Search Staff Members Page
Figure 22 Employee Maintenance Page
Figure 23 Staff Member Profile Maintenance
3.4.13 Pseudocode
Search Staff Members
FUNCTION SearchStaff(INPUT STRING pCity, INPUT STRING pState,
INPUT CURRENCY pHourlyRate,
INPUT STRING pEducation,
INPUT STRINF pExperience)
BEGIN
LET whereClause equal BLANKS
LET JOINER equal BLANKS
IF pCity is not equal to NULL then
BEGIN
LET whereClause equal “EMP_CITY = ‘“+pCity+”’”
LET JOINER equal “ AND “
END
IF pState is not equal to NULL then
BEGIN
LET whereClause equal whereClase+JOINER+ “ EMP_STATE =
‘“+pState+”’”
LET JOINER equal “ AND “
END
IF pHourlyRate is not equal to NULL then
BEGIN
LET whereClause equal whereClase+JOINER+ “ STAFF_HOURLY_RATE =
“+pHourylRate
LET JOINER equal “ AND “
END
IF pEducation is not equal to NULL then
BEGIN
LET whereClause equal whereClase+JOINER+ “
EDUCATION_DEGREE_NAME
= ‘”+pEducation+”’”
LET JOINER equal “ AND “
END
IF pExperience is not equal to NULL then
BEGIN
LET whereClause equal whereClase+JOINER+ “ STAFF_RESUME like
%”+pEducation+”%”
END
LET STAFF_MEMBER_LIST equal SELECT STAFF MEMBERS from
TPS_STAFF,
TPS_EMPLOYEES, STAFF_EDUCATION
IF whereClause is not equal to BLANKS THEN
BEGIN
LET STAFF_MEMBER_LIST equal STAFF_MEMBER_LIST with
“ where “+whereClause
END
TRY
RETURN EXECUTE QUERY STAFF_MEMBER_LIST
CATCH EXCEPTION
BEGIN
RETURN EXCEPTION
END
END
3.4.14 Module Uses
Uses



Employees
Staff
Education
Used By



Create Staffing Request
Update Staffing Request
Search Staffing Request
3.5. Staffing Requests
3.5.1 Overview
Users assigned to the Client role will have the ability to create, update, and search
staffing requests. In addition, Clients will have the ability to search for staff
members to add to the staffing request based on:
1.
2.
3.
4.
Experience
Education
Salary (hourly rate)
Location
The staff member search will accept any combination of the above criteria. The
staff member search will return all staff member records that match the values
specified.
Create Staffing
Request
«uses»
Search Staff
Members
Update Staffing
Request
Client
Contract Manager
Search Staffing
Request
Figure 24 Staffing Request Use Cases
3.5.2 Processing Description
STAFFING_REQUEST_STATUS_TYPES
TIME_UNITS
Client
Status Types
Search
Staffing
Requests
Time Unit of Measure
Staffing Requests
DEGREE_TYPES
Create
Staffing
Request
Time Unit of Measures
TPS_STAFF
Staff Members
STAFF_EDUCATION
Staff Education
Search Staff
Members
Degree Types
Staff Members
Assigned Staff
Information
Request Staff Members
STAFFING_REQUEST
New Staffing Request
Updated Staffing
Request
Time Unit of Measure
Contract
Manager
Assigned Staff
Education
STAFFING_REQUEST_STAFF
Updated Staff Assignments
Assigned Staff
Figure 25 Staffing Request Processing
Update
Staffing
Request
Staffing Request
Staffing Request Closeout
The following state chart illustrates the processing of a staffing request from submission
to closeout.
Figure 26 Staffing Request Closeout State Machine
3.5.3 Interface Description
Create Staffing Request
The Create Staffing Request page will consist of:
Heading at top of page – Create Staffing Request
The following Fields will be available:
•
Work Location – Location of position
•
Staffing Request Description
•
From Date – Job Date From Date
•
To Date – Job Date To Date
•
Total Time – Total time that position is needed
•
Status ID – ID of staffing request
•
Fill Status ID – Filled or Vacant
These Fields are automatically generated:
•
Staffing Request ID – ID for request
•
Contract ID – ID for contract
The user will then need to click the Submit button at the bottom of the page.
Areas not filled in correctly will be highlighted in red when the Submit button is
pressed.
Update Staffing Request
The Update Staffing Request page will consist of:
Heading at top of page – Update Staffing Request
The following Fields will be available and adjust to update:
•
Work Location – Location of position
•
Staffing Request Description
•
From Date – Job Date From Date
•
To Date – Job Date To Date
•
Total Time – Total time that position is needed
•
Status ID – ID of staffing request
•
Fill Status ID – Filled or Vacant
These Fields are automatically generated:
•
Staffing Request ID – ID for request
•
Contract ID – ID for contract
The user will then need to click the Submit button at the bottom of the page.
Search Staffing Request
The Search Staffing Request page will consist of:
Heading at top of page – Search Staffing Request
The following Fields will be available to search from:
•
Work Location – Location of position
•
Staffing Request Description
•
From Date – Job Date From Date
•
To Date – Job Date To Date
•
Total Time – Total time that position is needed
•
Status ID – ID of staffing request
•
Fill Status ID – Filled or Vacant
These Fields are automatically generated:
•
Staffing Request ID – ID for request
•
Contract ID – ID for contract
The user will then need to click the Search button located at the bottom of the
screen. The search results will show at bottom of page under the Search button.
If no matches can be found, an error message will pop up prompting the user to
try again.
When the results are displayed, the appropriate Request can be selected. This will
allow the user to view all of its contents and be able to edit information. An Edit
option will be next to all information that can be updated and then saved again if
needed.
3.5.4 Pseudocode
No out of the ordinary decisions or complex calculations are involved in this
process.
3.5.5 Module Uses
Uses







Contract
StaffMember
StaffEducation
Employees
StaffingRequestStatus
FillStatus
TimeUnits
3.6. Contracts
The contract manager will be able to create the contract information by using the client’s
request. The contract manager will have the role of creating the contract by assembling
clients that fit the criteria.
3.6.1 Overview
Contract managers will have the ability to create, update, and retrieve contract
information. Clients will have the ability to retrieve (view) their contract
information.
Create Contract
Update Contract
Contract Manager
Client
Retrieve Contract
Figure 27 Contracts Use Cases
3.6.2 Processing Description
TPS_STAFF
Staff Education
CLIENT_ID, CONTRACT_HIGH_FEE
CONTRACT_LOW_FEE
TIME_UNITS
Time Unit of Measure
Contract_ID
Create Contract
STAFF_EDUCATION
Create
Contract
Contract
Manager
Employee ID
EMPLOYEE_ID
DEGREE_TYPES
Submit Contract
STAFFING_REQUEST_
STAFF
TPS_CONTRACTS
Search new
Contract
Search Match Criteria
Client
Search
Contract
Information
Search New Contract
Figure 28 Create Contract Event Diagram
Contract
Manager
TPS_CONTRACTS
Match search criteria
Update Contract
Submit Update
Update
Contract
TIME_UNITS
Time Units of Measurement
Search for new contract
Search
Contract
Information
Search for new contract
Client
Figure 29 Modify Contract Event Diagram
Contract
Manager
TPS_CONTRACTS
Match search criteria
Search for new contract
Search
Contract
Information
Figure 30 Retrieve New Contract Event Diagram
Search for new contract
Client
3.6.3 Interface Description
Create Contract
The Create Contract page will consist of:
Heading at top of page – Create Contract
Criteria listed with blank tab for user to enter data. This data is required and will
consist of Client ID, Contract Number, Contract Low Fee, Contract High Fee,
Contract Begin Date, and Contract End Date.
The user will then need to click the Submit button at the bottom of the page.
Areas not filled in correctly will be highlighted in red when the Submit button is
pressed.
The Contract Information will be submitted and the Contract ID will be displayed
as completed.
Retrieve Contract
The Retrieve Contract page will consist of:
Heading at top of page – Retrieve Contract
User will be asked to fill in known criteria to aid in the search. These fields will
include Client ID, Contract Number, Contract Low Fee, Contract High Fee,
Contract Begin Date, and Contract End Date.
The user will then need to click the Search button located at the bottom of the
screen. The search results will show at bottom of page under the Search button.
If no matches can be found, an error message will pop up prompting the user to
try again.
When the results are displayed, the appropriate Contract can be selected. This
will allow the user to view all of its contents and be able to edit information. An
Edit option will be next to all information that can be updated.
3.6.4 Pseudocode
Create Contract
Function createContract(INPUT INT ClientID,
INPUT STRING ContractNumber,
INPUT CURRENCY ContractLowFee,
INPUT CURRENCY ContractHighFee,
INPUT STRING ContractBeginDate,
INPUT STRING ContractEndDate)
BEGIN
Submit Contract
IF all input requirements aren’t entered THEN RETURN error
message to user.
IF all requirements are met RETURN CONTRACT_ID
END
Retrieve Contract
FUNCTION SearchContract(INPUT INT ClientID,
INPUT STRING ContractNumber,
INPUT CURRENCY ContractLowFee,
INPUT CURRENCY ContractHighFee,
INPUT STRING ContractBeginDate,
INPUT STRING ContractEndDate)
BEGIN
LET whereClause equal BLANKS
LET JOINER equal BLANKS
IF ClientID is not equal to NULL then
BEGIN
LET whereClause equal “CLI_ID = ‘“+ClientID+”’”
LET JOINER equal “ AND “
END
IF ContractNumber is not equal to NULL then
BEGIN
LET whereClause equal whereClase+JOINER+ “ CON_NUM =
‘“+ContractNumber+”’”
LET JOINER equal “ AND “
END
IF ContractLowFee is not equal to NULL then
BEGIN
LET whereClause equal whereClase+JOINER+ “ CON_LOW_FEE =
“+ContractLowFee
LET JOINER equal “ AND “
END
IF ContractHighFee is not equal to NULL then
BEGIN
LET whereClause equal whereClase+JOINER+ “ CON_HIGH_FEE
= ‘”+ContractHighFee+”’”
LET JOINER equal “ AND “
END
IF ContractBeginDate is not equal to NULL then
BEGIN
LET whereClause equal whereClase+JOINER+ “ CON_BEGIN_DATE like
%”+ContractBeginDate+”%”
END
IF ContractEndDate is not equal to NULL then
BEGIN
LET whereClause equal whereClase+JOINER+ “ CON_END_DATE like
%”+ContractEndDate+”%”
END
LET CONTRACT_LIST equal SELECT CONTRACT from TPS_CONTRACT
IF whereClause is not equal to BLANKS THEN
BEGIN
LET CONTRACT_LIST equal CONTRACT_LIST with
“ where “+whereClause
END
TRY
RETURN EXECUTE QUERY CONTRACT_LIST
CATCH EXCEPTION
BEGIN
RETURN EXCEPTION
END
END
3.6.5 Module Uses
Uses


Client
Contract Manager
Used By



Create Contract
Update Contract
Retrieve Contract
3.7. Web Site User Interface Description
The user interface will consist of the following elements:
1.
2.
3.
4.
A fixed banner on the top
Fixed navigation on the left
Main content in the right portion of the body
A fixed footer on the bottom of each page
The left navigation will change to reflect the allowable actions for the user. Public (nonauthenticated) users will only be allowed to perform the following actions:
1. Login
2. View the Contact TPS page
3. View the About TPS page
User that successfully login will be presented with a fixed left-hand navigation containing
the actions and features which they are allowed to perform as specified in the
TPS_ROLE_ACCESS_CONTROL table via associated with the ROLE_ID stored in the
TPS_USERS table.
Following are representative screen shots of the web site’s look and feel. These screen
shots constitute the design form and layout that will be used for each page in the site.
3.7.1 Home Page
3.7.2 Login Page
3.7.3 Client (authenticated) Portal Page
Download