VOLUNTEER MANAGEMENT SYSTEM Manali Suresh Ghate

advertisement
VOLUNTEER MANAGEMENT SYSTEM
Manali Suresh Ghate
B.S., Cummins College of Engineering for Women,Pune, 2006
PROJECT
Submitted in partial satisfaction of
the requirements for the degree of
MASTER OF SCIENCE
in
COMPUTER SCIENCE
at
CALIFORNIA STATE UNIVERSITY, SACRAMENTO
FALL
2011
VOLUNTEER MANAGEMENT SYSTEM
A Project
by
Manali Suresh Ghate
Approved by:
__________________________________, Committee Chair
Jinsong Ouyang, PhD
__________________________________, Second Reader
Kwai_Ting Lan, PhD
____________________________
Date
ii
Student: Manali Suresh Ghate
I certify that this student has met the requirements for format contained in the University
format manual, and that this project is suitable for shelving in the Library and credit is to
be awarded for the Project.
__________________________, Graduate Coordinator
Nikrouz Faroughi, PhD
Department of Computer Science
iii
________________
Date
Abstract
of
VOLUNTEER MANAGEMENT SYSTEM
by
Manali Suresh Ghate
The Volunteer Management System is an application developed to help aid the City Of
Sacramento for managing their volunteers and the events hosted by the different departments.
The volunteer coordinators currently handle such activities manually over the phone and by
emails since they have chosen not to opt for the paid applications available in the market.
Along with developing the application, I researched various methods by which a
database can be updated using a Short Message Service. I used an API to update the SQL Server
database of my application through a SMS received from registered volunteers for the number of
hours they have worked. Using this feature will provide convenience to the volunteers as well as
the coordinators to keep a track of the number of hours worked for the events. This involves
allowing interaction between your database and the API service for updating it. Further research
can be done to discover alternative ways to interact with the system.
_______________________, Committee Chair
Jinsong Ouyang, PhD
_______________________
Date
iv
ACKNOWLEDGMENTS
Firstly, I offer my sincere gratitude to my project advisor Dr. Jinsong Ouyang,
who has supported me throughout with his patience and knowledge while allowing me
the room to work in my own way. Dr. Ouyang is simply the best professor I have likely
encountered during my Masters.
I would like to thank the City Of Sacramento for giving me the opportunity to
serve them. I am indebted to William Taylor and Mary Lynn Perry at the City Of
Sacramento for the countless times they spent with me through all the project phases and
providing their valuable feedback and suggestions. I would also like to thank Professor
Kwai Ting Lan for reviewing this project report. A special thank you to my land lady
Mary Becker for continually inspiring me to succeed in completing my project and also
my friends for being there for me all throughout the various ups and downs I have gone
through.
Finally, I owe my parents Mrs. Sunita Ghate and Mr. Suresh Ghate and my sisters
Dr. Anjali Ghate and Rupali Ghate for their endless love and support throughout my
studies.
.
v
TABLE OF CONTENTS
Page
Acknowledgments......................................................................................................... v
List of Tables ............................................................................................................ viii
List of Figures ............................................................................................................. ix
Chapter
1. INTRODUCTION .............................................................................................… 1
1.1 Overview ..................................................................................................... 1
1.2 Purpose ....................................................................................................... 2
1.3 Comparison with existing systems ..............................................................2
2.
REQUIREMENTS ANALYSIS. ............................................................................4
2.1 Software Requirements ...............................................................................4
2.2 Hardware Requirements ..............................................................................5
2.3 Major components ......................................................................................6
2.4 Assumptions ................................................................................................7
2.5 Design of Entity Relationship Model .........................................................7
2.6 Use case Diagrams .......................................................................................8
3.
TECHNOLOGIES ............................................................................................... 11
3.1 Microsoft .NET Framework...................................................................... 11
3.1.1 Visual Studio IDE ..................................................................... 12
3.1.2 C#.Net ....................................................................................... 12
3.2 Microsoft SQL Server Express 2005 ........................................................ 15
3.3 SMS Gateway & SMS API ...................................................................... 16
4. SYSTEM DESIGN AND IMPLEMENTATION ................................................. 17
4.1 System Architecture ................................................................................. 17
4.2 Messaging Architecture ............................................................................18
4.3 System Design ...........................................................................................21
4.4 Database Design ....................................................................................... 23
vi
4.5 Implementation…. .....................................................................................31
4.6 User Interface .............................................................................................47
5. CONCLUSION ..................................................................................................... 60
5.1 Summary .................................................................................................. 60
5.2 Future Work ............................................................................................. 60
Bibliography. ...............................................................................................................62
vii
LIST OF TABLES
Tables
Page
1. Entity Relationship Model…………………………………….……….………… 8
2. Volunteer Entities ………………….…….………….…………………….…...... 24
3. Volunteer Details Entities …….…….…….………….………………………….. 25
4. Coordinator Entities ……………………....……….…………………………….. 27
5. Department Entities ……………….…………………………………………….. 28
6. Events Entities …………………….……….….………..……………………….. 29
7. Vol_Login Entities ….……….…………………...……….…………………….. 30
8. SMS_Received Entities …………..……….……….………….……………….... 31
viii
LIST OF FIGURES
Figures
Page
1.
Coordinator Use Case Diagram …………………………………… . …………9
2.
Volunteer Use Case Diagram………………………………………………… 10
3.
DOT NET framework in context ………………..…………………… . ……. 11
4.
Visual Studio IDE Tools.……………………….……………………… . …... 12
5.
Typical C# Application ………………………………………………… . ….. 13
6.
System Architecture ………………………… . .…………….………………. 17
7.
Two-way Messaging Architecture… . ………….……………………………. 19
8.
System Design.. ................................................................................................ 21
9.
Database Design.......................................................................................... …. 24
10.
SMS Snapshot.. ................................................................................................. 45
11.
Login Page… .................................................................................................... 48
12.
Volunteer Home Page ....................................................................................... 49
13.
Volunteer Registration Page ............................................................................. 50
14.
Create Login Page ............................................................................................. 51
15.
Coordinator Home Page.. .................................................................................. 52
16.
View Events Page ............................................................................................. 53
17.
Generate Sign-up Sheets Page. ......................................................................... 53
18.
Post Events Page ............................................................................................... 54
19.
Export Active Volunteers Page. ........................................................................ 55
20.
View Departments Page... ................................................................................. 56
ix
21.
Terminate Volunteers Page. .............................................................................. 56
22.
Send SMS Page... .............................................................................................. 57
23.
Generate Dynamic Reports Page ...................................................................... 58
24.
Export options of Crystal Report.. .................................................................... 59
x
1
Chapter 1
INTRODUCTION
1.1. Overview
The Volunteer Management System is an application developed to help aid the
City Of Sacramento for managing their volunteers and the events hosted by the
different departments. The volunteer coordinators currently handle such activities
over the phone and by emails since they have chosen not to opt for the paid
applications available in the market. The system will allow users to register as a
volunteer online, apply for the posted events, log the hours worked and provide
reporting and tracking facilities to the co-ordinators. Along with developing the
application, various methods were researched for implementing the feature of
enabling two-way Short Message Service for updating multiple records into a
database. A third party text messaging API has been integrated to serve as an
interface between the application’s SQL Server database and the Short Messaging
Service from the user to facilitate their interaction. Using this feature will provide
convenience to the volunteers as well as the coordinators to keep a track of the
number of hours worked for the events. The volunteers can also enter it online by
logging into the system if they wish to.
2
1.2. Purpose
The purpose of this project is to develop a stand-alone web based application used
on the public internet. The project is aimed to empower the City Of Sacramento to
sign up volunteers and manage them for various events happening throughout the
various departments. The project included research and implementation of a two-way
Short Messaging Service feature. Using this, the system can send the volunteer a
Short Messaging Service showing a list of events and the hours worked present in the
system and the volunteer can reply with the hours he/she worked. Since, the City of
Sacramento as well as the web hosting solutions available online don’t allow their
database to be exposed for outside services to update their database, I used a
dedicated virtual server for this purpose. The virtual server was setup, the database
configured and a third party Ez Texting’s message solution was used to deliver SMS
to the application from any mobile carrier and vice versa.
1.3. Comparison with existing systems
Analysis included that of examining the various existing systems available in the
market. Some of the systems available in the market are described below along with
their features and drawbacks.
One of the well-known Volunteer Management System is Volgistics, which is a
paid browser based system to manage volunteer information, track their service and
provide scheduling and reporting facilities. The pricing is based on the number of
volunteers you want to manage, number of volunteer records you want to store, the
3
number of system operators you want and if you want to have a Volunteer Information
Center available with it.
There are various systems (i.e., CERVIS, NEON, Ebase, I-VolunteerOnline.com,
Son of Service, etc.) to name a few. Ebase is free to use for a single user whereas IVolutneerOnline.com allows only one user to coordinate the events. Son of Service
system does not allow the volunteers to access the system at all. The Volunteer
Management System was designed keeping the various drawbacks of these systems
into consideration as well as providing similar features which most of these provide
along with the added facility of two-way SMS.
4
Chapter 2
REQUIREMENTS ANALYSIS
The requirements for the Volunteer Management System were analyzed and
drafted under the guidance of Mary Lynn Perry, William Taylor and Diane Hartline with
the City of Sacramento. The citywide webmasters and content managers also contributed
to review the features and provide their feedback and suggestions. The system will be
accessible on all standard HTML web browsers after being hosted on the City’s website
at http://cityofsacramento.org/volunteers.
The software and hardware specifications required for implementation of the project are
as follows:
2.1. Software Requirements
The development of the application required installation of:

Microsoft DOT NET Framework 3.5: Microsoft DOT NET framework is the software
framework that runs primarily on Microsoft windows. Software can be produced by
combining source code with the DOT NET framework and other libraries.

Microsoft Visual Studio DOT NET 2008: This is the popular integrated development
environment provided by Microsoft. In Microsoft DOT NET, the programming
language C#.NET was chosen due to the features it provides as well as giving me an
opportunity to learn a new language.
5

Microsoft SQL Server 2005 Express Edition: This is the free edition of SQL Server
distributed by Microsoft. This backend has been chosen in order to avoid the City the
cost of purchasing a paid version or licenses.

Third party Ez Texting Server API: It is a simple SMS Marketing service. It provides
a text messaging API that serves as an interface to facilitate the interaction between
the SQL Server database and the user through a Short Messaging Service.
All the above are described in detail in chapter 3.
2.2. Hardware Requirements

Virtual dedicated server
This was required only for the purpose of project implementation since the
security policies of web hosting solutions do not permit external API’s to update their
database. Go Daddy’s virtual dedicated server has been used for the project. A Virtual
dedicated server refers to a virtual machine that appears to the user as a dedicated
server but installed on a computer serving multiple web sites. It is a simulation of
hardware by a host operating system that allows another operating system to run on it.
Virtual private servers offer more control than what is offered with a shared web
hosting account. The virtual server is isolated from the others and the host server
manages access to hardware resources like RAM, CPU, Disk Space, network
throughput. It can run its own full-fledged operating system and can be independently
rebooted.
6
2.3. Major components
Three major components identified for the system are as follows:
1. Managing events and volunteer time:
a. Volunteers should have the ability to sign-up on-line for specific opportunities or
events. The sign up information would go into a database that would sort the data
and allow sign-in sheets to be generated for the day of the project.
b. Event/department volunteer co-ordinators have the facility to approve or reject
volunteer requests received for the events.
c. Volunteers would be able to enter time volunteered at an event by two ways. One
would be to login online and update it themselves and another would be with the
help of an SMS. Application would include the capability of a web-based text
messaging system helping the volunteers to update the hours by sending them a
list of the events and hours worked and their response will update the database
system entry.
2. Managing Volunteer Personnel Data:
a. Managing the personal information of volunteers such as name, address, phone
number, email address, skills and emergency contact information. Volunteers can
update their information online anytime.
b. Tracking of the various departments/projects in which they have worked and their
hours worked is available.
7
c. Dates of volunteering commencement and date of termination are saved.
Terminating a volunteer disables the volunteer from logging into the system,
applying to events and accessing the events information already present in the
system.
3. Reporting Tools:
a. Report active volunteers in the system.
b. Exporting of the report data to some suitable file like Microsoft Excel.
c. Generating reports for SMS requests status based on date range.
2.4. Assumptions

The volunteer’s phone number should be registered with the system for
identifying purpose.

The volunteer should use the format which includes the keyword VOLVM space
the event id followed by the number of hours he/she worked in order to update the
database.
2.5. Design of Entity Relationship Model
The entity relationship model for the Volunteer Management System is as follows.
This describes the type of information that is to be stored in the database. The following
entities can be uniquely identified and are capable of having an independent existence.
8
Table 1: Entity Relationship Model
Entity Name
Description
Vol_Login
Contains login information for volunteers and co-coordinators
Volunteer_Details
Contains volunteer details information
Coordinator
Contains coordinator details information
Volunteer
Contains information about the volunteer volunteering for a
particular event of a department
Events
Contains Events information
Department
Contains Departments information
SMS_Received
Contains registered users volunteer hours information received
through SMS
SMS_New
Contains all the SMS received information irrespective of
registered users to ensure they have been delivered
2.6. Use case Diagrams
Use case is the type of behavioral diagram to present a graphical overview of the
functionality provided by the system in terms of actors and their goals. The use
cases identified for co-ordinator are as follows:

A co-ordinator can manage volunteers or the events as well as terminate
them.

Active Volunteers in the system can be exported.
9

