DV Unit CMS:2010 Fall Developer Manual

=Getting Started= In order to run this program the user must have or have access to a SQL Database server, Web Server, and client systems. For our programs and editions we used:
 * Netbeans 6.9.1(Website Editor)
 * XAMMPP-WIN32-1.7.3(SQL and Web Server)
 * Java SE Development Kit 6 Update 18(Java Runtime Environment)

=Installation Procedures=

XAMPP Installation
The distribution of XAMPP we used is for Windows 2000, 2003, XP and Vista. This version contains: Apache, MySQL, PHP + PEAR, Perl, mod_php, mod_perl, mod_ssl, OpenSSL, phpMyAdmin, Webalizer, Mercury Mail Transport System for Win32 and NetWare Systems v3.32, Ming, FileZilla FTP Server, mcrypt, eAccelerator, SQLite, and WEB-DAV + mod_auth_mysql.

You can download XAMMPP-WIN32-1.7.3(SQL and Web Server) that includes: from (http://www.apachefriends.org/en/xampp-windows.html)
 * Apache 2.2.14 (IPv6 enabled) + OpenSSL 0.9.8l
 * MySQL 5.1.41 + PBXT engine
 * PHP 5.3.1
 * phpMyAdmin 3.2.4
 * Perl 5.10.1
 * FileZilla FTP Server 0.9.33
 * Mercury Mail Transport System 4.72

To install XAMPP you only need to download and extract XAMPP, that's all. There are no changes to the Windows registry (not true if you use the Windows installer version of XAMPP) and it's not necessary to edit any configuration files. It couldn't be easier!

To check that XAMPP is working some sample programs are included, there is a small CD collection program (written in PHP using MySQL) and a small guest book software (written in Perl) and several other demonstration utilities.

If you decide that XAMPP isn't needed any more just delete the XAMPP directory and it's completely removed from your system.

DV Unit CMS Application Setup Procedures
Start xxamp Mysql and Apache, and then go to localhost.com. On the left side menu click: Tools > phpMyAdmin > Databases Create a new database called dvunitcms Then go to the Import tab and where it says "location of the text file" insert the database file, and click "Go" in the bottom right corner. After that, it should say the import was successful.



Web Site Install Procedures


On Microsoft Windows platforms, you can pick from one of the following downloads: Using the Windows Installer Once you have downloaded the installer file, double-click the file to start the installation wizard. The installer enables you to specify:
 * Self-extracting installer
 * Archive distribution
 * the Java™ 2 Software Development Kit to run the IDE on.
 * which directory to install NetBeans IDE into.
 * whether to associate .java and .nbm (NetBeans module files) with the IDE.

To launch NetBeans IDE, do one of the following: Using Archive Installations on Windows Machines While the installer described above is the preferred method of installation on Microsoft Windows machines, you can also install NetBeans IDE using a tar.gz or zip file. Common archive utilities like Winzip can work with both of these file types. To install NetBeans IDE:
 * Double-click the NetBeans IDE icon on your desktop.
 * Select NetBeans IDE | NetBeans IDE 3.6 | NetBeans IDE from the Start menu.
 * 1) Locate the archive that you have downloaded and double-click it to open your archive file tool.
 * 2) Using your archive tool, extract all files to an empty directory, such as C:\NetBeans IDE 3.6.

To launch NetBeans IDE:
 * 1) Navigate to the bin subdirectory of your NetBeans IDE installation.
 * 2) Double-click runide.exe to start NetBeans IDE.

The minimum hardware requirements to run all the programs at once are:

Supported Operating Systems
Minimum Hardware Configurations


 * Microsoft Windows XP Professional SP3:
 * Processor: 800MHz Intel Pentium III or equivalent
 * Memory: 1GB
 * Disk space: 750 MB of free disk space


 * Microsoft Windows Vista:
 * Processor: 800MHz Intel Pentium III or equivalent
 * Memory: 1GB
 * Disk space: 750 MB of free disk space


 * Ubuntu 8.x:
 * Processor: 800MHz Intel Pentium III or equivalent
 * Memory: 1GB
 * Disk space: 650 MB of free disk space


 * Solaris OS version 10 (SPARC):
 * Processor: UltraSPARC II 450 MHz
 * Memory: 1GB
 * Disk space: 650 MB of free disk space


 * Solaris OS version 10 (x86/x64 Platform Edition):
 * Processor: AMD Opteron 1200 Series 1.8 GHz
 * Memory: 1GB
 * Disk space: 650 MB of free disk space


 * Macintosh OS X 10.5 Intel:
 * Processor: Dual-Core Intel
 * Memory: 1GB
 * Disk space: 650 MB of free disk space


 * Macintosh OS X 10.5 PPC:
 * Processor: PowerPC G4
 * Memory: 1GB
 * Disk space: 650 MB of free disk space

