DONATE:Fall 2010 Admin Manual

Table of Contents
Table of Contents

Purpose and Scope of DONATE Project  …………………………………………3

Objectives  …………………………………………………………………………………3-4

Design Goals  ………………………………………………………………………………4

System Requirements  ………………………………………………………………………5

Performance Requirements …………………………………………………………………5

Hardware and Software Architecture  ………………………………………………………5

Class Diagram  ……………………………………………………………………………6

Deployment:

XAMPP Installation  ………………………………………………………………7

Accessing MySQL  ………………………………………………………………7

Creating the Database and Tables in MySQL  ……………8-9

Performing the MySQL Dump  ……………………………………………………10

GUI Mock-ups  ………………………………………………………………………11-13

Glossary  ………………………………………………………………………………13-15

Purpose and Scope of the DONATE Project:
The DONATE project is an information management system that tracks donors, donations, events, pledges, and related data for two non-profit organizations; BBBS (Big Brother and Big Sister) of Greater Manchester and the YWCA of Manchester. This project has been created by the UNHM CIS program over the course of many semesters, embodying varying course objectives, and involving one very dedicated CIS professor and numerous CIS students.

Nonprofit organizations depend on donations to carry out their missions. Donations are made by individuals or organizations, and could be monetary (tangible), or a donation of time. Fund-raising events are the main source for collecting donations. There are occasions when donors make donations of their own accord, or the organization secures funding from grants. Some donations are pledges for a specified monetary value, which is then paid in installments throughout a time period. Pledge installments will be managed with invoices. A tracking system of donations, donors, fund-raising events, and grants, helps non-profits with preparing various reports. It will also help non-profits consolidate and grow their donor base by sending thank you letters and informative materials, and by making timely invitations to fund-raising events.

Objectives for DONATE:
The first objective of DONATE is to manage donors by keeping track of donors and identifying whether donors are individuals or organizations.

The second objective of DONATE is to manage donations by tracking donations, differentiating between monetary donations and donated items, and linking donations to their donors and the circumstances under which a donation is made: fund-raising event, grant, or a donor’s personal decision.

The third objective of DONATE is to manage fund-raising events by sending out invitations and following up with thank you letters when they attend.

The fourth objective of DONATE is to manage and produce planned and ad hoc reports that aggregate information on donations, donors, and events based on various criteria, such as the handling of pledge installments, sending out invoices, and thank you letters.

Design Goals

 * Usability:	DONATE should be easy to use, have a graphical user interface, and provide user support through a step-by-step documentation manual.


 * Reliability:	DONATE should be able to perform all of the required functions as dictated under the problem domain objectives with minimal user interruption.


 * Robustness:	DONATE should be able to withstand invalid user entries and provide error messages that the user can understand and continue past without knowledge of the system.


 * Response Time and Throughput:	DONATE system should be adept at handling all system tasks, including tracking, linking, invitations, invoices, and reporting, in a timely manner.


 * Modifiable and Extensibility:	DONATE should be able to support the addition of QuickBooks if the client decides to add it.


 * Security:	The DONATE system should have secure access methods, involving access to the application over a local area network using password authentication.


 * Utility:		DONATE should support all user tasks including managing donations, donors, donor sources, events, pledge installments, reports, and mailings.


 * Development Cost:	The DONATE system is entirely developed at no cost to the client by the UNHM CIS students.

System Requirements
DONATE will be implemented and maintained by the UNHM CIS program. The DONATE Assistant must be able to access the DONATE server application by logging onto their Windows XP computers and launching the DONATE client application, enabling communication with the DONATE server application over a wired, local area network. A Windows XP computer runs the DONATE server application and Microsoft SQL server storing the DONATE database. The system will be password protected to ensure confidentiality and integrity of information.