Events can be viewed and new events can be posted.

Sign-up sheets can be generated.

Accept or reject the volunteer requests for applying to events.

Accept or reject the hours worked from the SMS requests received.
Manage /Terminate
Volunteers
View/Post
Events
Generate signup sheets
Export Active
Volunteers
COORDINATOR
Accept/Reject
Volunteers
Accept/Reject
SMS Requests
Figure 1: Coordinator Use Case Diagram
10
The use cases identified for volunteers are as follows:

A new user can register as a volunteer.

A volunteer can apply for events posted online.

Hours worked for the various events can be entered.

Status of applied events can be viewed.
Apply
Events
Register
Enter Hours
Worked
VOLUNTEER
View Status
of Events
Figure 2: Volunteer Use Case Diagram
11
Chapter 3
TECHNOLOGIES
3.1.
Microsoft .NET framework
ASP.Net is a Web application framework for development of web sites, web
applications and web services. It has an object-oriented architecture and uses object
based programming languages like VB or C#.
Figure 3: DOT NET framework in context
Programs written for the .NET framework execute in a software environment known as
the Common Language Runtime, an application virtual machine that provides important
services such as security, memory management, and exception handling. The class
12
library and CLR together constitute the .NET framework. The .NET Framework’s Base
Class Library provides user interface, data access, database connectivity, cryptography,
web application development, numeric algorithms and network communications.
Programmers produce software by combining their own source code with the .NET
Framework and other libraries. [9]
3.1.1. Visual Studio IDE
Visual Studio IDE is the popular and powerful integrated development
environment largely for .NET software. It supports multiple programming languages C#,
C++, Visual Basic, J# and data markup languages HTML, XML and CSS.
Figure 4: Visual Studio IDE Tools
It is used to build ASP.NET web applications, XML web services, desktop applications
as well as mobile applications. Visual Studio supports Visual C# with a full featured
Code Editor, project templates, designers, code wizards, a powerful and easy to use
debugger and other tools.
3.1.2. C#.Net
C#.NET is a simple object oriented programming language. It is intended for use
in developing software components suitable for deployment in distributed environments.
13
Combined with the .NET framework, Visual C# enables the creation of Windows
applications, web services, database tools, components, client-server applications,
controls and more.
C# syntax simplifies many of the complexities of C++ and provides powerful features
such as nullable value types, enumerations, delegates, lambda expressions and direct
memory access, which are not found in JAVA. C# supports generic methods and types,
which provide increased type safety and performance, and iterators, which enable
implementers of collection classes to define custom iteration behaviors that are simple to
use by client code. Language Integrated Query expressions make the strongly typed
query a first-class language construct. [12]
Figure 5: Typical C# Application
The above diagram illustrates the compile-time and run-time relationships of C# source
code files, the .NET Framework class libraries, assemblies, and the CLR. Source code
14
written in C# is compiled into an intermediate language (IL) that conforms to the CLI
specification. The IL code and resources, such as bitmaps and strings, are stored on disk
in an executable file called an assembly, typically with an extension of .exe or .dll.
When the C# program is executed, the assembly is loaded into the CLR, which might
take various actions based on the information in the manifest. The CLR then performs
just in time (JIT) compilation to convert the IL code to native machine instructions. The
CLR also provides other services related to automatic garbage collection, exception
handling, and resource management. Code that is executed by the CLR is sometimes
referred to compiles the site effectively.
Microsoft as "managed code," in contrast to "unmanaged code" which is compiled into
native machine language that targets a specific system.
Features of ASP.Net:
1. It provides intrinsic state management functionality that enables to store information
between page requests.
2. ASP.Net works in concert with Microsoft .Net Framework and Microsoft Internet
Information Services to help provide Web application security.
3. When users request pages from the production server, ASP.NET dynamically
compiles the site effectively.
When the ASP.Net application is running, it can use built-in ASP.NET security
features as well as that of the .NET framework.

Choosing an authentication approach:
15
Identity would be at the application level. Per user data retrieval done using trusted
query parameters.

Choosing an authorization strategy
Between the two basic authorization strategies, I have used the role-based approach
since it is suited for the application. It is also the best choice for .NET web applications
where scalability is essential. In this, the access to operations is secured based on the role
membership of the caller. Users are mapped to the roles and if the user is authorized to
perform the requested operation, the application uses fixed identities with which to access
resources. The pattern used is:
1. Users are authenticated within the front-end web application.
2. The users are then mapped to the roles.
Authorize access to operations is provided based on the role membership. The necessary
back–end resources are accessed by using fixed service identities.
3.2.
Microsoft SQL Server Express 2005
Microsoft SQL Server 2005 Express Edition (SQL Server Express) is a powerful
and reliable data management product that delivers rich features, data protection, and
performance for embedded application clients, light Web applications, and local data
stores. Designed for easy deployment and rapid prototyping, SQL Server Express is
available at no cost. [8] It is designed to work with Visual Studio and ASP.NET. The
SQL Server express database can also be migrated to SQL Server 2005.
16
3.3.
SMS Gateway & SMS API
In order to send and receive SMS text messages on the server, one needs to
connect to the Short Message Service Centers (SMSC’s) of different wireless carriers.
With the help of a SMS gateway, the text messaging application needs to connect only
to the SMS gateway. The gateways can handle the connections to mobile phones and
GSM/GPRS modems for exchange of SMS messages. The gateway has the capability to
translate the SMS into whichever protocol the recipient carrier uses. The gateway is
normally a server over the internet that has access to SMS services and the API is an
interface implemented by a software program that enables to interact with the software.
The SMS API is implemented in software, enabling successful interactions in an IT
system. The SMS API’s can be classified as HTTPS/API, SOAP API, FTP API, SMTP
API, SMPP API, Com Object API, and XML API according to the way it works.
17
Chapter 4
SYSTEM DESIGN AND IMPLEMENTATION
4.1. System Architecture
The system architecture diagram below provides a comprehensive architectural
overview of the system. The components include the Microsoft SQL Server database, the
application server that in this case is a virtual dedicated server, the internet, Microsoft
Internet Information Services, web clients, mobile network over which an SMS is
forwarded to and from a mobile device.
MOBILE
NETWORK
MOBILE
DEVICE
INTERNET
WEB
CLIENTS
SQL SERVER
DATABASE
APPLICATION
SERVER
Figure 6: System Architecture
18
A web client can typically be a computer application such as a web browser that
runs on a local computer or workstation and connects to the server as necessary. All the
web clients communicate through the internet via the Microsoft Internet Information
Server or IIS.
The Microsoft Internet Information Services or the IIS is a web server application
that includes a set of programs to build and administer sites. The web clients connect to
the application server via the internet with the help of it. The IIS authenticates the web
client requests and then locates the requested resource.
The application server used in the system is a virtual dedicated server. The client
requests are processed and responses are sent out that are routed over the internet and the
IIS Server. The application server handles the communication needed for sending and
receiving messages. In order to send an SMS from the database to the mobile device, the
application server interacts with the database for generating the required message content
and sends it across to the mobile network with the help of a communication interface that
is the SMS gateway API. In addition, the API forwards the SMS from the mobile device
to the application from the mobile network to the application server.
All these modules exist independently and communicate with each other.
4.2. Messaging Architecture
After researching about two-way messaging feature, the following ways were discovered:

The first method is by using an SMS gateway.
19

Another method includes using a GSM modem for the purpose and AT
commands.

SMS messages can also be exchanged using SMTP. Gmail’s SMTP server can be
used for this.
I opted for using the first method of SMS gateway since the second method included
buying a GSM modem and the third one simply made use of a SMTP server but used
email to achieve its goal. In addition, the SMS gateway possessed the capability of
supporting a number of mobile carries as opposed to being limited to using a GSM phone
for this purpose as in the second case.
The SMS gateway application consists of two main components sending SMS from the
computer and reading the received SMS. The messages stored in the GSM modem or
mobile phone storage consists of four parts, the mobile phone number, the message
number, status and the message itself.
Figure 7: Two-way Messaging Architecture
The diagram above describes the architecture behind implementing the SMS updating the
SQL Server database through the C#.Net Application and the database sending stored
data to the user through an SMS.
20
The messaging architecture includes the start point as the user sending the Short Message
Service, the Short Message Service Center, the SMS gateway, the ASP.NET application
and the Microsoft SQL Server database. When any user sends out an SMS, it is received
by the Short Messaging Service Center of the mobile carrier. A third party Ez Texting’s
Keyword API SMS gateway has been used. Ez texting allows SMS messages to be sent
to the user. Ez Texting allows SMS messages to be received using HTTP through the
means of keywords on the short code 313131. The Ez texting SMS Server pushes the
received SMS messages by making an HTTP GET request to the provided URL, in this
case the Virtual Dedicated Server to indicate the receipt of an SMS message. The ten
digit phone number and the message are sent as parameters of the request. On receiving
this GET post, the C#.Net application reads the incoming data. The phone number from
which the SMS is received is validated and the volunteer hours worked by the user are
then stored in the Microsoft SQL Server.
There are two methods for receiving text message replies back to the API:

Polling the SMS gateway:
Replies are stored on the SMS gateway until a request from the API polls for the
messages. Messages can then be downloaded to the API and handled by the
application.