The Recommended System Requirements are: Recommended Hardware Configurations


 * Microsoft Windows XP Professional SP3:
 * Processor: 2.6 GHz Intel Pentium IV or equivalent
 * Memory: 2 GB
 * Disk space: 1 GB of free disk space


 * Microsoft Windows Vista:
 * Processor: 2.6 GHz Intel Pentium IV or equivalent
 * Memory: 2 GB
 * Disk space: 1 GB of free disk space


 * Ubuntu 8.x:
 * Processor: 2.6 GHz Intel Pentium IV or equivalent
 * Memory: 2 GB
 * Disk space: 850 MB of free disk space


 * Solaris OS version 10 (SPARC):
 * Processor: UltraSPARC IIIi 1 GHz
 * Memory: 2 GB
 * Disk space: 850 MB of free disk space


 * Solaris OS version 10 (x86/x64 platform edition):
 * Processor: AMD Opteron 1200 Series 2.8 GHz
 * Memory: 2 GB
 * Disk space: 850 MB of free disk space


 * Macintosh OS X 10.5 Intel:
 * Processor: Dual-Core Intel
 * Memory: 2 GB
 * Disk space: 850 MB of free disk space


 * Macintosh OS X 10.5 PPC:
 * Processor: PowerPC G5
 * Memory: 2 GB
 * Disk space: 850 MB of free disk space

=Model –View Controller Architecture=

DV Unit CMS is designed as a Model -View Architecture or “MVC” as some call it. An MVC is used to isolate the domain logic and the user interface. The model manages the behavior and data of the application domain. It also responds to requests for information about its state and state changes. The view renders the model into a form that the user can interface with. The controller receives input and initiates a response by making calls to the objects.

Model
Without knowing the logic behind the relationships in the database we can have very little understanding of the whole picture.

Relationships In the Data Model


 * ID-Dependent (Weak) Relationships
 * The relationship between PERSON and PERSON_CASE is ID-dependent on PersonID. PERSON_CASE uses PersonID to relate a person’s information with the case.  The relationship requires existing PERSON data to implement properly.  There is a one-to-many relationship between the two tables because a person may be involved in several cases—past and present.  Keeping the past case information available allows for keeping track of the person’s record. Cardinality between PERSON and PERSON_CASE is mandatory-mandatory because in order to be put into the system, a person needs to be involved in a case and every case requires a person.


 * PERSON_CASE_PROGRAM is ID-dependent on PERSON_CASE. To identity the person involved, the system uses the CaseID from PERSON_CASE.  The tables have a one-to-many relationship because a case may pertain to several programs.  Both tables are mandatory because people are assigned programs for every case they are involved in.


 * PERSON_CASE_PROGRAM is also ID-dependent on COUNSELING_TYPE. A case may have several programs but always of different types.  The one-to-many relationship means that one counseling type (AD, DV, AM, or MH) may relate to many programs.  PERSON_CASE_PROGRAM is optional while COUNSELING_TYPE is mandatory because the unit will also offer the types of counseling, but there may not be any of that type of program relevant at the time.


 * Non-ID-Dependent (Strong) Relationships
 * PROSECUTOR and PERSON_CASE have a non-ID-dependent relationship. ProsecutorID in PERSON_CASE connects the case with a prosecutor but does not uniquely identity the case.  The maximum relationship is one-to-many while the minimum is mandatory-optional.  A prosecutor is required for each case, and each prosecutor may take on several cases.  However, PROSECUTOR does not rely on PERSON_CASE to exist, so the case table is optional.  The unit stores a list of hired prosecutors, but new prosecutors cannot immediately take on cases.


 * COUNSELOR and PERSON_CASE_PROGRAM have a non-ID-dependent relationship. CounselorID relates the program to the counselor but is not a primary key.  The tables have a one-to-many relationship.  Counselors take on several programs.  Maximum cardinality is mandatory-optional because counselors are stored in the system even if they do not currently have programs.  The DV Unit creates a counselor list for people to choose, so the list exists even if the programs do not.


 * COUNSELOR_STATUS and PERSON_CASE_PROGRAM have a non-ID-dependent relationship because CounselingStatus does not uniquely identify the program. The tables have a minimum cardinality of mandatory-optional and a maximum cardinality of one-to-many.  COUNSELOR_STATUS lists all the possible statuses available to choose from (NotEnrolled, InProgress, Completed, and Terminated), so it is required to create PERSON_CASE_PROGRAM.  However, the list remains even if the program does not.  That is why the tables have a mandatory-optional cardinality.  One counseling status relates to several programs; for example, several people take anger management programs, but AM always represents anger management.



=Explanation of Use=



Clients can be added from the homepage. Once the user logged in and inputs the clients: First Name, Last Name, Address, City, State, and Zip code( ADD RECORD) can be used in order to add the client and their info. If the user decides for some reason that they wish to clear the text boxes they can clear the boxes by clicking cancel. If the fields are not all filled in when the user tries to add a record then the action will cancel out.

Updating Clients
Each page has its own way of updating the client’s data. For instance you cannot update the Prosecutors data from the counselor’s page nor can you add a new user from the Prosecutor’s or Counselor’s pages. Update the data on:

Home Page
In order to update someone’s information on the Home Page we first need to find them. This can be done but just looking at the page or by running a search. This search can be by either: First Name, Last Name, address, city, state, or zip code. When the individual is found simply select: update. Once update is pressed the client’s information is queried to the designated text boxes where it can be modified and saved. Prosecutor’s Page-

Updating data on Prosecutor’s page can be done the same way as done on the home page

Counselor’s Page
Updating data on Counselor’s page can be done the same way as done on the home page

---