Performance Requirements
Donate will be highly functional for general users with no required background of the underlying technologies of the system. The users of DONATE will be provided with easy to follow step-by-step documentation of how to perform tasks on the system. The DONATE system will have a comfortable, intuitive GUI (Graphical User Interface) which will simplify data input, output and interpretation.

Hardware and Software Architecture
The DONATE Interface Subsystem runs on a Windows XP client machine. The DONATE Control Subsystem is realized through PHP coding and Javascript functions which manage the logic between the GUI and the DONATE Database Subsystem, which is managed by Microsoft SQL Server DBMS which executes on a Windows server machine.

The DONATE Assistant depends on the User Interface subsystem to provide a graphic interface to initiate all DONATE functions (i.e., use cases). The User Interface subsystem depends on the Control subsystem for access, concurrency, and management services (ManageService), including management of donors, management of donations, and management of events. In doing so, the Control subsystem depends on the Database subsystem for query services, data retrieval, and data storage (DataService).

DONATE Class Diagram

XAMPP
The XAMPP web server package contains the Apache web server, MySQL and PHP needed to run the DONATE application.

The package can be downloaded at http://sourceforge.net/projects/xampp/files

Installation
Double click the XAMPP setup icon on your desktop or downloads folder.

Once files have been extracted (this can take a while) you will receive a prompt in a terminal window. Pay no attention to the blatant spelling errors.

The first Prompt will ask if you would like a shortcut(icon) on the desktop/start-menu.
 * If you are installing on the C:\ drive just hit enter to accept the default setting.

The next Prompt asks if the installer should locate the XAMPP paths correctly.
 * Hit enter to accept the default setting.

The next prompt is important. It asks if it should make XAMPP portable.
 * For C:\ install press enter to accept the default setting.

At this point it will finish the install hit "Enter" when prompted to do so

Check the timezone and make sure it is correct or at least close enough "America/New_York" is acceptable.

Testing Install
At this point XAMPP is ready to be used.

Click the XAMPP desktop icon.

From the XAMPP-control you can start the services by clicking the "start" button. Click the Svc box next to Apache MySQL and FileZilla The start button for Tomcat will be grayed out this is acceptable.

To test that your install complete successfully.
 * Type: "localhost" into the address bar of your browser.
 * You should get a XAMPP Screen Click english unless your fluent in another language.
 * If you don't get the XAMPP page type the entire address "http://localhost/xampp/" or "http://127.0.0.1/xampp/"
 * XAMPP should congratulate you on your install, thank her its polite.

Click "Status" on the left side bar to be sure all services are running.

Accessing MySQL
The MySQL command line interface program, mysql.exe, is now installed in a bin directory in the XAMPP folder. The path to this, depending on where you put your XAMPP folder, will be something like this: C:\Program Files\Xampp\mysql\bin\mysql.exe.

To access MySQL via command line, you need to open a terminal utility (Windows Command for Windows OS or Terminal Program for MAC OS).

Creating the Database and Tables in MySQL
Beginning at C:\ in the path to your MySQL bin followed by “mysql.exe –u root –p” (no quotes). This starts MySQL using the username “root” and NO password. When prompted for a password, hit enter.

Create the DONATE database using the following commands: mysql>create database donate; mysql>use donate; Start creating tables for the DONATE database by exactly following the commands in the screen shot Illustration: Create Tables.

Illustration: Create Tables

Stop after creating the event table and receiving the Query OK message.

The next several commands will add key information that will relate tables. Enter the next set of commands, beginning after the Query OK message from the event table. Refer to Illustration: Adding Keys

Illustration: Adding Keys

Performing the MySQL Dump
You set up you database using a MySQL Dump file this will ensure your database has no errors from human interaction. And that it is an exact copy of the design. The syntax to create and restore a database from MySQL is remarkably simple: backup: 1.	mysqldump -u root -p[root_password] [database_name] > dumpfilename.sql restore: 1.	mysql -u root -p[root_password] [database_name] < dumpfilename.sql NOTICE: There is only minimal difference in the syntax. After you have performed the mysqldump, this file can be found in your bin. Illustration: MySQL Dump