Pushing messages:
The alternative is your messages can be pushed to your application through HTTP
GET variables as soon as they are received by the SMS gateway.
21
4.3. System Design
The Volunteer Management System designed was developed from scratch as shown in
the below diagram.
WEB PAGES
APPLICATION LAYER
BUSINESS LOGIC
DATA ACCESS LAYER
DATABASE
Figure 8: System Design
The design uses a Microsoft Internet Information Server, an application server, a SQL
Server and a commercial of the shelf (COTS) API for sending and receiving text
messages. However, the design doesn’t include all the intricacies in the architecture. The
above diagram shows the overall system design and the way in which each layer interacts
with each other. All the respective interfaces were developed using C#.NET components.
The Volunteer Management System has been envisioned as an operational demonstration
all the time. During the test, real calls were made to the system. Testing included
functional validation as well as sending the SMS from the system and receiving the SMS
to the system.
22
Application Layer:
Application layer of the system comprises of various DOT NET aspx pages. The
application layer has been designed using various ASP.NET components. All the web
pages have been designed according to the user requirements and connected to the
application server. Some complex logic has been used to create reports using crystal
reports.
Business Logic:
The business logic resides in the code behind the files of the respective pages.
For login purpose, email and password credentials have been used. If the user fails to
provide the correct parameters, the forgot password page pulls up the security question
from the database and matches the answer the user provides.
While registering a new user to the system, the volunteer provides his personal
information as well as priorities to set up his profile. A volunteer can register for the
events through web page. He/she can update his/her hours using web page as well just by
sending an SMS to the system.
The volunteer can also edit his or her profile. The same page has been used for creating
and editing the volunteers profile by tweaking the query string.
For sending the message to the user, the message string has been built by retrieving the
entries needed from the database and appending them to a single string. The entries
included here are for a volunteer who has been approved for events and the event end
date is lesser than the system date in order to include only those events that have passed.
23
Logic for parsing the message received from the volunteer:
The received message from the API in the form of a query string has been parsed and
manipulated using regular expressions to extract the data needed for updating the
database. The data is then sent to the coordinator for approval or rejection.
Data access layer:
A SQL Credentials class has been created which establishes connection with the database
that is used throughout the project for all the pages. Therefore, each time you run a page,
you do not need to establish the connection but simply connect through a connection
string.
Database:
A detailed data model of the database has been created. The database comprises of a SQL
Server and seven tables representing the business objects. The database design has been
explained in detail below.
4.4. Database Design
The database design includes the Volunteer, Volunteer Details, Department, Events, Coordinator, SMS Received and Login tables. The database has been normalized. The
volunteer table saves the volunteer applying to events information in a separate table
from the volunteer details and uses ids of other tables in order to avoid duplication.
24
Figure 9: Database Design
I.
VOLUNTEER
This table would contain the volunteer ids and the event ids of the events they would be
volunteering for. It will also include the department id of the department for which the
event is taking place. The entire information of the volunteer is saved in another table
named volunteer details in order to avoid having redundant information in this table.
Table 2: Volunteer Entities
Fields
Field Name
Data type
Key
Volunteer id
vol_id
Int
Primary
Event id
vol_event_id
Int
Department id
vol_dept_id
Int
25
II.
Hours Worked
vol_event_hours
Int
Approval
approval
Varchar(50)
VOLUNTEER_DETAILS
Mostly a volunteer would be working for a particular department. So the field volunteer
department id has been added. Even if the volunteer is covering events for some other
department, that would be saved.
The field status states whether the volunteer is active or inactive in the system.
The field times_available would state if the volunteer is available in the morning, evening
or only on the weekends.
The field employment_type would state if the volunteer has a full-time or part time job
elsewhere or is unemployed, which would help to know the availability of the volunteer.
The field volunteering_reason would help to know the reason the person is volunteering.
For example if he wants to help others, gain work experience or other reasons that he
likes to meet new people, etc.
Table 3: Volunteer Details Entities
Fields
Field Name
Data type
Key
Volunteer Id
volunteer_id
Varchar(10)
Foreign
First name
first_name
Varchar(20)
Required
Middle name
middle_name
Varchar(20)
26
Last name
last_name
Varchar(20)
Salutation
Salutation
Varchar(5)
Postal mailing address
postal_add
Varchar(80)
Apartment Number
Apartment_no
Varchar(50)
City
City
Varchar(10)
Zip Code
zip_code
Varchar(5)
Day phone
day_phone
Varchar(15)
Evening phone
evening_phone
Varchar(15)
Fax phone
fax_phone
Varchar(15)
Email address
email_add
Varchar(20)
Alternate email address
alt_email_add
Varchar(20)
Birth date
birth_date
Date
Sex
Sex
Varchar(1)
Ethnicity
Ethnicity
Varchar(20)
Hire Date
hire_date
Date
Date information updated updated_date
Date
Status
Status
Varchar(10)
Total Hours volunteered
hours_volunteered
Varchar(10)
Times individual
times_available
Varchar(20)
employment_type
Varchar(20)
available
Type of Employment
Required
27
III.
Reason for volunteering
volunteering_reason Varchar(80)
Expenses
Expenses
Varchar(20)
Awards received
Awards
Varchar(100)
Training
Training
Varchar(100)
Skills Set
skills_set
Varchar(100)
Notes
Notes
Varchar(200)
Emergency Contact
emergency_contact
Varchar(80)
CO-ORDINATOR
The details of the co-ordinators managing the system are saved here. Every department
has a unique co-ordinator. The basic information of the coordinator has been saved here
including name and contact details.
Table 4: Coordinator Entities
Fields
Field Name
Data type
Key
Co-ordinator Id
coordinator_id
Varchar(10)
Primary
Department Id
coordinator_dept_id Varchar(10)
Foreign
Co-ordinator first name
co_first_name
Varchar(20)
Required
Co-ordinator middle
co_midle_name
Varchar(20)
Co-ordinator last name
co_last_name
Varchar(20)
Salutation
co_salutation
Varchar(20)
name
28
IV.
Day phone
co_day_phone
Varchar(20)
Evening phone
co_evening_phone
Varchar(20)
Fax phone
co_fax_phone
Varchar(20)
Email address
co_email_add
Varchar(20)
Required
DEPARTMENT
The department table saves the information of the various departments present.
Table 5: Department Entities
Fields
Field Name
Data type
Key
Department Id
dept_id
Varchar(10)
Primary
Manager Id
manager_id
Varchar(10)
Foreign
Department name
dept_name
Varchar(20)
Required
Description
Description
Varchar(100)
Location
Location
Varchar(20)
No. of volunteers
no_vol_working
Varchar(10)
no_co_working
Varchar(10)
working
No. of co-ordinators
working
The field manager_id would specify the particular co-ordinator id of the manager of the
department.
29
V.
EVENTS
The events table stores the information of the events taking place in the various
departments.
Table 6: Events Entities
Fields
Field Name
Data type
Key
Event Id
event_id
Varchar(10)
Primary
Department Id
event_dept_id
Varchar(10)
Foreign
Event name
event_name
Varchar(20)
Required
Event Type
event_type
Varchar(20)
Event Description
event_description
Varchar(200)
Eligibility
eligibility
Varchar(200)
Event start date
event_start_date
Date
Event end date
event_end_date
Date
Event Expenses
event_expenses
Varchar(20)
No. of volunteers
no_registered
Varchar(20)
no_attended
Varchar(20)
registered
No. of volunteers
attended
Additional information Notes
Varchar(100)
The field event_type will specify if the event if special or ongoing.
Required
30
VI.
VOL_LOGIN
This table saves the login information for the volunteers as well as the coordinators.
Table 7: Vol_Login Entities
Fields
Field Name
Data type
Key
Login id
login_id
Varchar(10)
Primary
Username
Username
Varchar(20)
Required
Password
Password
Varchar(20)
Required
Login type
Type_login
Varchar(20)
Required
Id of Volunteer/Co-
vol_or_co_id
Varchar(10)
Email address
login_email_add
Varchar(20)
Password recovery
recovery_question
Varchar(50)
recovery_answer
Varchar(20)
login_alt_email_add
Varchar(20)
Creation date
login_create_date
Date
Last login date
last_login_date
Date
Last password reset
last_reset_date
Date
ordinator
question
Password recovery
answer
Alternate email
address
31
date
The field login_type will specify if the person logging in is a volunteer or a coordinator.
The field vol_or_co_id will specify the id of the volunteer or the co-ordinator.
VII.
SMS_RECEIVED
This table saves the messages received from the user with the event ids and the number of
hours they worked for each of these events.
Table 8: SMS_Received Entities
Fields
Field Name
Data type
Key
Track id
track_id
Int
Primary
Volunteer id
vol_id
Int
Event id
event_id
Int
Hours Worked
Hours_sent
Int
Status
Status
nchar(10)
SMS Date
Sms_date
Datetime
Phone Number
Phone_number
Varchar(12)
Email Address
Email_address
Nvarchar(50)
4.5.
Implementation
The above system design has been implemented using Microsoft Visual studio 2008 for
application development using DOT NET framework 3.5 to write the business logic. The
data access layer has been implemented using C#.NET and ADO.NET. The database has
32
been implemented in SQL Server 2005 Express. The application server and IIS server
were implemented on a public server. The independent server slice was leased out from a
vendor. The system has been implemented on Windows Server platform. The
implementation of the system was very crucial as the design has complex interaction
between client, IIS server, application server, internet, mobile network and the database.
The SMS gateway API connects the SMS module of the application that resides on the
application server to the mobile device through the mobile network.
Code implementation:
Error checks and validations have been added throughout in order to catch all the possible
exceptions that can be generated.
Co-ordinator Module implementation:

Approve/reject volunteers for events
The co-ordinator can approve or reject volunteers at his or her discretion based on the
eligibility.
protected void btnApprove_Click(object sender, EventArgs e){
if (GridViewEvents.SelectedIndex != -1)
string
{
vol_id
=
GridViewEvents.SelectedRow.Cells[1].Text.ToString();
string
vol_event_id
GridViewEvents.SelectedRow.Cells[2].Text.ToString();
=
33
In the above code snippet, firstly you need to check if the co-ordinator has selected an
entry to approve or reject. Following this, the update command is run to update the entry
in the volunteer table.
SQLCredentials.SQLCredentials
sqlHomeCredObj
=
new
SQLCredentials.SQLCredentials();
string var = sqlHomeCredObj.SQLSERVERCONNSTRING;
SqlConnection cs = new SqlConnection(var);
SqlDataAdapter da = new SqlDataAdapter();
da.UpdateCommand
=
VOLUNTEERS_DB.dbo.VOLUNTEER
new
SET
SqlCommand("UPDATE
approval
=
'Approved'
where vol_id = " + vol_id + " and vol_event_id = " +
vol_event_id, cs);
The connection is opened and the query is executed upon which the connection is closed
and the selected grid view is reset to unselected.
cs.Open();
da.UpdateCommand.ExecuteNonQuery();
cs.Close();
GridViewEvents.SelectedIndex = -1;
Response.Redirect("Coordinator.aspx");
}
else
{
lblVolRequests.Text = "Please Select the Request!";
}
}
34
In order to hide the columns of the gridview, we need to use the rowdatabound property.
protected
void
GridViewEvents_RowDataBound(object
GridViewRowEventArgs e)
sender,
{
e.Row.Cells[1].Visible = false;
e.Row.Cells[2].Visible = false;
e.Row.Cells[9].Visible = false;
}
Similar function has been used to reject the volunteer requests that set the approval status
to rejected.

