DONATE:System Design Document (SDD)

Reliability
DONATE must be maintained by students in the CIS program; the system must be able to reliably perform required functions, and be robust and dependable. Robustness is important since DONATE needs to be able to handle all types of invalid user inputs. Dependability is important because DONATE must be able to handle many different types of errors and have few crashes. The system should, in theory, be able to operate 24 hours a day without issue. Reliability is what clients expect from systems.

Robustness
Robustness is the ability to survive invalid user input. The DONATE system involves a great deal of user input, some of which will be inherently invalid. The system should be able to recognize the invalid input or error, and display a warning. The system should not crash, but be should be able to address and handle the error accordingly.

Performance: Response Time/Throughput
Since DONATE is a fairly simple system, it needs to be a fast system, even when given more than one task to complete. There should be a minimum amount of load time, query time, and report creation time. It is safe to say that today; all software users, including the DONATE Assistant, expect a fast response time and a high amount of throughput.

Supportability/Modifiability/Extensibility
DONATE must be maintained by the UNHM CIS program, the system needs to be easy to modify or add functionality. Future developers from the CIS program may be making changes to the system; developers may need to add or change database tables, attributes, create new reports, and possibly extend the DONATE system to integrate with Quickbooks, Modifiability and extensibility of DONATE is important because it reduces the time and complexity of future development.

Operation and Development Costs
The DONATE system has to be free. This goal has to be met. The argument could be made that the cost is the most important aspect of the system. It is not a goal, but an overarching theme. All components of the DONATE system, from development, implementation and system maintenance, must be at no cost to the organization.

Security
In order for DONATE to withstand malicious attacks, a password is necessary to access the DONATE system. Other than that, any security protocols will have to be OS based. Security is important for the system because DONATE will have and link personal and financial information. Although the host operating system should be the primary security guard against malicious attacks, database information should be password protected, with future extensibility including encrypted information.

Subsystem Decomposition
The Donate architecture has three Layers:


 * 1) view-control subsystem depends on the db-control and model subsystems.
 * 2) model subsystem serves both view-control and db-control subsystems.
 * 3) db-control subsystem depends on the model subsystem.



Persistent Data Management

 * Database tables and relationships:


 * -Event:Represents an event that may have been held to gather donations.
 * -EventType: Information bout the Type of event that was held.
 * -Donation:Represents the physical donation itself.
 * -Donor: Represents a donor that made a donation.Includes contact information.
 * -Individual:Represents a single specific person that made a donation.
 * -Organization:Represents an Organization or business that made a donation.





 The Database design Diagram

The SQL Initialization files can be found here:


 * MySQL_Tables
 * MySQL_Create_DB_AND_User
 * MySQL_Insert_Data