Software Design - Google Project Hosting

perchmysteriousData Management

Dec 1, 2012 (4 years and 8 months ago)

137 views






“The Light” Volunteer Tracking and Registration System


Design Document


Group 14

Kevin Tiller

Clinton Thomas

David Thomas


COP4710


Database Systems

Prof. Kien Hua

Spring 2010









Table of Contents

1.0

Introduction

................................
................................
................................
................................
......

3

1.1

Requirements

................................
................................
................................
................................

3

1.2

Group Tasking

................................
................................
................................
...............................

3

2.0

Database Schema

................................
................................
................................
..............................

4

3.0

Softwa
re Design

................................
................................
................................
................................

6

4.0

Software Tools

................................
................................
................................
................................
..

8






















1.0

Introduction


To satisfy the course requirements for COP4710


Database Systems, our group sought
to identify the data retention and identification needs of a local non
-
profit organization. After a
thorough search, we found a coalition of Christian organizations on the
University of Central
Florida campus, called “The Light” who were in need of a convenient, functional method of
organizing their member data.


1.1

Requirements


The requirements for this project were established as follows



Registration of new members to t
he organization, with the means to retain contact
information



Member sign
-
up for volunteer services within the organization



Organizational tracking to establish members as “group leaders” within the organization



Financial tracking for members making claims

for expense reimbursement while
performing organization
-
related tasks



Financial tracking for members choosing to donate to the organization in lieu of working



A convenient, easily accessible web
-
based interface for the tracking system


1.2

Group Tasking


Work assignments were developed and allocated to individual group members, based on
their level of experience and technical understanding of the problem. The assignments were as
follows



Kevin Tiller


Web front
-
end, content generation, project requirement
s



David Thomas


Middleware,
Documentation



Clinton Thomas


MySQL database, Relational Schema, Query generation


2.0

Database Schema


The database was designed to be simple in its implementation, containing enumerated
data types for entity identification,
while maintaining a high order of description in the text
fields avai
lable for each table entry, as seen below in
Figure 1
.



Figure 1


“The Light” Database Entity
-
Relationship Model


The following entries describe the relational schema of the database
modeled in the ER
diagram above
, beginning with the entities themselves, followed by the relationships being
modeled.


Members (
memberID
: integer,
firstname
: string,
lastname
: string,
email
: string,
address
: string,



phone
: string)

Groups (
groupID
: i
nteger,
group
N
ame
: string,
groupS
ize
: integer)

Expense
s

(
expenseID
: integer,

taskID
: integer,

amount
: real)

Tasks (
taskID
: integer,
taskN
ame
: string,
taskT
ype
: string,
taskD
ate
: string)

Donations (
donationID
: integer,
amount
: real)

VolunteersFor (
memberID
:

integer,
taskID
: integer)

ClaimsExpense (
memberID
: integer,
expenseID
: integer)

LeaderOf (
memberID
: integer,
groupID
: integer,
since
: string)

ClaimsDonation (
memberID
: integer,
donationID
: integer)

The
Members

entity retains information about each individual member of the
organization, including their name, contact information, and the accumulated value of any
donations they may have made.

The
Groups

entity is used for the purpose of identifying the names of su
b
-
groups within
the organization, and is related to
Members

via the
LeaderOf

entity, which establishes a
particular member as the leader of said group. E
ach group needs to have at most one

leader
.

The
Expense

entity is used for the purpose of financial tra
cking. In the process of
organizational business, expenses may be incurred by group
Members
, requiring a
reimbursement claim to be made. This is tracked to a particular task using the task
identification number from the
Tasks

entity
.

Finally, the
Tasks

entity is used to describe the particular task that a group member has
signed up to volunteer for. It tracks the date they have volunteered for that task, the name of
the tasks they have signed up for, as well as the task type (food preparation, transport
, etc.). An
enumerated task ID tracks the unique tasks, and helps to correlate a particular task back to a
particular
Member

via the
VolunteersFor
entity.



3.0

Software Design


In order to facilitate both the group’s request for an easy to use website and the

requirement that there be a browser based front
-
end to the database, our interface was
designed using a combination of CSS, JavaScr
ipt and XHTML 1.0 Transitional for the
presentation layer
, PHP
for the
middle layer, and MySQL for the data management tier,

as seen
below in Figure 2.



Figure 2


“The Light” Organizational Flow Diagram


One of the key features of the site is the use of the JavaScript library Jquery. This allows
for a uniform easily editable appearance of the site as well as increasing the
aesthetic appeal.
Jquery provides the user with the illusion of tabbed browsing without having a clutter of pages
for the web site administrators to maintain. Following requests from leadership at “The Light”
we also created accordion style navigation me
nus and provided marquee scrolling events with
hand coded JavaScript.

F
uture plans
for expansion include
features such as a “Meet a Member” page, and a
“Picture Gallery”
, however the short length of the class assignment delayed their completion
.

As it i
s, all required functionality exists in the website and “The Light” is satisfied with the final
product. Members are able to visit the site from anywhere, sign
-
up for jobs, and review event
planning in an easily manageable online environment.

Upon enterin
g the site users are directed to the
Home Page