Graphical User Interface for DONATE
Home Page for DONATE:

Add Donations screen for DONATE:

Search Donor Accounts:

Glossary

 * API: Application Programming Interface
 * BBBS: Big Brothers and Big Sisters of Greater Manchester
 * CIS: Computer Information Systems
 * DBMS: Database Management System
 * FK: Foreign Key
 * JPA: Java Persistence API
 * PK: Primary Key
 * SQL: Structured Query Language
 * UML: Unified Modeling Language
 * YWCA: Young Women’s Christian Association

http://foss.unh.edu/mediawiki/index.php/DONATE:Home – This is the wiki documentation for our project. It contains our weekly progress as well as what we have produced on the project.

Analysis Object Model: The object model produced during analysis. The analysis object model describes the application domain concepts that the system manipulates and the user-visible interfaces of the system.

Development Cost:	By definition: A design goal related to the cost of developing the system. Database Management System: 	 also pronounced (DBMS) is a set of computer that controls the creation, maintenance, and the use of a database. It allows organizations to place control of database development in the hands of database administrators (DBAs) and other specialists.

DONATE: A project whose goal is to produce a database responsible for tracking donors, donations, events, pledges, and other date for the BBBS (Big Brother and Big Sister) of Greater Manchester and the YWCA of Manchester.

Extensibility: The quality of a system indicating how easily the system can be changed to accommodate a new functionality.

Foreign key:	In a database management system, an attribute (or a set of attributes) that references the primary key of another table. Grant:	Something granted as a privilege or right being a sum of money or a tract of land.

Login: This is where the Assistant will enter his/her user name and password to access the DONATE system.

Modifiability: The quality of a system describing how easily existing models can be modified.

MVC architecture: Model-view-controller architecture. Model manages behavior and data of the application, and responds to requests for info. View renders the model into a simple user interface that is easy to utilize. The Control portion receives the user input and instructs the application to perform the user selected action.

MySQL : Relational database management system that runs as a server providing multi-user access to a number of databases.

Object –oriented database: 	An object-oriented database provides services similar to a relational database. Unlike, a relational database it stores data objects and associations.

PHP: a widely used scripting language that is used for web development and creating dynamic web pages. It is often embedded into a HTML document.

Physical component: A component which corresponds to a subsystem that has an explicit run-time equivalent. Examples of physical components include class libraries, executable files (or programs in binary format).

Primary key:	In a database management system, a set of attributes whose values uniquely identify the data records in a table.

Query: a request for information from a database. We do this in the form of a small SQL statement that retrieves or alters data in the DONATE system.

Relational database:	provides data abstraction at a higher level than flat files. Data are stored in tables that comply with a pre defined type called a schema.

Reliability:	Ability of a system or component to perform its required functions under stated conditions for a specified period of time.

Response Time: An attribute of the system denoting how quickly it can react to a user input.

Robustness:	The degree to which a system or component can function correctly in the presence of invalid inputs or stressful environment conditions.

Security: Property of a system indicating its ability to protect the resources against unauthorized use, whether malicious or accidental.

Server A subsystem which provides services to instances of other subsystems called clients. Source code:	Contains variable declarations, instructions, functions, loops, and other statements that tell the program how to function.

Sourceforge: a web repository for source code. Source forge offers free hosting for developers of open source software projects.

SQL: structured query language. Used to create and manage relational databases through queries.

System model:	 The set of models built during development to reason about the system. This includes the analysis model, the object model, and the source code.

Throughput: The attribute of a system denoting how much work it can accomplish within a specified amount of time.

Usability: 	Ease with which a user can learn to operate, prepare inputs for, and interpret outputs of a system or component.

User Interface: The system by which people (users) interact with a machine.

Utility: The extent to which the system supports the work of the user.