Professional Documents
Culture Documents
Target Users
The main target users of the Wines Elementary School Event Volunteer and Proposal
Management System are:
● Parents – Parents are the main resource for volunteers of events and projects. They
will be the main users of that interact with the system.
● Students – Students are the event attendants. Parents rely on student enrollment
presence to have an account created for event volunteering.
● Staff – The schools’ working staff that are not classroom teachers.
● Teachers – Classroom teachers from kindergarten to 5th grade.
● PTO (Parents-teachers Organization) – Executive PTO members are responsible for
site administration, event creation (not in current scope) and assigning event
coordinator and volunteers.
Target Population
● 50 School staff and teachers (Hand counted from the staff list on the Wines website as of
November 2010)
● 40*6 students (Student from kindergarten to 5th grade, estimating 40 students per grade
year)
● 40*6*2 parents (We assume at least to parent/guardian will have user information stored
in the system)
Above is our estimated population for Wines Elementary School. There would be about 500-
600 in each regular year. As time goes on, legacy records will increase gradually because of the
graduation of 5th grade students.
Accounts
The normal user accounts will be created based on student enrollment basis. Parents who
want to sign up to volunteer need to use their children’s student account to log in. After
parent log in using their children’s student account, they are asked to select their parent
identity. Then they are able to sign up to volunteer for events as the parent identity they
select.
Staff and teachers have their own accounts too. As this point, their accounts are merely used
to check the events and volunteers information.
In this system, the system administrator will be assigned a special ‘admin’ account with full
permission to manage the database system. This permission would include create account,
create user information, and create the relationship among ‘users’ and ‘event management’.
As mentioned above, parents will not be assigned accounts to log in the system. They need to
log in with their children’s student account. The reasons for this design decision are as follows:
For the use of this system, we suggest that there is no need to give both
student and parent accounts. Since parents are the people who take action to
sign-up for volunteers while students are the attendants of the event (we
assume that student attendance is mandatory and there is no need to sign-
up), we decided to assign just one account to get this thing done. However,
according to the two reasons mentioned above, it’s better to create accounts
based on student enrollment basis. Therefore we present the final design that,
parents use student account to log in and select their parent identity
when they interact with the system.
Kelly wants to volunteer in her 1st grade son – Mikey’s class year-end Christmas Party. Her son
told about the party and told her that their teacher would like some parents to volunteer and
help out to decorate the classroom or provide snacks and drinks. However, Mikey forgot the
exact date of the party and Kelly isn’t sure whether she would have time to help during the
afternoon of that day. To make sure, she goes to the website and logs in. She clicks on the
Wine Volunteers – Event Calendar tab and checks the month of December. She easily finds the
date because the system default only shows events that are directly related to her son. She
clicks into the event and reads the event description. She clicks on the “I want to volunteer for
‘2010 Xmas Party’” checkbox and clicks on the [Submit] button. Before closing the website, she
goes to her “My Account” profile page to check the upcoming events that she had signed up.
Stacy is the IT manager of the Wine Elementary PTO and she is the main administrator of the
Wines Elementary School Volunteer and Proposal Registration System. She is also the main
event coordinator of the Annual Science Fair that will be happen next week. Since the day she
opened the volunteer sign-up, more parents than expected has registered to volunteer for the
event. Since she has to notify the volunteers a week before the happening event, she has to
decide which parents will be able to volunteer in the event today. She logs in to her account
and clicks on the Wine Volunteers – Event Calendar tab to check out the event that she
coordinates. She clicks on the Annual Science Fair Event and views the list of volunteers that
signed up.
Database Design
Instead of putting all types of users’ information into one “user” table, we separated
the information that is used to represent system roles and relationship from the basic contact
information. Under this design pattern, the central “user” table is only used to store the
contact information (including name, email and phone), while other information will be
recorded in different tables for different purpose. For example, the information about user
type (such as teachers, staff, students, parents and system administrators) is stored in
“user_type” table; the information about the relationship of parents and students is kept in
“parent_student” table.
The table “account” is used to store all the account information (account id and
password) for those users who are authorized to log into the system. The reason of separating
account information from “user” table is that based on our design, parents will be assigned to
their children’s identities within the system, which means they don’t have their own accounts
to login the system for viewing and volunteering. Instead, they can use their children’s
accounts.
The attribute “user id” from “user” table is used as foreign key in other tables to make
them connected to “user” table, ensuring data consistency.
In the database, every event will be stored in “event” table as one record, with the
information about title, description, event type (special event or regular event), current status
(pending, ongoing or past), assigned grade (if is a grade event), the coordinator (could be
teacher, staff or parent), and the proposal id (foreign key from “proposal” table, non-zero if is
an event created from a proposal).
The table “event_volunteer” is used to store the information about registration for
volunteering, with each record representing one application from parents. The stored
information includes event id (foreign key from “event” table), applicant’s id (linked to his user
id in “user” tables), volunteer time period, application status (approved or unapproved), and
application notes.
(3) Proposal related tables
In our system design, we included the process of proposal application. In this process,
students or their parent and submit their proposal of events through the system, instead of
writing on the paper. To implementing this submission process, two major tables are
designed: “proposal” table and “content” table.
The “proposal” table is used to store the general information of proposal, including title,
applicant’s id (foreign key from “user” table), type (from students or parents), current status
(approved or unapproved), and submission date. The detailed contents of each proposal are
stored in the “content” table, with one record representing one question within the proposal.
All these contents of the proposal can be retrieved based on their question id and formed a
complete paper-based proposal.
(1) Use the surrogate key to replace all the combined primary keys, making them
easier to be integrated by the framework we chose.
(2) Add a new table “admin” to store information about who has the admin permission
of the system, separated from “user_type” table.
(3) Add a new table “account_token” to support the function of automatic login.
(4) Add the missing attributes “start_date” and “end_date” in “event” table.
(5) Add the attribute “accountname” in “account” table to support the function of
using customized username to login the system.
(6) Cancel the foreign key relationship between “proposal” table and “event” table to
solve the problem of storing one event that is not from certain proposal.
Database Tables
User Related
ACCOUNT
Field Type Null Default Extra
ACCOUNT_TOKEN
Field Type Null Default Extra
ADMIN
Field Type Null Default Extra
STUDENT_GRADE
Field Type Null Default Extra
Grade smallint(6) No 0
TEACHER_GRADE
Field Type Null Default Extra
Grade smallint(6) No 0
USER_TYPE
Field Type Null Default Extra
Event Related
EVENT_VOLUNTEER
VolunteerID int(11) No 0
CoordinatorID int(11) No 0
Grade smallint(6) No 0
ProposalID int(11) No 0
Proposal related
PROPOSAL
Status enum('proved','unproved') No 0
E-R Diagrams
Figure 1 - User related tables
Figure 2 - Event related
System Implementation
The main functions related to user management include user login, user profile, user
related managements from administrator’s perspective.
a) User Login
• The login form for user to login the system with their account id (or account name)
and password.
Queries – all the existing queries are related to “account”, “account_token” tables, with the
purpose to:
b) User Profile
• the parent selection form only for parent to select their identity after they use their
children’s accounts to login
• the profile update form to update the user and other people’s (parents for student
user) contact information
Queries – all the existing queries are related to “user”, “account”, “user_type”,
“parent_student”, “teacher_grade”, “student_grade” tables, with the purpose to:
• load all related use info, including user's name, role(student, staff, teacher), user’s
permission(if is an admin), user’s contact info
• load all available parent choices for a specific student user
• load all related events (coordinated events, or volunteered events)
Reports – the reports related to this part include:
• user profile – display user’s contact info, and other related people’s contact info
(student only).
• related events list – display all events user coordinated or volunteered.
• the account creation form to create the account for users who have the authority
to possess an account (students, teachers or staff).
• The user creation form to create a new user for the system.
Queries – all the existing queries are related to “user”, “account”, “user_type”,
“parent_student”, “teacher_grade”, “student_grade” tables, with the purpose to:
• check who in the “user” table have the permission to register an account
• create an account for selected user to “account” table
• create a user to “user” table, and store his user type into “user_type” table
• store the related relationship into different relationship tables (such
as“parent_student”, “teacher_grade”, “student_grade” tables)
The main functions related to event management include event related management
from administrator’s perspective, event volunteering, and public event list.
b) Event volunteering
• the volunteering submission form for users to apply volunteering for certain event.
Queries – all the existing queries are related to “user”, “user_type”, “event”,
“event_volunteer” tables, with the purpose to:
Queries – all the existing queries are related to “user”, “user_type”, “event”,
“event_volunteer” tables, with the purpose to:
Sustainability
In order to make the system easy to develop and maintain, either for us to develop, or for
others to take over our work, we have deployed several approaches to enhance the
sustainability of the system.
In order to better facilitate our development in using PHP, we have chosen a lightweight
PHP MVC framework to support our development. Kohana is a PHP5 framework that uses the
Model View Controller architectural pattern. It is secure, lightweight, and easy to use.
When programming within the group, it is better to perform version control of the code.
We used Google code Project Hosting to help control code versions while revisions are being
made by each contributor. Revision control is any practice that tracks and provides control
over changes to source code. This allows software to be returned to an earlier stage of design
when needed (e.g. Rollback to a more stable version when critical problems occur in newer
version). By using version control we can ensure system sustainability because all revisions can
be compared and restored during future development.
Future Development
Currently we only have User Login, User Account Page, Event Calendar/Lists and Administrator
pages implemented. For future work, we hope that we can fully implement the site including
the functions that we had planned in our earlier project scope. The functions and pages that
we expect to implement for the system to function fully include the following:
Figure 5 - Kids Great Idea Proposal Form Figure 6 - Parent Great Idea Proposal Form
Figure 7 - Great Idea Proposal Management Page
● Report generation:
Report generating is a function that should be implemented when we have a database
system that collects data. It would be interesting to see things like, “Which parent
volunteered the most?” or “In which month did the school have the most parents
volunteering in event”, and so on. Our team thought about designing report layouts
for different types of reports and write queries that output data for simple analysis.
However, to make report useful for Wines Elementary School, we think that further
communication with the school would be needed before we start to design this part
of the system
Work:
Lei Shi
● Set up the environment for website development, including creating the Google
project for version control, configuring the Kohana framework for development.
● Converted the E-R diagram into SQL script, and created the database tables in MySQL.
● Implemented the user login function of the website.
● Implemented several functions under administrator’s page, including account creation,
user creation, event creation and event listing in administrator’s perspective.
Weihua Wang
● Implemented the “myevent” page under “My Account” menu. Also implemented the
back-end of the “myprofile” page under “My Account” menu (Lei helped the front-end
style for this page).
● Implemented the “description” page, “eventlist” page, and single “event” page under
“Wines Volunteers” menu to display details of each event, including event time, title,
and description, signed-up volunteer information, etc.
● Installation guide
Peggy Wong
UI Design (Phase I)
Figure 8 – UI Design Phase I (logged out)