which shows them the
upcoming events and who will be providing the key services, they will also be able to visit the
News Tab

which provides a marquee displaying information like group meeting times etc.

The
A
bout Us

page allows users to learn more about the group’s general purpose and
retrieve contact info. Similar tabs provide info for group leaders, who are currently
Albert
Manero

and
Cara Brown
.


Another page which will receive future expansion
, the
Donate

page allows users to
follow directions if they wish to contribute financially to “The Light”. Although, not part of our
assignment
basic
functionality
to support

PayPal, Credit Cards and Checks tabs is included
.

Selecting
Events

in the navigation menu wi
ll allow users to choose either of the two
main days for “The Light” Activity which will then lead them to
Sunday Events

or
Thursday
Events
. Both of these provide information from our database concerning rotations and work
schedules for these meetings.

Li
nks to supporting organizations and websites are also scattered throughout the
interface for user convenience.













4.0

Software Tools


4.1

Presentation Layer Tools


The mai
n software tool used for the presentation layer

design was Visual Studio 2008 as
provided by the Microsoft Developers Network Academic Alliance. Although admittedly not the
best web design tool available, ready availability and the support of all the functionality
required by this project made this to
ol an easy choice.

Test software was also Visual Studio 2008 for syntax checking and code review
combined with the visual renderings of Mozilla Firefox, Google Chrome and Internet Exploder.
Using the three major Windows browsers allows us to cover the vas
t majority of “The Light’s”
users and ensure an equally functional and aesthetically pleasing view for everyone. Mac
hardware was unavailable for testing all though everything should theoretically run the same.


4.2


Middle Layer Tools



Before settling
on a good middle layer the team tested seve
ral different options
including,

Java Server Pages, Ruby on Rails, and PHP.
The advantage of using
JSP
is its similarity
to Java
, a language in

which the design team
had all previously designed applications
.

The

downside was the complexity of the code and lack of easy documentation.

Ruby on Rails
was
the most interesting option as it had an entire IDE backing it up, but nobody had any knowledge
of the Ruby language

and it was scratched in favor of the last optio
n
.

PHP emerged as the clear
leader in both ease of use and support.

Code was simple enough to write in notepad++ and
support was far more widespread and easy to understand than that of
JSP
.


4.3

Data Management Layer Tools



The requirements for the pro
ject were to develop the system using either an XML
-
based
or relational database management system for the backend data management routines. As
XML does not scale as well as a relational database for large sets of multifaceted organizational
data, the desi
gn team decided that a SQL
-
based implementation would present the most
robust solution for our design problem. From there, it was a matter of evaluating and
narrowing down to several available database management systems available for SQL, including
Micros
oft SQL Server, MySQL, and PostgreSQL.


MySQL was chosen as the backend database management system for a variety of
reasons. Besides the fact that it is an open
-
source, standards compliant system, MySQL is also
widely used across the internet and business
alike for the purpose of database management
and data retention systems. The server program is multi
-
platform, meaning it can run on either
a Windows or Linux based machine, the documentation is very clear regarding the interface to
the server, it accepts
all manner of standard SQL statements and queries, and has several very
powerful community
-
developed tools to utilize.


One such tool, called MySQL Workbench, allows for the visual development of entire
database schema, including tables, key constraints, t
riggers, etc. This tool was utilized for the
initial development of the database schema, as seen below in Figure 3.



Figure 3


MySQL Workbench visual development tool


For the purposes of generating a high
-
quality Entity
-
Relationship model diagram from
our proposed schema, we evaluated a demo of a proprietary software suite called DeZign for
Databases, developed by Datanamic Inc. This tool allowed us to input our SQL fil
e and generate
a great model for the purpose of displaying our DBMS schema, as seen in Section 2.0


5.0

Project Requirements


The Project Requirements for COP 4710 Final Project are as follows:

Tables:





5

Queries:





6

Updates:





3

Browser Based Us
er Interface:


1

5.1

Tables

The project required us to maintain and stored five tables. We maintain Members, Groups,
Tasks, Expenses, Donations. These tables and their attributes are shown in the Entity
-
Relationship Model below.


5.2

Queries

The
project required us perform and return results for six queries. The queries we have
implemented are
:

When claiming an expense:


Query for Member ID using First Name and Last Name

When claiming an expense:



Query for Task ID using Task Name and Date

When

making a donation:


Query for Member ID using First Name and Last Name

When making a donation:


Query for Task ID using Task Name and Date

W
hen setting leadership status:

Query for Member ID using First Name and Last Name

When assigning volunteers:


Que
ry for Member ID using First Name and Last Name

When assigning volunteers:


Query for Task ID using Task Name and Date

When updating phone:


Query for Member ID using First Name and Last Name

When updating email:


Query for Member ID using First Name and L
ast Name

When updating address:


Query for Member ID using First Name and Last Name


5.3

Updates

The project required us perform three updates. The updates we have implemented are:

Member Phone Number:


Query Member ID, change Member Phone accordingly

Member

Email Address:


Query Member ID, change Member Email accordingly

Member Street Address:


Query Member ID, change Member Address accordingly


5.4

Browser Based User Interface

Attached are screenshots of the browser based user interface we implemente
d.