Team Members:
Jim Hurne
Jonboy Corbin
Tom Setliff
Denny Daugherty
Habitat for Humanity of the Greater Harrisburg Area
Fred Silva
PA United Church Center
900 Alrington Ave., Suite 235
fsilva@paonline.com
717-545-7299
SRS Approved by:
1. Introduction
1.1 Vision
1.2 System Goals
1.3 System Concept of Operations
1.4 System Overview
1.5 User Types
1.6 Constraints and Assumptions
2.1 Requirements Overview of Feature Areas
2.2 Functional Requirements2.2.1 General Homeowner Information
2.2.2 Mortgage Tracking
2.2.3 Sweat Equity Hour Tracking
2.2.4 System Stability Features
2.2.5 Report Generation
2.2.6 User Management2.3.1 Functional Flexibility
2.3.2 Networkability
3. Increments
4. Open Issues
5. References
Our vision is that this database application will help Harrisburg Habitat track information pertaining to local Habitat homeowners. It is our hope that such a database application will relieve Harrisburg Habitat's office staff much of the tedious labor currently involved with their current system. The database application will also improve the quality, quantity, and usability of homeowner information.
It is also our hope that this application will one day be used by other Habitat for Humanity affiliates in the United States, and will have more functionality than we can address at the present.
1.3. System Concept of Operations
Here is a diagram showing the steps the user will go through when performing an operation. We will try to make sure all functions are quick to access, yet make sure pages are not overwhelming. Areas in green are general comments.
![]()
Figure 1: User Operations
There are five basic categories in which the mission-critical data breaks down into: Homeowner Demographic Information, Homeowner Sweat Equity Information, Homeowner Mortgage Information, Insurance Information, and Property Tax Information. Figure 2 (below) shows the relationship between these five categories within the conceptual database. Directly, or indirectly, all the information is linked to the Homeowner Demographic Information. Since, Insurance and Tax Information only effects Mortgages, they are not directly related to the Demographic Information, but are directly related to Mortgage Information.
![]()
Figure 2: Database Information BreakdownThe information in all of the categories make up the conceptual database. Figure 3 (below) shows how the user function categories use the information in the conceptual database. Some of the user functions maps directly to one specific information category, (Homeowner Manager maps directly to Homeowner Demographics). Other functions, such as Report Generation, utilize information from more than one category. One function, User Administration, does not map to any of the information categories defined above. It is assumed that all system user data would also be stored in the same place that all the other information is stored.
Everything is tied into the conceptual database. Thus, if one functionality causes changes in the data, then all other functions will quickly become aware of the change in the data.
![]()
Figure 3: System Components
There are currently three people in Harrisburg Habitats office that will be using the system. They are:
Executive Director
- Will track homeowner information.
Volunteer coordinator
- Will use database to track sweat equity hours.
Business Manager
- Primary user.
- Manages mortgages and other information.
In the near future there will be more people working in the office. Hopefully one of those positions will be filled by a system administrator. Most of the office personal will be average business users without a lot of technical skills.
1.6. Constraints and Assumptions
The database application...
- Will track information about homeowners, mortgages, and homeowner taxes and insurance.
- Will not track information about volunteers, fund-raising, or other accounting functions.
- Will generate reports and invoices pertaining to the information in the database.
- Will not generate any other unrelated reports.
- Will be accessible from other computers on the future network.
- Will not be accessible on the internet to unauthorized users.
- Will be implemented using Open Source Technology.
- Will be able to be backed up and restored easily to provide stability over a long period of time.
- Must be accessible from computers running MS Windows.
2.1. Requirements Overview of Feature Areas
Here is an overview of the various functional requirement feature areas.
- General Homeowner Information
This part of the system will be able to track various homeowner information not covered by any other feature. For example this will include demographic information.- Mortgage Tracking
This part of the system will track all information pertaining to mortgages. This includes but is not limited to taxes, escrow, insurance, and payments.- Sweat Equity Hour Tracking
This will allow the volunteer manager to keep track of the amount of volunteer hours that have been served by groups or individuals toward the total needed for a homeowner.- System Stability Features
Backup and restoration are a vital feature for this mission critical information. In the event that our system fails we cannot allow data loss.- Report Generation.
Almost all aspects of the data collected by our databases need to be able to be expressed in a report. This includes invoices and homeowner statistics.- User Management
This section will allow the administrator to add and remove user names. The system will also be able to track who made changes.Due to the goals of our project, the system also has Structural Requirements, which follow right after the Functional Requirements section. The major areas for these requirements are as follows
- Functional Flexibility
Knowing that the system may have much further expanded functionality, the system should be designed with change in mind. This section defines these requirements.- Networkability
These requirements help define what sort of network environment the system is required to run under.
2.2.1 General Homeowner Information
2.2.1.1 Homeowner Information Priority: High
The system shall store the following information about each homeowner and their household. Information with a star (*) after it donates a field that shall be required information for each homeowner. All other information shall be optional.
- First and Last Name*
- First and Last Name of spouse
- Address of Residence, Including Street, State, and Zip Code*
- Number of children living in the house
- Number of other persons living in the house
- First and Last Name of each individual living in the house
- The birthday of the homeowner*
- Date that the family moved or is projected to move into the house*
- An indicator of whether or not the homeowner has moved into the house*
- Income of homeowner and family as of the settlement date*
2.2.1.2 Property and House Information Priority: High
The system shall store the following information about each property owned one or more homeowners
- Property ID number
- Date that the property was dedicated
- Selling price of property and house
- Address of property
- Dollar value of the property
2.2.1.3 Adding Homeowners Priority: High
The application shall provide an interface for a user to add a new homeowner to the system, and to provide all pertinent information, as described in requirements 2.2.1.1, about the new homeowner.2.2.1.4 Removing Homeowners Priority: Low
The application shall provide an interface for a user to remove a homeowner from the system and will remove all associated information, as described in requirement 2.2.1.1, from the system.2.2.1.5 Changing Homeowner Status Priority: Medium
The application shall provide an interface for a user to indicate a homeowner as inactive, or to indicate that a homeowner is active.2.2.1.6 Modify Homeowner Information Priority: Medium
The application shall provide an interface for a user to edit any stored information, as described in requirement 2.2.1.1 about a specific homeowner.2.2.2.1 General Homeowner Mortgage Information Priority: High
The system shall track the following general mortgage information for each homeowner.
- Settlement date
- Expected monthly payment in dollars
- Expected date that the mortgage will be fully paid off
- Type of payment schedule (monthly or by-weekly)
- What day(s) of the month that the mortgage payments are due
- Initial principle balance in dollars
- Initial escrow balance in dollars
- Current principle balance in dollars
- Current escrow balance in dollars
- Current arreage total in dollars
2.2.2.2 General Insurance Information Priority: Medium
The system shall track the following general property and insurance information for each homeowner.
- Homeowner Insurance Policy ID number
- Insurance Company
- Insurance Company Address
- Yearly Insurance Cost
- Date when policy became effective
- Date when policy expires (also the due date for total cost).
2.2.2.3 State Tax Information Priority: High
The system shall track the following state tax information for each homeowner.
- Due date
- Date paid
- Total Tax Amount
2.2.2.4 City Tax Information Priority: High
The system shall track the following city tax information for each homeowner.
- Due date
- Date paid
- Total Tax Amount
2.2.2.5 School Tax Information Priority: High
The system shall track the following school tax information for each homeowner.
- Due date
- Date paid
- Total Tax Amount
2.2.2.6 Yearly Tax Information Priority: Medium
The system shall store tax information as described in requirements 2.2.2.3, 2.2.2.4, and 2.2.2.5 for each homeowner for each year.2.2.2.7 Mortgage Payment Information Priority: High
The system shall record the following information for each payment made by a homeowner.
- Payment Due Date
- Actual payment date
- Date invoiced
- Payment type (cash, check, or money order)
- Check/Money Order number
- Total dollar amount of the payment received
- Beginning principle balance
- Dollar amount of payment applied to Principle
- Resultant principle balance in dollars
- Beginning escrow balance in dollars
- Dollar amount of payment applied to escrow
- Resultant escrow balance in dollars
- Dollar amount credited toward past due mortgage payments and to which past due mortgage payments (decreases arreage).
- A description of each payment
2.2.2.8 Tax Payment Information Priority: Medium
The system shall provide an interface and record the following information for each homeowner each time a tax payment is recorded.
- Payment Date
- Amount taken from escrow (amount paid)
- Tax Type (City, State, School)
2.2.2.9 Home Insurance Payment Information Priority: Medium
The system shall provide an interface and record the following information for each homeowner each time a home insurance payment is recorded.
- Payment Date
- Amount taken from escrow (amount paid)
2.2.2.10 Edit General Mortgage Information Priority: Medium
The system shall provide an interface for a user to edit mortgage information as described in requirement 2.2.2.12.2.2.11 Add Tax Information Priority: Medium
The system shall provide an interface for a user to add tax information as described in requirements 2.2.2.3, 2.2.2.4, and 2.2.2.52.2.2.12 Edit Tax Information Priority: Medium
The system shall provide an interface for a user to edit tax information as described in requirements 2.2.2.3, 2.2.2.4, and 2.2.2.52.2.2.13 Add Insurance Information Priority: Medium
The system shall provide an interface for a user to add insurance information as described in requirement 2.2.2.22.2.2.14 Edit Insurance Information Priority: Medium
The system shall provide an interface for a user to edit insurance information as described in requirement 2.2.2.22.2.2.15 Add Payments Priority: High
The system shall provide an interface for a user to add payments as described in requirements 2.2.2.7, 2.2.2.8, and 2.2.2.92.2.2.16 Edit Payments Priority: Medium
The system shall provide an interface for a user to edit payments as described in requirements 2.2.2.7, 2.2.2.8, and 2.2.2.92.2.3 Sweat Equity Hour Tracking
2.2.3.1 Total Sweat Equity Tracking Information Priority: Low
The system shall store the total sweat equity hours accumulated by a homeowner to the current date.2.2.3.2 Other Sweat Equity Hour Information Priority: Low
The system shall track the following information for each date that a homeowner accumulates sweat equity hours.
- What the accumulated hours on the specific day are counted toward
- The date the sweat equity hours were added
- The number of hours accumulated for the homeowner on said date
- The names of any and all persons who contributed to the said sweat equity hours
2.2.3.3 Adding Sweat Equity Hours Priority: Low
The system shall provide an interface for a user to add sweat equity hours to a specified homeowner.2.2.3.4 Editing Sweat Equity Hours Priority: Low
The system shall provide an interface for a user to edit existing sweat equity hours for a specified homeowner.2.2.4 System Stability Features
2.2.4.1 Full Backup Request Priority: High
The system shall provide an interface for a user to request a full backup of the entire system.2.2.4.2 Full Restoration Request Priority: Low
The system shall provide an interface for a user to request a full restoration of the system from a previous full backup, and all information stored in the full backup shall be restored.2.2.4.3 Automatic Full Backup Priority: Low
Every Friday at midnight, the system shall generate a full backup.2.2.4.4 Data in a Full Backup Priority: High
All information stored in the system shall be recorded in a full backup.2.2.4.5 Data integrity Priority: High
The system shall follow the following data integrity rules
- No information of any kind shall be removed if that removal will result in inconsistent records
- No information of any kind shall be added if the addition will result in inconsistent records
See Glossary of Terms for a definition of inconsistent records.
2.2.4.6 Safety Prompting Priority: Medium
The system shall prompt the user for confirmation before any major, irreversible change is made to any information stored in the system. Irreversible changes include
- Deletion or removal of homeowner records as described in requirement 2.2.1.3
- Deletion of a system user account as described in requirement 2.2.6.1
2.2.4.7 Data Validation Priority: Medium
The system shall validate all data submitted by a user before such data requests are processed. Data submissions include adding,or editing homeowner information, mortgage information, tax and insurance information, system user information, and sweat equity information. See Glossary of Terms for a description of what the process of data validation entails.2.2.5.1 Mortgage Invoices Priority: High
The system shall generate an invoice for each homeowner for each month. The invoice shall be 95% similar to the template submitted by Harrisburg Habitat, and shall contain the information listed below. Click to view an image of the new invoice template: InvoiceTemplate.
- The next mortgage payment due date
- The date the invoice was produced
- The current principle balance on the mortgage account
- The current escrow balance on the mortgage account
- The current amount of arreage
- The amount due on the next mortgage payment
- The address of the homeowner of the mortgage
- The address of Harrisburg Habitat
- The fax #, phone #, email, and website of Harrisburg Habitat
- A section to cut off and mail with the mortgage payment
- A comment section where Harrisburg Habitat can leave comments for an individual homeowner, or for all homeowners
2.2.5.2 Mortgage Status Reports Priority: High
The system shall generate status reports which shall be 95% similar to the template submitted by Harrisburg Habitat. See the CensoredStatusReport for a censored version of the template.2.2.5.3 Missing Payment Reports Priority: High
The system shall generate a report displaying all missed mortgage payments by all homeowners.2.2.5.3 Homeowner Report Generation Priority: Low
The system will be able to generate statistical reports based on the homeowner information specified in 2.2.1.1. The following types of reports on homeowner information shall be made available todo: Create list of possible homeowner reports2.2.5.4 Customizable Report Generator Priority: Low
The system shall provide an interface in which a user will be able to design custom reports from any information stored in the system.2.2.6.1 User Manager Interface Priority: Medium
The system will provide an interface from which the administrator can add, modify and remove users from the list of who can log into the database.2.2.6.2 User Event Tracking Interface Priority: Low
Every action taken by a user of the system shall be logged so the actions taken by a user may be tracked.2.2.6.3 User Information Priority: Medium
The system shall manage the following information for each user of the system
- User Name
- Real first name and last name
- System password
2.2.6.4 User Permissions Priority: Low
Each system user shall be assigned permissions which will define what actions the user is allowed to perform. Actions includes any modifications made to any information tracked in the system.
2.3.1.1 Extendability Priority: High
The underlying structure and functionality of the system shall be extensible.2.3.1.2 Extension Interface Priority: High
The system shall provide a standard interface for developers to add functionality to the system.2.3.2.1 Stand-alone Priority: Medium
The system shall be able to run on a single machine.2.3.2.2 Network Application Priority: Medium
The system shall be able to run on a central computer and shall be accessible from multiple work stations.
3.1 Framework
This will be the first increment of development. Consequently, it will only set up the framework of the system. This increment is made up of information storage and structural requirements.
Requirements to be met:
2.2.1.1 Homeowner Information
2.2.1.2 Property and House Information
2.2.2.1 General Homeowner Mortgage Information
2.2.2.2 General Insurance Information
2.2.2.3 State Tax Information
2.2.2.4 City Tax Information
2.2.2.5 School Tax Information
2.2.2.8 Tax Payment Information
2.2.2.9 Home Insurance Payment Information
2.2.4.5 Data integrity
2.3.1.1 Extendability
2.3.1.2 Extension Interface
2.2.6.3 User Information3.2 Basic Functionality The Basic Functionality increment will build the most basic functionality on top of the system framework. It will contain all the basic necessary functionality needed for the system to work, but none of the more fancy features.
Requirements to be met:
2.2.1.3 Adding Homeowners
2.2.1.4 Removing Homeowners
2.2.1.5 Changing Homeowner Status
2.2.2.7 Mortgage Payment Information
2.2.2.10 Edit General Mortgage Information
2.2.2.11 Add Tax Information
2.2.2.13 Add Insurance Information
2.2.2.15 Add Payments3.3 Releasable Functionality
The Releasable Functionality increment will have all the necessary functionality needed for TheHomeTeam to feel comfortable with releasing the system, provided that development of the Refined Functionality increment is planned. Still missing is some more of the flashy functionality.
Requirements to be met:
2.2.1.4 Modify Homeowner Information
2.2.2.6 Yearly Tax Information
2.2.2.12 Edit Tax Information
2.2.2.16 Edit Payments
2.2.2.14 Edit Insurance Information
2.2.4.1 Full Backup Request
2.2.4.4 Data in a Full Backup
2.2.5.1 Mortgage Invoices
2.2.5.2 Mortgage Status Reports
2.2.6.1 User Manager Interface
2.3.2.1 Stand-alone3.4 Refined Functionality
This increment will include a lot of refined functionality, and many of the major functional categories will be fully implemented. Only the lowest priority functionality will be left out.
Requirements to be met:
2.2.3.1 Total Sweat Equity Tracking Information
2.2.3.2 Other Sweat Equity Hour Information
2.2.3.3 Adding Sweat Equity Hours
2.2.4.2 Full Restoration Request
2.2.4.6 Safety Prompting
2.2.4.7 Data Validation
2.2.5.3 Missing Payment Reports
2.2.5.4 Homeowner Report Generation
2.3.2.2 Network Application3.5 Total Functionality
Whatever remaining missing functionality exists will be implemented in the Total Functionality increment. All major functional categories will be fully implemented.
Requirements to be met:
2.2.3.4 Editing Sweat Equity Hours
2.2.4.3 Automatic Full Backup
2.2.5.4 Customizable Report Generator
2.2.6.4 User Permissions
| Name | Description | URL |
|---|---|---|
| Dictionary.com | Online Dictionary. Used for definitions for the Glossary of Terms. | http://www.dictionary.com |
| Home Buyers Information Center | General Information on house buying and mortgages | http://www.ourfamilyplace.com/homebuyer/ |
| Habitat For Humanity Website | Habitat for Humanity International's main website containing everything anyone would ever want to know about Habitat | http://www.habitat.org |
Arreage - Amount in dollars that is outstanding and overdue on a Mortgage account. Arreage is accumulated when a homeowner misses, or does not pay the full amount on a due mortgage payment.
Escrow - Money put into the custody of Harrisburg Habitat for Humanity for delivery to, and payment of homeowner insurance and property taxes. Escrow payments are integrated onto a Homeowners monthly mortgage payment.
Equity - The difference between the value of a property and the total of any outstanding mortgages or loans against it.
Foreclosure - The process through which a lender (Habitat for Humanity) takes back property from a defaulting owner and re-sells it.
Homeowner - A person who currently owns, or will own a house built by Habitat for Humanity. In the case of a person who will own a house, the house does not need to have yet been built.
Inconsistent Records - Sets of data in the system which do not agree with each other, or sets of data that exist without making much sense, such as a mortgage without a homeowner, or a state property tax without a property.
Mortgage - A temporary, conditional pledge of property made by a Homeowner to Harrisburg Habitat for Humanity as security for performance of repayment of debt on a house that Habitat has sold to a Homeowner. Habitat mortgages are affordable, long-term, and interest-free.
Principal - The amount borrowed for a mortgage loan.
Property Tax - An annual or semi-annual tax paid to one or more governmental jurisdictions based on the amount of the property assessment. Generally paid as part of the mortgage payment.
Report - A well-formatted document displaying information stored in the system.
Settlement - The process that effects the final transfer of the deed from the seller (Habitat for Humanity) to the buyer (a homeowner), as well as finalize all aspects of the mortgage of the property.
Sweat Equity - Volunteer work, especially manual labor, performed by a perspective Homeowner in return for the opportunity to own a house built by Habitat for Humanity.
User - Any person who uses the system.
Validation - A process in which incoming data is checked against various criteria. During validation, the system checks to make sure that the data fits within the proper specified types (A date is a date and not a name, a number is a number, etc), and that the data will not cause any unwanted side effects such as a system crash or a record being accidentally deleted.
| Page Execution took real: 126.704, user: 17.090, sys: 0.800 seconds |