Approve/reject SMS request for updating hours worked
The volunteers send out a request to update the hours they worked into the system. The
volunteer id and the volunteer event id is extracted from the grid view and used to update
the database. The implementation of this function is similar to the one above.
protected void btnReject_Click(object sender, EventArgs e){
if (GridViewEvents.SelectedIndex != -1){
string vol_id =
GridViewEvents.SelectedRow.Cells[1].Text.ToString();
string vol_event_id =
GridViewEvents.SelectedRow.Cells[2].Text.ToString();
On establishing the connection to the database, the update command is run which updates
the entry in the database.
35
da.UpdateCommand = new SqlCommand("UPDATE
VOLUNTEERS_DB.dbo.VOLUNTEER SET approval = 'Rejected' where
vol_id = " + vol_id + " and vol_event_id = " + vol_event_id, cs);
cs.Open();
da.UpdateCommand.ExecuteNonQuery();
cs.Close();
GridViewEvents.SelectedIndex = -1;
Response.Redirect("Coordinator.aspx"); }
else {
lblVolRequests.Text = "Please Select the Request!"; }
}
The approve SMS function works in the similar way and adds the hours worked to the
hours present in the system.

Terminate volunteer
In order to terminate a volunteer from the system, the volunteer id is extracted from the
grid view and firstly the termination date is set to system date, which is updated in the
Volunteer Details table.
//Set Termination Date
da.UpdateCommand = new SqlCommand("UPDATE
VOLUNTEERS_DB.dbo.VOLUNTEER_DETAILS SET termination_date = '" +
DateTime.Now.ToString() + "' where volunteer_id = " + vol_id,
cs);
36
cs.Open();
da.UpdateCommand.ExecuteNonQuery();
Secondly, the login of the volunteer is disabled in the Volunteer Login table.
//Disable Login
da.UpdateCommand = new SqlCommand("UPDATE
VOLUNTEERS_DB.dbo.VOL_LOGIN SET vol_password = 'terminated' WHERE
type_login = 'volunteer' AND vol_or_co_id = " + vol_id, cs);
da.UpdateCommand.ExecuteNonQuery();
The various events that the volunteer applied to are rejected and updated in the Volunteer
table.
//Reject All Volunteered Events
da.UpdateCommand = new SqlCommand("UPDATE
VOLUNTEERS_DB.dbo.VOLUNTEER SET approval = 'Rejected' where
vol_id = " + vol_id, cs);
da.UpdateCommand.ExecuteNonQuery();
cs.Close();
GridViewVolunteer.SelectedIndex = -1;
lblTerminate.Text = "Volunteer terminated Successfully!";
populateVolunteers();
The list is populated again.
37

Generating excel sheet
Using a string builder class, the stored data is written into an Excel file while
constructing the response. The export data library is used for the implementation. It
converts the data table to html table format and then writed the data as output stream
to a csv.
private void ExportToCsvFromDataSet(DataSet dsExport) {
bool IsOutputStreamed = false;
Firstly, you get the data table you want to export.
try{
StringBuilder dataToExport = new StringBuilder();
foreach (DataTable dtExport in dsExport.Tables)
{
The header of the report is generated here and appended.
string headerToExport = string.Empty;
foreach (DataColumn dCol in dtExport.Columns)
headerToExport = (char)34 + dCol.ColumnName + (char)34 +
(char)44;
headerToExport.Remove(headerToExport.Length - 1, 1);
headerToExport
=
headerToExport
+
Environment.NewLine
Environment.NewLine;
dataToExport.Append(headerToExport);
The body of the excel sheet is generated and appended.
string bodyToExport = string.Empty;
foreach (DataRow dRow in dtExport.Rows)
{
+
38
foreach (object obj in dRow.ItemArray)
bodyToExport = bodyToExport + obj.ToString() + (char)44;
bodyToExport.Remove(bodyToExport.Length - 1, 1);
bodyToExport = bodyToExport + Environment.NewLine;
}
dataToExport.Append(bodyToExport);
dataToExport.Append(Environment.NewLine);
dataToExport.Append(Environment.NewLine);
The content type of response object is set to excel and the file name is added.
if (dataToExport.ToString().Length != 0){
Response.Clear();
Response.ContentType = "Text/vnd.ms-excel";
Response.AddHeader("Content-Disposition",
"attachment;filename=report.csv");
Response.Write(dataToExport.ToString());
IsOutputStreamed = true;
}}
}

Co-ordinator Post Event
In order to post an event, the insert command is used which collects the parameters from
the web page.
SqlDataAdapter da = new SqlDataAdapter();
da.InsertCommand
=
new
SqlCommand("INSERT
INTO
VOLUNTEERS_DB.dbo.EVENTS(event_dept_id,event_name,event_type,even
39
t_description,eligibility,event_start_date,event_end_date,event_e
xpenses,num_registered,num_attended,notes)
VALUES(@DeptId,@EventName,@EventType,@Description,@Eligibility,@S
tartDate,@EndDate,@Expenses,@No_Reg,@No_Attended,@Notes)", cs);
The parameters are added to the insert command as follows using the SQL data types
they have present in the database.
da.InsertCommand.Parameters.Add("@DeptId", SqlDbType.Int).Value =
DropDownListDeptName.SelectedValue;
da.InsertCommand.Parameters.Add("@EventName",
SqlDbType.VarChar).Value = txtEventName.Text;
da.InsertCommand.Parameters.Add("@EventType",
SqlDbType.VarChar).Value = DropDownListType.Text;
da.InsertCommand.Parameters.Add("@Description",
SqlDbType.VarChar).Value = txtDescription.Text;
da.InsertCommand.Parameters.Add("@Eligibility",
SqlDbType.VarChar).Value = txtEligibility.Text;
da.InsertCommand.Parameters.Add("@StartDate",
SqlDbType.DateTime).Value = txtStartDate.Text;
da.InsertCommand.Parameters.Add("@EndDate",
SqlDbType.DateTime).Value = txtEndDate.Text;
da.InsertCommand.Parameters.Add("@Expenses",
SqlDbType.VarChar).Value = txtExpenses.Text;
da.InsertCommand.Parameters.Add("@No_Reg", SqlDbType.Int).Value =
"0";
40
da.InsertCommand.Parameters.Add("@No_Attended",
SqlDbType.Int).Value = "0";
da.InsertCommand.Parameters.Add("@Notes",
SqlDbType.VarChar).Value = txtNotes.Text;
da.InsertCommand.ExecuteNonQuery();
cs.Close();
Response.Redirect("Vol_View_Event.aspx");
}
catch (Exception _ex){
WebMsgBox.WebMsgBox.Show(_ex.Message);
}
}
Volunteer Module implementation:

Applying for events
While applying for events, the department id, event id and the event name are extracted
from the grid and the volunteer id is found out from the username in the session.
da.SelectCommand = new SqlCommand ("SELECT vol_or_co_id FROM
VOLUNTEERS_DB.dbo.VOL_LOGIN WHERE username = '" + sUserName +
"'", cs);
da.Fill(ds);
string vol_id = ds.Tables[0].Rows[0][0].ToString();
An entry is added to the Volunteer table using all the values.
41
da.InsertCommand = new SqlCommand("INSERT INTO
VOLUNTEERS_DB.dbo.VOLUNTEER(vol_id,vol_event_id,vol_dept_id,appro
val)VALUES('"+vol_id+"','"+event_id+"','"+dept_id+"','Pending')",
cs);
da.InsertCommand.ExecuteNonQuery();
cs.Close();
lblApplied.Text="Successfully applied to "+event_name+"";
populateEvents();
populateStatus();
GridViewEventsApply.SelectedIndex = -1;

}
Updating profile information
Following is a short code snippet of how to extract information from the database and
display it on the web page. The same page is used for creating a new volunteer as well as
editing the volunteer information. If the operator is edit, the page knows that it is editing
the profile.
if (Request.QueryString["op"].ToString() == "edit"){
btnSubmit.Visible = false;
btnUpdate.Visible = true;
SQLCredentials.SQLCredentials sqlHomeCredObj = new
SQLCredentials.SQLCredentials();
string var = sqlHomeCredObj.SQLSERVERCONNSTRING;
SqlConnection cs = new SqlConnection(var);
42
SqlDataAdapter da = new SqlDataAdapter();
DataSet ds = new DataSet();
cs.Open();
string sUserName = Session["UserName"].ToString();
Select all the information needed from the volunteer details table
da.SelectCommand = new SqlCommand("SELECT
a.first_name,a.middle_name,a.last_name,a.salutation,a.postal_add,
a.apartment_no,a.city,a.zip_code,a.state,a.day_phone,a.evening_ph
one,a.fax_phone,a.email_add,a.alt_email_add,a.birth_date,a.sex,a.
ethnicity,a.hire_date,a.times_available,a.employment_type,a.volun
teering_reason,a.awards,a.training,a.skills_set,a.emergency_conta
ct FROM VOLUNTEERS_DB.dbo.VOLUNTEER_DETAILS
a,VOLUNTEERS_DB.dbo.VOL_LOGIN b WHERE a.volunteer_id =
b.vol_or_co_id AND b.username = '" + sUserName + "'", cs);
Fill the dataset with the values retrieved from the table.
da.Fill(ds);
txtFirstName.Text =
ds.Tables[0].Rows[0]["first_name"].ToString();
txtFirstName.Enabled = false;
txtMiddleName.Text =
ds.Tables[0].Rows[0]["middle_name"].ToString();
txtLastName.Text = ds.Tables[0].Rows[0]["last_name"].ToString();
43

Send SMS Implementation:
The data that needs to be sent to the user in the SMS is retrieved from the database and
the message string is generated. Firstly the phone number of the user is extracted as
shown below.
string sPhoneNumber = ds.Tables[0].Rows[0][0].ToString();
After this, the message is generated and the events and the hours are appended to the
message string. The initial message string includes the username, password, phone
number and message according to the specifications of the Ez Texting API. The message
string generated is shown below.
string sMsg = "user=manali&pass=volvm;;84&phonenumber="+
sPhoneNumber +"&message=test message=VOLVM ";
for(int i =0;i < ds.Tables[0].Rows.Count;i++){
sMsg += (" EVTID:" + ds.Tables[0].Rows[i][0].ToString() + "
EVTHRS:" + ds.Tables[0].Rows[i][1].ToString() ); }
The send SMS function is called following this. In this function, an http web request is
used for sending SMS. Firstly, a request is created for the URL.
WebRequest w =
WebRequest.Create("https://app.eztexting.com/api/sending/");
w.Method = "POST";
w.ContentType = "application/x-www-form-urlencoded";
The request stream is written and the stream containing the content is returned to the
server. The client running on the computer connects a socket to the server and sends an
HTTP POST request along with message contents. The GetRequestStream method
44
initiates a request to send data to the internet resource and returns a stream instance for
sending data to the internet resource. The code snippet is as follows.
using (Stream writeStream = w.GetRequestStream()){
byte[] bytes = Encoding.UTF8.GetBytes(sMsg);
writeStream.Write(bytes, 0, bytes.Length);
}
The GetResponse method sends a request to an internet resource and returns a
WebResponse instance. Since the request has already been initiated by a call to
GetRequestStream, the GetResponse method completes the request and returns any
response.
using (HttpWebResponse r = (HttpWebResponse)w.GetResponse()){
using(Stream responseStream = r.GetResponseStream()){
using(StreamReader readStream = new StreamReader(responseStream,
Encoding.UTF8)){
ret = readStream.ReadToEnd();
}
} }
The GetResponseStream method is used upon receiving the response to get the stream
containing content returned by the server. The Ex texting’s text messaging API does the
operation of forwarding the Short Message Service to the appropriate mobile carrier and
then to the user. A sample of the message sent from the system is as shown below.
45
Figure 10: SMS Snapshot

Receive SMS Implementation:
The SMS sent out by the user is received by the mobile carrier and forwarded by the Ez
Texting Server to a base URL with the specified parameters. A server listening on the
base URL with the specified parameters can easily process the messages. Once the web
server receives a HTTP request, the callback function is called. The method will end the
asynchronous operation and immediately start a new context for the next request. The
method can then process the incoming request. Each parameter of the request can be
accessed by its name. The query string received extracts the phone number and the
message from it. The from parameter is used for extracting the phone number.
46
string mysender = Request.QueryString["from"].ToString();
da.SelectCommand =new SqlCommand("SELECT a.volunteer_id,
b.vol_event_id,a.first_name,a.last_name FROM
[VOLUNTEERS_DB].[dbo].[VOLUNTEER_DETAILS]
a,[VOLUNTEERS_DB].[dbo].[VOLUNTEER] b where a.volunteer_id =
b.vol_id and a.day_phone = " + mysender, cs);
The system then checks to see if the phone number is registered with the Volunteer
Management System using the Select command as shown above.
string original_message =
Request.QueryString["message"].ToString();
string[] message;
message = original_message.Split(' ');
int ievents = (message.Count())/3;
It splits the message according to the number of entries of events received based on the
keyword VOLVM and then saves each of the hours based on the event id into the
database. The following code shows how the message is retrieved and saved into the
database.
for (int i = 0; i < ievents; i++){
string vol_id = ds.Tables[0].Rows[0][0].ToString();
string vol_event_id = message[i * 3 + 1];
string vol_hrs = message[i * 3 + 2];
da.InsertCommand = new SqlCommand("INSERT INTO
VOLUNTEERS_DB.dbo.SMS_RECEIVED(vol_id,event_id,hours_sent,s
47
tatus,sms_date,phone_number,approval_date)
VALUES(@VolId,@VolEventId,@Hours,@Status,@Date,@PhoneNo,@Pe
ndingDate)", cs);
The parameters are added to the insert command the query is executed. These entries are
then available for the coordinator to approve. For the purpose of implementation in order
to test for the functionality, a temporary table SMS_NEW was used to save what the
server receives. A sample of the SMS sent by the user can be seen above which is
received by the system.
4.6.
User Interface
The log in page enables all users to view the events without having to log in to the
system. The page provides options for new users to register to the site as well as to
recover their password if forgotten. Volunteers and co-ordinators both login from this
page selecting their login type from the dropdown list which will take them to their
respective home pages.
48
Figure 11: Login Page
Volunteer Accessed Pages:
This is the Volunteer home page on logging in where the volunteer can apply for
events, enter hours for the events worked and view the status of the applied events. On
selecting a particular event, the user can enter hours and save it which is as shown below.
49
Figure 12: Volunteer Home Page
The new volunteers can sign up through the registration page shown below which accepts
the personal information of the volunteers along with their contact and volunteering
information.
50
Figure 13: Volunteer Registration Page
The create login page shows up upon submitting this information. The email address is
by default the username of the user.
51
Figure 14: Create Login Page
52
Co-ordinator accessed pages:
The home page of the coordinator upon logging in is shown below.
Figure 15: Coordinator Home Page
The co-ordinator is provided with the following options:
53
a. View Events
Figure 16: View Events Page
The coordinator can generate sign-up sheets for the various events from this page
which exports the volunteers information into an Excel sheet.
Figure 17: Generate Sign-up Sheets Page
54
If no volunteers are registered, the page will display no entries found for it.
b. Post Event
The coordinators can post the events to the site through this page.
Figure 18: Post Events Page
c. Export Active Volunteers
A report can be generated for the volunteers that are active in the system.
55
Figure 19: Export Active Volunteers Page
d. Export Volunteers to Excel
This option exports the volunteer’s information to an Excel sheet.
e. View Departments Page
The coordinators can view the departments present in the system from this page.
56
Figure 20: View Departments Page
f. Manage Volunteers
Through this page, the coordinator can terminate any volunteer. The volunteer’s
login gets disabled and he/she can no longer access the system. The events that
were previously applied to get rejected.
Figure 21: Terminate Volunteers Page
57
g. Approve/Reject Volunteers for the events
The coordinators use this option to approve or reject the volunteer requests
received in the system.
h. Approve/Reject Volunteer hours received through SMS
The coordinators use this option to approve or reject the SMS requests for
updating the hours worked sent by the volunteers to the system.
i. Send SMS to volunteers to update their hours
The volunteers working for various events will be displayed in a list on the page.
The co-ordinator can select to send the SMS to a particular volunteer. A
screenshot of the SMS sent to the user with the list of events along with the hours
present in the database is shown below.
Figure 22: Send SMS Page
58
j. Generate Dynamic Reports
The dynamic reports generation page has been implemented with the help of a stored
procedure at the back end that accepts the parameters of start date, end date and the
status selected by the user. These parameters then query the database to extract the
required information for the report. The user can select any date range and view the
pending, approved and rejected requests. If no records are found, it will display so.
Below is the screenshot of how the page looks like.
Figure 23: Generate Dynamic Reports Page
You can export the report if you wish to by clicking on the leftmost option.
59
Figure 24: Export options of Crystal Report
The browser opens a pop up window that gives you the options to export into PDF
format, Microsoft Word, Microsoft Excel and rich text format as shown above.
60
Chapter 5
CONCLUSION
5.1. Summary
The volunteer management system will be used by the City of Sacramento
coordinators to manage the volunteers and the various events of the departments.
It will be available on the internet at www.cityofsacramento.org/volunteers/ for
anyone to access. The projects major goal was to provide the City with a
Management Solution. The project demonstrated a method of communicating
from the database to the user via a Short Messaging Service as well as updating
the database with a Short Message Service from the user. The project
accomplished the development of a system, which is not available freely in the
market with the different features included. One thing I would do differently if I
were to do this project again given the time and infrastructure would be to
integrate a GSM modem and implement the functionality of the third party
service, which Ez Texting provided to me. This project has been a great learning
opportunity and the research can be used further.
5.2. Future Work
The system holds the scope for adding a number of more facilities to the
ones that currently exist. Few of those are as follows:

Sending the volunteers event updates and other information through SMS if
they wish to opt for it. Sending message to volunteers would be subject under
61
the jurisdiction of the California laws on text messaging and they can opt out
to stop receiving messages if they wish to.

A real time secure payment system to accept donations to the site using the
credit card information of the donors.

Email reminders for the volunteers as well as co-ordinators.

Sending out birthday cards to the volunteers.

Allowing the facility to add and remove advertisements over the time using a
web interface.
62
BIBLIOGRAPHY
[1] http://www.volgistics.com , Accessed on August 14th, 2010
[2] http://www.ivolunteeronline.com , Accessed on August 20th, 2010
[3] http://www.cervistech.com/, Accessed on August 22th, 2010
[4] http://www.microsoft.com/sqlserver/2005/en/us/default.aspx , Accessed on October
1st, 2010
[5] http://www.coyotecommunications.com/tech/volmanage.html , Accessed on August
30th, 2010
[6] http://www.asp.net/get-started , Accessed on September 5th, 2010
[7] http://msdn.microsoft.com/en-us/library/ , Accessed on September 10th, 2010
[8] Microsoft SQL Server 2005,
http://www.microsoft.com/download/en/details.aspx?id=21844 , Accessed on August
28th, 2011
[9] http://en.wikipedia.org/wiki/.NET_Framework, Accessed on October 29th, 2011
[10] http://msdn.microsoft.com/en-us/library/zw4w595w(v=vs.80).aspx
[11] http://msdn.microsoft.com/en-US/library/ms173064(v=VS.80).aspx
[12] http://msdn.microsoft.com/library/z1zx9t92, Accessed on November 1st, 2011
[13] http://justtechnika.com/articles/free-sms-gateway-api/ , Accessed on October 15th,
2011
[14] http://www.eztexting.com , Accessed on October 20th, 2011
[15] http://msdn.microsoft.com/en-us/library/system.net.webrequest.aspx, Accessed on
November 4th, 2011
[16] http://www.godaddy.com/ , Accessed on October 28th, 2011
Download