Report finalx - Assembla

attentionclewInternet και Εφαρμογές Web

2 Φεβ 2013 (πριν από 4 χρόνια και 6 μήνες)

334 εμφανίσεις

Tom Maeckelberghe


ngo@eleanorcomputing.be


Tarik Menbhi


http://n
go.eleanorcomputing.be/

Christophe Van Auseloos

Dennis Vermaut























1


Table of contents



Table of contents

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

1

Hand in Hands

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

5

1.

Introduction

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

5

1.1

About the project

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

5

1.2

About the name and the logo

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

5

2.

Introducing the team members

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

6

Functional analysis

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

7

1.

Require
ments

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

7

1.1

Online platform

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

7

1.1.1

Smart matching

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

7

1.1.2

Log in system

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

7

1.1.3

Registration

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

7

1.1.4

Adding projects

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

7

1.1.5

Enrolling in projects

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

8

1.1.6

Interactive world map

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

8

1.1.7

Viewing profiles

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

8

1.1.8

Overviews

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

8

1.1.9

Notifications

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

8

1.1.10

RSS

Feed

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

8

1.1.11

Funds

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

9

1.1.12

Search methods

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

9

1.1.13

Contact

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

9

1.1.14

Marketi
ng

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

9

1.1.15

Data exchange

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

9

1.1.16

Multi linguistics

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

9

1.1.
17

General information

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

10

1.1.18

Community

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

10

1.1.19

Lay
-
out

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

10

1.2

Offline Ap
plication

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

10

1.2.1

Upload

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

10

1.2.2

Download

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

10

1.2.3

Lay
-
out

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

10

2.

Use cases

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

11

2.1

Introduction

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

11

2.2

Online
application

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

12

2


2.2.1

Login

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

12

2.2.1.1

Login

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

12

2.2.1.2

Password reminder

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

12

2.
2.2

Functions for everybody

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

13

2.2.2.1

Search (smart match)

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

13

2.2.2.2

Contact form

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

13

2.2.2.3

News feed

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

14

2.2.2.4

Change language

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

14

2.2.3

Organization account

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

15

2.2.3.1

Register organizations

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

15

2.2.3.2

Deactivate organizations

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

15

2.2.3.3

Edit organization information

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

16

2.2.4

Project account

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

16

2.2.4.
1

Add projects

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

16

2.2.4.2

Deactivate project

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

17

2.2.4.3

Edit project

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

17

2.2.5

Jo
b vacancy account
................................
................................
...............................

18

2.2.5.1

Add job vacancy

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

18

2.2.5.2

Edit job vacancy

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

18

2.2.
5.3

Deactivate
job vacancy

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

19

2.2.5.4

Set job vacancy as finished

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

19

2.2.6

Volunteer account

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

20

2.2.
6.1

Register Volunteers

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

20

2.2.6.2

Deactivate volunteers

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

20

2.2.6.3

Edit volunteer information

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

21

2.2.7

Community functions

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

21

2.2.7.1

Mailing

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

21

2.2.7.2

Comments

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

22

2.2.7.3

PM (
private message)

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

22

2.2.7.4

Avatar upload

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

23

2.2.7.5

Remove avatar

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

23

2.2.7.
6

Image upload

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

24

2.2.7.7

Make donations

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

24

2.2.8

Link volunteer with a job vacancy or project

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

25

2.2.8.1

Apply for job vacancy

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

25

2.2.8.2

Unsubscribe from a job vacancy

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

25

2.2.8.3

Find volunteers fitted for the job

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

26

3


2.2.8.4

Accept volunteer

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

26

2.2.8.5

Accept job vacancy

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

27

2.3

Off line use cases

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

28

2.3.1

Login

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

28

2.3.2

Sync

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

28

2.3.3

Write blogs

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

29

2.3.4

Read

blogs

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

29

2.3.5

Write PMs

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

30

2.3.6

Read PMs

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

30

Technical analysis

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

32

1.

Diagram

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

32

2.

User interface

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

33

1.1

Home page

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

33

1.2

Voluntee
r page

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

33

1.3

Subscribed volunteers

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

34

3.

Data model

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

35

4.

Design
patterns

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

36

Code docum
entation

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

37

1.

ApplicationController Class Reference (author: Tom Maeckelberghe & Tarik Menbhi)

37

1.1 Public Member Functions

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

37

1.2 Protected Member Functions

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

37

1.3 Properties

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

37

1.4 Constructor & Destructor Documentation

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

37

1.5 Member Function Documentation

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

37

1.6 Property Documentation

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

38

2.

AccountController Class Reference (authors: Tom Maeckelberghe, Tarik Menbhi &
Christophe Van Auseloos)

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

39

2.1 Public Member Functions

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

39

2.2 Protected Member Functions

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

40

2.3 Properties

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

40

2.4 Constructor & Destructor Documentation

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

40

2.5 Member Function Documentation

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

40

2.6 Property Documentation

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

42

3.

AdminController Class Reference (author: Tarik Menbhi)

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

43

3.1

Public Member Functions

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

43

3.2

Member Function Documentation

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

43

4.

BlogPostController Class Reference (author: Tarik Menbhi)

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

44

4


4.1

Public Member Functions

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

44

4.2

Member Function Documentation

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

44

5.

JobVacancyController Class Reference (author: Christophe Van Auseloos)

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

46

5.1

Public Member Functions

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

46

5.2

Member Function Documentation

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

46

6.

OrganizationController Class Reference (author: Tarik Menbhi)

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

48

6.1

Public Member Functions

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

48

6.2

Member Function Documentation

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

48

7.

ProjectController Class Reference (author: Christophe Van Auseloos)

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

50

7.1

Public Member Functions

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

50

7.2

Member Function Documentation

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

50

Varia

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

52

1.

Know issues

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

52

1.1

Image upload

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

52

1.2

Translat
ions

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

52

2.

User manual

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

53

2.1

Register

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

53

2.2

Login

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

53

2.3

User

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

54

2.4

Organization

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

54

2.5

Project

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

55

2.6

Job Vacancy

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

55

2.7

Blog

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

55

2.8

Administrator pages

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

56

3.

W
orkload

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

57

3.1

Tom Maeckelberghe

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

57

3.2

Tarik Menbhi

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

59

3.3

Christop
he Van Auseloos

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

63

3.4

Dennis Vermaut

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

66




5


Hand in Hands


1.

Introduction

1.1

About the project

The project ‘
Hand in Hands
’ is part of our current schooling as Academic Bachelor
Applied Computer Science at University College Ghent (
http://www.hogent.be
).


By

this project we aim to reach as much people and organizations as possible and bring
them together by offering them an on
-
line platform on which they can find each other.

The project would be two sided: on the one hand we have an online platform
(website)
which gathers as much organizations and/or volunteers as possible and smart match
them.


On the other hand we would provide an

offline

application that can be used to

sync
information and blogs from the on
-
line application.

That way, users will b
e able to
read/write content from/to the website when they have no internet connection.

1.2

About the name and
the
logo

The name has been chosen in function of the theme: goodwill. The main idea of goodwill
is to help with as many people as possible, to make a big difference.

In other words: many hands lighten the job. Also, non
-
profit organizations are in a never
ending s
earch for new help and new volunteers: a new hand to reach out to goodwill.


The same reasoning can be applied to our logo: the line of volunteers make one team to
help other people.











6


2.

Introducing the team members

Tom Maeckelberghe

studied at the University College of West
Flanders

in Kortrijk. He
got his degree of Multimedia and Communication Technology. During the 3rd year we
developed in team several web application projects both for school and companies using
web technologies su
ch as Ruby On Rails, JSF and ASP.NET.


Tarik Menbhi

got his degree of Professional Bachelor in Applied Computer Sciences at
University College Ghent in 2002 after which he worked for 5 years with a municipality.
In 2008 he got the urge to go back to colleg
e and enrolled himself at University College
Ghent to study for an Academic Bachelor in Applied Computer Science.


Christophe Van Auseloos

studied in Leuven

at the KHLeuven

for 3 year
s
, there he
achieved his degree ‘Professional Bachelor in Applied Compute
r Sciences’. During his
study years he developed big projects in teams with students or professional developers.


Dennis Vermaut

is a former student of the University College of West
Flanders

in
Bruges, where he got his degree of Professional Bachelor in Applied
Computer Sciences
.
His main IT activities are
web development

related and in particular PHP/MySQL based
websites.

For regular applications, he uses C#.NET.



7


Functional analysis

1.

Requirements


In this part we will describe the main functionality of our platform

and

the application
that will be

provided with this platform.


For each requirement a box will be displayed showing the name, priority (from 1 up to 9
with 1 being the most
important), the risk attached to the requirement (what if this part
fails/is missing) and the workload (in hours).


Requirement

Priority

Risk

Workload

1.1

Online platform

First we will describe the requirements for the online platform.

1.1.1

Smart matching

This fir
st requirement may seem a bit odd, but the core functionality of our platform is
strongly based upon this ‘technology’ and will reoccur in many other requirements. This
smart matching technology is the technique we will implement to link the different role
s
and content to each other in the most reliable and efficient way possible, based upon
user preferences (e.g. region, hours per week, organization preference, distance, abroad,
… ) .


Smart matching

1

1

30

1.1.2

Log in system

Another one of the basic
requirement for the platform is a log
-
in system. This is needed
because
,

on the platform we will have a strict separation of roles, such as administrators,
visitors

or guests
, volunteers

or sponsors
, organizations, etc.


Log in system

2

1

20

1.1.3

Registration

As we use a log
-
in system with roles, we will also have to provide a way to gain members
to our platform. People will be able to freely join the platform using a registration
procedure. This registration procedure can be divided into two core parts:
user

(volunteer, sponsor, project manager, …)
registration and organization registration, but
both are equally critical for the system so we will treat them as one requirement.


Registration

1

1

50

1.1.4

Adding projects

Linked to the registration of organizations, we have the possibility to add goodwill
projects to the system, so that organizations and volunteers can be linked to each other
8


(smart matching). As this link is the core meaning of the platform, this is very c
ritical
and highly rated.


Adding projects

1

1

40

1.1.5

Enrolling in projects

Just like with job offers, you can use the system to apply for a project. As this wou
ld be
one of the key features for

using the platform, this is as important as the ‘Adding
project
s’ requirement.


Enrolling in projects

2

3

10

1.1.6

Interactive world map

All of the projects will be displayed on an interactive world map that offers the users a
quick look at the number and location of projects. When clicking on a project, the user
gets a
short description and the internal link for more information


Interactive world map

1

3

25

1.1.7

Viewing profiles

This is the step after the registration and is thus applicable for both volunteers as
organizations. These profiles will also be used as results in

smart matching and search
operations. They will also aid the community to get to know each other.


Viewing profiles

3

1

40

1.1.8

Overviews

These overviews are general ‘lists’ of the latest actions, projects ... In other words: quick
views on the new data to
give a starting jump to the visitor. These overviews can also be
generated based upon the smart matching technology.


Overviews

4

2

20

1.1.9

Notifications

Notifications are used by the ‘system’. This means this is not a direct request from a
user, but is
‘launched’ by another action in the background. These notifications can be
set or unset by the user, but can provide a direct and fast way for information.


Notifications

4

5

20

1.1.10

RSS Feed

Not many users know the functionality, nor the use of RSS Feeds (XML
), but for those
who do, this is a very affective and straight
-
forward way to be notified of new content.
Due to the large amount of information our platform may offer, user custom RSS Feeds
may be a very useful requirement.


RSS Feeds

8

9

20

9


1.1.11

Funds

As an
extra option besides volunteering, people can also financially aid organizations in
two ways: by acting as a sponsor for the website (and so having an extra asset for their
selves) or by donating money to organizations, projects, etc.


Funds

5

5

20

1.1.12

Search

methods

These search methods are based on the smart matching technology, but are considered a
separate requirement, because the search ‘forms’ will offer a lot of filtering (location,
interests, time, degree, …) options and extra settings for the technolo
gy to work with.
Also the search engine will be frequently used both by organizations as volunteers.


Search methods

2

1

50

1.1.13

Contact

Contacting each other (other users or the administrators or …) will be also provided in a
transparent and privacy safe
environment. We will offer our users the means to contact
organizations or entire user ‘groups’ (based upon their settings and again the smart
matching technology) without divulging their personal information.


Contact

6

4

40

1.1.14

Marketing

Marketing is a very

important requirement for the platform to reach its full potential,
but not for its main functionality, both internal as external. Internal marketing can be
considered as Facebook implementations and other popular community exchange
functionalities. Exter
nal marketing is what we see as attracting organizations,
exchanging links, etc.


Marketing

6

9

20

1.1.15

Data exchange

Exchanging data is considered a requirement, because a platform can’t work without
actual data and besides: a platform with a minimum of data will grow faster and bigger
than an empty platform. That way it would be a very tactical move to have some quality

public relations and connections, so we have two sided agreements with some of the
bigger organizations. This could imply scraping RSS Feeds, read rights on certain
databases, etc.


Data exchange

3

9

50

1.1.16

Multi linguistics

As our goal is to reach as much
public as possible, it would be a very strong tactic to
provide multiple languages, with English as main language. This language ‘module’ has
to be as transparent as possible, so languages are independent of the interface. To offer
as much as usability as
possible, we will provide XML import and export functionality for
languages.


10


Multi linguistics

4

9

60

1.1.17

General information

When it comes to non
-
profit organizations and goodwill related issues, there’s a lot of
information and questions, so we will try to

offer a separate part (think Wiki) with as
much information as possible (FAQ’s, regulations, etc.).


General information

9

9

20

1.1.18

Community

As we have a broad range of users, we already have
a sort of a community which has

a
lot to tell and a lot of inform
ation to share. To give this source of information a way to
inform rest of the community, we will provide typical community functions, like blog
options, photo albums, comments on projects/pictures/blogs and of course a forum.


Community

7

9

90

1.1.19

Lay
-
out

We

consider lay
-
out as part of the requirements, because a lay
-
out can make the
difference between a platform which will be visited by people and one that’s rather
avoided. One time visitors are not the public we need, so we need to provide an
environment wh
ere ours users like to spend time in.


Lay
-
out

2

2

40

1.2


Offline Application

S
tandalone application

will be used by anyone who has no internet connection and still
wants to write diary or a blog.

When the application is connected to the internet, the
blog will be added to the user’s blog on the website.

1.2.1

Upload

The written blog
s/PMs

will be uploaded to the website when there is internet
connection.


Blog upload

2

4

25

1.2.2

Download

Blogs or PMs,
concerning the user, will be downloaded to the application. So the user can
read blogs/PMs offline.


Blog upload

2

4

25

1.2.3

Lay
-
out

As mentioned in the online application requirements, the lay
-
out is important.

The user will have a overview of the blogs he m
ade.


Lay
-
out

2

2

20



11


2.

Use cases

2.1

Introduction

A

use case is a description of a system's behavior as it responds to a request that
originates from outside of that system. Also these use cases can point out more
requirements than what you had in mind at first or limita
tions you have to take notice
o
f.


The web application has
3

types of users
; guests, volunteers and administrators

and 2
types of users extracted from volunteers: project manager and organization manager.

Guests

are the visitors of the website; they are only

allowed to the public functions
.


Administrators

have
access to all the

functions of the

web

application
.

In other words;
a
n

administrator is a guest, a volunteer, a project manager and a organization manager.

When a person registers to the web application, he becomes a
volunteer
. The vo
lunteer
will be able to donate, subscribe, blog, …
.

The volunteer will also be able to add a new organization to the website.
After an
administrator has accepted the organization
, the volunteer will have the status of
organization manager

for that
orga
nization.

Organization managers can add projects to their organization. These projects are
managed by
project managers
, the organization manager points out the project
managers
from

the volunteers.


In order of how many functions the user is allowed to

(from low to high)
:



Guests



Volunteers

o

Project manager

o

Organization manager



Administrators




Volunteers can apply for a
job
vacancy
. A job
vacancy

is

part of a
project

of a
n

organization
.


For example:
a
n

organization wants to
build a house somewhere.

The organization needs people to build walls, to build the roof, to install water pipes, … .

All these different jobs can be added to the project as a ‘job
vacancy
’.

That way
volunteers can efficiently pick out the job that is best fitted.





12


2.2


Online
application

2.2.1

Login

2.2.1.1

Login

Purpose
: To authenticate and check authorization for the user
.

Short description
: The log
in grants user rights to the specified user
.

Actors
: Administrator, Volunteer

Frequency
: High

Scalability
: Average

Criticality
: Very high

Indirect demands
: the user should exist

Preconditions
: the user exists and knows username and password

Post conditions
: the user is logged in and has sufficient rights

Primary way
:


Enters username


Enters password


Chooses to store
login

information or not


Hits
login

Use cases related to primary way
: /

Alternatives
: The user is automatically logged in due to past login and he/she chose to
save the information

Use cases related to alternatives
: /

Exceptions
: If the password is
changed the alternative way cannot be used, the primary
way must be used

Use cases related to exceptions
:
Login

Remarks
: For the automatic
login

feature the browser must support cookies

2.2.1.2

Password reminder

Purpose
: Password reminder

Short description
: To

remind registered users of their password.

Actors
:
Administrator, Volunteer

Frequency
: Low

Scalability
: Low

Criticality
: Low

Indirect demands
: the user needs to
remember

his username

Preconditions
: /

Post conditions
: the user receives his password
in his inbox

Primary way
:

• User browses to the web application

• Fills in his username

• Clicks on the ‘forgot my password’ button, underneath the
login

box

Use cases related to primary way
:
Login

Alternatives
: /

Use cases related to alternatives
: /

Exceptions
: /

Use cases related to exceptions
: /

Remarks
:
A cookie will be placed on the user’s hard disk.

13


2.2.2

Functions for everybody

2.2.2.1

Search

(smart match)

Purpose
: To find projects, organizations, volunteers

Short description
: Guests are able to perform a search on organizations or projects.

Administrators and volunteers have the
extra
right to perform a search on volunteers.

Actors
: Administrator, Volunteer, G
uest

Frequency
:
Average

Scalability
: Low

Criticality
: Average

Indirect demands
: /

Preconditions
: /

Post conditions
: Data from the database is searched, and shown to the user.

Primary way
:

• The user types in the search keyword into the search box (that’s shown on every
page)

• The user hits enter.

Use cases rel
ated to primary way
: /

Alternatives
:

• The user browses to the specified page for volunteers or organizations or projects.

• Clicks on advanced search, that is located underneath the search box.

• Fills in additional information (for example:
a country
for organization, the start date
of a project, … )

Use cases related to alternatives
: /

Exceptions
: /

Use cases related to exceptions
: /

Remarks
:
The smart search will automatically determine if the search is
for

volunteers
or organizations or projects. This means that on every page

exactly

the same search box
will be shown.

On the other hand, the advanced search will be different

for every page
.

2.2.2.2

Contact form

Purpose
: Lets users contact the administrators

Short
description
:
Lets users contact the administrators

Actors
:
Administrator,
V
olunteer,
G
uest

Frequency
: Low

Scalability
: Low

Criticality
: Low

Indirect demands
: /

Preconditions
: /

Post conditions
: Administrators receive a message

Primary way
:

• User

clicks on ‘contact’

• Enter message

• Hit submit button

Use cases related to primary way
: /

Alternatives
: /

Use cases related to alternatives
: /

Exceptions
: Message cannot be empty.

14


Use cases related to exceptions
: /

Remarks
:
The user’s contact
message will be saved on a secure webpage.
Administrators will be notified there is a new message on their ‘contact page’. A
administrator will have to reply on this page. When a contact message is replied, the
message will be marked ‘done’.

That way a use
r won’t be receiving answers from different administrators.

2.2.2.3

News feed

Purpose
:
Lets users subscribe to a project, organization, project or volunteer. The user
will be kept up
-
to
-
date with news about the subscribed item.

Short description
:
Lets users subs
cribe to a project, organization
, project

or volunteer.
The user

will be kept up
-
to
-
date with news about the subscribed item.

Actors
: V
olunteer

Frequency
: Low

Scalability
: Low

Criticality
: Low

Indirect demands
:
The user needs to have a
n

email address.

Preconditions
: /

Post conditions
: User
receives news

of

a project, organization or volunteer.

Primary way
:

• User browses to the project or profile page

• User hits ‘subscribe’

Use cases related to primary way
:
login

Alternatives
: /

Use cases related to alternatives
: /

Exceptions
: /

Use cases related to exceptions
: /

Remarks
:
The user is able to chose how he wants to be notified (email, RSS, …)

for each
object

(blog of a volunteer/organization, PMs, …)
.

2.2.2.4

Change language

Purpose
:
Lets users change to a certain language.

Short description:

Lets users change to a certain language.

Actors
: Administrator, V
olunteers,
G
uests

Frequency
: Average

Scalability
: Low

Criticality
: Average

Indirect demands
: /

Preconditions
: /

Post
conditions
: The website is translated in the specified language.

Primary way
:

• Hits ‘nl’, ‘fr’, ‘en’ links

Use cases related to primary way
: /

Alternatives
: /

Use cases related to alternatives
: /

Exceptions
: Learn another language

Use cases
related to exceptions
: /

Remarks:
If a user thinks a sentence is

n
o
t correct translated, he will have the
15


functionality to improve the translation.

2.2.3

Organization account

2.2.3.1

Register organizations

Purpose
: To register
organizations

Short description
:
To
register organizations

Actors
:
Volunteers, Administrators

Frequency
: Average

Scalability
: Average

Criticality
: Very high

Indirect demands
:
the volunteer who registers the organization needs to be the
organization
manager.

Preconditions
: /

Post
conditions
: the organization i
s added to the database, administrators will have to
confirm the registration
. And the volunteer will be the organization manager.

Primary way
:


Volunteer

clicks on the add organization button

• Enters
the
organization
information

• Hits register and a confirmation mail is sent to the organization.

• Clicks on the confirmation link he received by mail

• A administrator confirms the registration

Use cases related to primary way
: /

Alternatives
:
/

Use cases related to
alternatives
: /

Exceptions
: If the organization name or the email address already exists in the
database, the organization will have to choose another one.

Use cases related to exceptions
: Register volunteer, Register project

Remarks
:
It is possible to
have multiple organization managers. See the data model for
the organization information.

2.2.3.2

Deactivate organizations

Purpose
: Deactivate organizations

Short description
: Lets administrators deactivate organizations

Actors
: Administrators

Frequency
: Low

Scalability
: Low

Criticality
: Low

Indirect demands
: /

Preconditions
: /

Post conditions
: The organization is deactivated. Subscribed volunteers receive a mail.

Primary way
:

• Administrator browses to the organization web page

• Clicks on the
organization

• Clicks on the ‘deactivate organization’ button

• Hits deactivate

Use cases related to primary way
:
login
, register organization

Alternatives
: /

16


Use cases related to alternatives
: /

Exceptions
: The organization cannot be deactivated if
the organization has projects in
the future.

Use cases related to exceptions
: /

Remarks
:
The administrator can choose if the organization will be visible or invisible.

2.2.3.3

Edit organization information

Purpose
: Edit organizations information

Short
description
: Change organization information (address, email address, … )

Actors
:
Organization manager
, Administrators

Frequency
: Low

Scalability
: Low

Criticality
: Low

Indirect demands
: /

Preconditions
: /

Post conditions
: The organization
information is changed

Primary way
:

• Organization browses to its ‘profile page’

• Clicks on the ‘change information’ button

• Changes organization information

• Hits submit

Use cases related to primary way
:
login
, register organization

Alternatives
:
Administrator can edit organization information

• Administration browses to a organization profile

• Clicks on the ‘change information’ button

• Changes organization information

• Hits submit

Use cases related to alternatives
: Organization search

Exceptions
: /

Use cases related to exceptions
: /

Remarks
:
See the data model for the organization information.

Only the organization information can be changed, not the projects.

2.2.4

Project account

2.2.4.1

Add projects

Purpose
: Lets administrators and organization

managers

add projects.

Short description
:
Lets administrators and organization managers add projects.

Actors
: Administrator, organization

manager

Frequency
: Average

Scalability
: Average

Criticality
: High

Indirect demands
: /

Preconditions
: /

Post
conditions
: Project is added to the organization
.

Primary way
:

• Organization browses to their profile page.

• Organization clicks on add project.

17


• Organization enters project information.

• Organization hits ‘submit’

Use cases related to primary way
:
login

Alternatives
: /

Use cases related to alternatives
: /

Exceptions
:

• Empty fields

• Email field doesn’t contain email

• Project name already exists

Use cases related to exceptions
: /

Remarks
:
See the data model for the project information.

By
default the organization manager who is adding is the project manager. The project
manager can link other volunteers or organization managers to the project as project
manager.


2.2.4.2

Deactivate project

Purpose
: To deactivate projects.

Short description
:

Administrators or organization mangers or project managers

are
able
to
deactivate projects.

Actors
: Administrator, organization

manager, project manager

Frequency
: Low

Scalability
: Low

Criticality
: Low

Indirect demands
: /

Preconditions
:
The project
is finished.

Post conditions
: Project is deactivated.

Primary way
:

• Administrator or organization

manager

browses to the project page

• User clicks on ‘Deactivate project’ button

• Unless there were no subscribers, the user enters a message to notify
each subscriber.

Use cases related to primary way
:
login

Alternatives
: /

Use cases related to alternatives
: /

Exceptions
: /

Use cases related to exceptions
: /

Remarks
:
The administrator can choose to keep the project visible or not.


2.2.4.3

Edit project

Purpose
: Lets Administrators
or

organization

managers or project managers

edit
projects.

Short description
:
Lets Administrators or organization managers or project managers
edit projects.

Actors
:
Administrators, organization managers, project managers

Frequency
: Low

Scalability
: Low

Criticality
: Low

18


Indirect demands
: /

Preconditions
: /

Post conditions
: Project’s data is changed.

Primary way
:

• Administrator or organization browses to the project page

• User clicks on ‘Edit project’

• User
changes data of the project

• User clicks on ‘submit’

Use cases related to primary way
:
login

Alternatives
: /

Use cases related to alternatives
: /

Exceptions
: /

Use cases related to exceptions
: /

Remarks
:
See the data model for the project
information.

2.2.5

Job
vacancy

account

2.2.5.1

Add job
vacancy

Purpose
: Lets project managers add
a job vacancy

to a project.

Short description
:
Lets project managers add

a job vacancy

to a project.

Actors
:
project managers

Frequency
: Low

Scalability
: Low

Criticality
: Low

Indirect demands
: There are jobs that have to be done.

Preconditions
: /

Post conditions
:
job vacancy
is created.

Primary way
:

• Project manager browses to his project page

• Project manager hits ‘add job’

• Project manager enters
job

information, required skills

• Project manager hits ‘submit’

Use cases related to primary way
: login

Alternatives
: /

Use cases related to alternatives
: /

Exceptions
:

• Empty fields

• Email field doesn’t contain email


The voluntary work
already
exists

Use cases related to exceptions
: /

Remarks
: /

2.2.5.2

Edit

job
vacancy

Purpose
: Lets project managers

edit

a

job vacancy
.

Short description
:
Lets project managers edit
a
job vacancy
.

Actors
:
Project managers

Frequency
: Low

Scalability
: Low

19


Criticality
: Low

Indirect demands
: /

Preconditions
: /

Post conditions
:
job vacancy
is edited. Applied volunteers receive a notification.

Primary way
:

• Project manager browses to his project page

• Project manager hits ‘
edit

job’

• Project manager
edits

job information, required skills

• Project manager hits ‘submit’

Use cases related to primary way
: login

Alternatives
: /

Use cases related to alternatives
: /

Exceptions
:

• Empty fields

• Email field doesn’t contain email

Use cases related to
exceptions
: /

Remarks
: /

2.2.5.3

Deactivate
job vacancy

Purpose
: To deactivate
job vacancy
.

Short description
: Administrators or organizations are able deactivate
job vacancy
.

Actors
: Administrator, organization

Frequency
: Low

Scalability
: Low

Criticality
:

Low

Indirect demands
: /

Preconditions
: /

Post conditions
:
job vacancy
is deactivated.

Primary way
:

• Administrator or organization browses to the project page

• User clicks on ‘Deactivate
voluntary work’

button

• Unless there were no applications, the user enters a message to notify each
applicant
.

Use cases related to primary way
: login

Alternatives
: /

Use cases related to alternatives
: /

Exceptions
: /

Use cases related to exceptions
: /

Remarks
: /

2.2.5.4

Set job
vacancy

as finished

Purpose
: Lets project managers set the status of the
job
vacancy

as finished
.

Short description
:

Lets project managers set the status of the
job
vacancy

as finished
.

Actors
: Project manager

Frequency
: Very High

Scalability
: Low

Criticality
: High

Indirect demands
:
The
job
vacancy

is finished.

Preconditions
: /

20


Post conditions
: The
job
vacancy
’s
status is set to ‘finished’.

Primary way
:

• Project manager browses to the project page.

• Project manager hits ‘mark as
finished’


Use cases related to primary way
: login

Alternatives
: /


Use cases related to alternatives
: /

Exceptions
: /

Use cases related to exceptions
: /

Remarks
: /

2.2.6

Volunteer account

2.2.6.1

Register Volunteers

Purpose
: To register guests that are
interested to be a volunteer

Short description
: To give guests volunteer rights to the web application

Actors
: Guests

Frequency
:
Very High

Scalability
: Average

Criticality
: Very high

Indirect demands
: The guest needs to have a email address for
confirmation and
receiving messages

Preconditions
: /

Post conditions
: the volunteer is registered

Primary way
:

• Guest browses to the register web page

• Enters account information

• Hits register and a confirmation mail is sent to the user.

• Clicks
on the confirmation link he received by mail

Use cases related to primary way
: /

Alternatives
: Let the administrator add the volunteer

Use cases related to alternatives
: /

Exceptions
: If the username or the email address already exists in the database,

the
guest will have to choose another one.

Use cases related to exceptions
: Register organization, Register project

Remarks
:
See the data model for the user’s information.

2.2.6.2

Deactivate volunteers

Purpose
:
Deactivate
volunteers

Short description
: Lets
administrators deactivate volunteers

Actors
: Administrators

Frequency
: Low

Scalability
: Low

Criticality
: Average

Indirect demands
: /

Preconditions
: /

Post conditions
: the volunteer is deactivated

Primary way
:

21


• Administrator browses to the
volunteers profile page

• Clicks on the ‘deactivate volunteer’ button

• Hits deactivate

Use cases related to primary way
:
Login

Alternatives
:
/

Use cases related to alternatives
: /

Exceptions
: /

Use cases related to exceptions
: /

Remarks
:
The user’s information (profile, blogs, …)
will
stay online.

2.2.6.3

Edit volunteer information

Purpose
: Edit volunteers information

Short description
:
Edit
volunteer information
.

Actors
: Volunteers, Administrators

Frequency
: Low

Scalability
: Low

Criticality
: Low

Indirect demands
:
/


Preconditions
: /

Post conditions
: The volunteer
’s

information is changed

Primary way
:


Volunteer or administrator

browses to a profile

• Clicks on the ‘change profile’ button

• Changes account information

• Hits
submit

Use cases related to primary way
: Edit organization, edit profile,
login

Alternatives
: Administrator can browse to a certain volunteer via search function.

Use cases related to alternatives
: Volunteer search

Exceptions
: New password doesn’t
match password conformation.

Use cases related to exceptions
:
Register volunteer.

Remarks
:
See the data model for the user’s information.

2.2.7

Community functions

2.2.7.1

Mailing

Purpose
: Lets
users

push mail to a group.

Short description:

Lets users push mail to a group.

Actors
: Administrator,
organization managers, project managers

Frequency
: Average

Scalability
: Low

Criticality
: Average

Indirect demands
: /

Preconditions
: /

Post conditions
: A group of people receive

a

mail.

Primary way
:

• Organization

manager

browses

to

his

organization profile

page.

• Hits ‘new mailing’

• Enters a message

22


• Selects to who the mail is addressed (which projects)

• Hits the ‘send’ button


The same way is used for project managers.

Use cases
related to primary way
:
login

Alternatives
:

• Administrat
or

browses to administration page.

• Hits ‘new mailing’

• Enters a message

• Selects to who the mail is addressed (which organization, projects), or just selects all

• Hits the ‘send’ button

Use
cases related to alternatives
:
login

Exceptions
: Message cannot be empty.

Use cases related to exceptions
: /

2.2.7.2

Comments

Purpose
: Lets users
make comments

Short description:
Lets users make comments
to organizations, projects, comments

Actors
:
Administrators, volunteers

Frequency
: High

Scalability
: Low

Criticality
: Average

Indirect demands
: /

Preconditions
: /

Post conditions
: Comment is added.

Primary way
:

• User browses to a project
, organization
, volunteer profile

page

• Enters comment

• Hits the ‘commit’ button

Use cases related to primary way
:
login

Alternatives
:

• User browses to a project, organization page

• Reads a comments

• Clicks ‘comment’ underneath a certain comment

• Enters comment

• Hits the ‘commit’ button

Use cases
related to alternatives
: /

Exceptions
: Comment cannot be empty.

Use cases related to exceptions
: /

2.2.7.3

PM (private message)

Purpose
: Lets users communicate.

Short description
:
Lets users communicate by sending
emails

to each other.

Actors
:
Administrators, volunteers

Frequency
: Low

Scalability
: Low

Criticality
: Low

Indirect demands
: /

23


Preconditions
: /

Post conditions
:
Email

is send.

Primary way
:

• User browses to
volunteer profile

• Hits ‘PM’ button next to the username

• Enters
message

• Hits ‘send’ button

Use cases related to primary way
:
login

Alternatives
:
/

Use cases related to alternatives
: /

Exceptions
: Private messages cannot be empty.

Use cases related to exceptions
: /

Remarks
: This function is added to secure
volunteers privacy, no email addresses will
be viewable on the website.

2.2.7.4

Avatar

upload

Purpose
: Lets
users

upload
a avatar.

Short description
:
Lets
users
upload a avatar
.

Actors
:
V
olunteers

Frequency
: Low

Scalability
: Low

Criticality
: Low

Indirect
demands
: There has to be sufficient available space.

The image size is
restricted.

Preconditions
: /

Post conditions
: Image is stored

and viewable for other
users
.

Primary way
:

• User browses to
his profile page or the profile page of his organization,
project.

• Clicks on the image.

• Selects image(s)

of his hard disk.

• Hits

the

‘submit’ button

Use cases related to primary way
:
login

Alternatives
: /

Use cases related to alternatives
: /

Exceptions
: Image cannot be empty and has to match
requirements (file format, size,
..)..

Use cases related to exceptions
: /

Remarks
: /

2.2.7.5

Remove
avatar

Purpose
: To remove a
avatar

Short description
: Let
users

remove
their
avatar

Actors
: Administrator, volunteer

Frequency
: Low

Scalability
: Low

Criticality
: Low

Indirect demands
: A
avatar

has to be uploaded

Preconditions
:
/

24


Post conditions
: The image is removed from the server

Primary way
:


User browses to his profile page or the profile page of his organization, project.

• Clicks on the
button ‘remove avatar’

Use cases related to primary way
: /

Alternatives
: /

Use cases related to alternatives
: /

Exceptions
: User has no profile picture. Then the button ‘remove
avatar’

will not be
shown.

Use cases related to exceptions
: /

Remarks
: /

2.2.7.6

Image

upload

Purpose
: Lets organization managers, project managers show images on the website.

Short description
:
Lets organization managers, project managers show images on the
website
.

Actors
: organization managers, project managers

Frequency
: Low

Scalability
: Low

Criticality
: Low

Indirect demands
: /

Preconditions
: Organization managers, project managers need to have the flickr url.

Post conditions
: Images from flickr are shown.

Primary way
:

• Organization managers, project managers browses to

his organization, project.

• Clicks on the button ‘add flickr url’

• Fills in the url

• Hits the ‘submit’ button

Use cases related to primary way
: login

Alternatives
: /

Use cases related to alternatives
: /

Exceptions
: URL has to exist.

Use cases
related to exceptions
: /

Remarks
: /

2.2.7.7

Make donations

Purpose
: Lets volunteers make donations to organizations, projects

Short description
: Lets volunteers make donations to organizations, projects

Actors
: Volunteers

Frequency
: Low

Scalability
: Low

Criticality
: Low

Indirect demands
: Volunteer has money.

Preconditions
: The user has to be logged in as volunteer.

Post conditions
: Donation is transferred to the organization, project or …

Primary way
:

• Volunteer browses to the organization or
project web page

• Hits donation button and is redirected to the donation web page

25


• Enters amount, payment options and payment destination

• Hits donate

Use cases related to primary way
:
Login

Alternatives
: /

Use cases related to alternatives
: /

Exceptions
: There is no option to donate.

Use cases related to exceptions
: /

Remarks
: /

2.2.8

Link volunteer
with a
job
vacancy

or

project

2.2.8.1

Apply

for
job
vacancy

Purpose
: Lets volunteers apply for
job
vacancy
.

Short description
:
Lets volunteers apply for
job
vacancy
.

Actors
: V
olunteer

Frequency
: Very High

Scalability
: Low

Criticality
: Very High

Indirect demands
: Volunteer is prepared to work!

Preconditions
: /

Post conditions
:
The project manager is notified.

Primary way
:

• Volunteer browses to
the project page

• Volunteer selects job he wants

• Volunteer hits ‘submit’

Use cases related to primary way
: login

Alternatives
: /

Use cases related to alternatives
: /

Exceptions
: /

Use cases related to exceptions
: /

Remarks
: /

2.2.8.2

Unsubscribe from
a
job
vacancy

Purpose
: Lets volunteers unsubscribe from job
vacancy
.

Short description
:
Lets volunteers unsubscribe from job
vacancy
.

Actors
:
Volunteer

Frequency
: Low

Scalability
: Low

Criticality
: Low

Indirect demands
: /

Preconditions
: /

Post
conditions
:
The application of the volunteer is removed.

Primary way
:

• Volunteer browses to the application page, project page

• Volunteer hits ‘unsubscribe from application’


Use cases related to primary way
: login

Alternatives
: /

Use cases related

to alternatives
: /

26


Exceptions
: /

Use cases related to exceptions
: /

Remarks
: /

2.2.8.3

Find volunteers fitted for the job

Purpose
: To find volunteers.

Short description
: To find volunteers that are fitted for the job.

Actors
:
Project managers

Frequency
:
Average

Scalability
: Low

Criticality
: Average

Indirect demands
: Organization knows what they’re looking for.

Preconditions
: /

Post conditions
: Message is send to volunteer(s), to persu
ade them to apply to work
for the organization
.

Primary way
:


Project manager browses to the job
vacancy
,
project page


Project manager
clicks on ‘
find volunteers’

button
, algorithm starts and shows
volunteers.


Project manager
selects volunteers fitted for a particular job.

Use cases related to primary way
: /

Alternatives
: /

Use cases related to alternatives
: /

Exceptions
: /

Use cases related to exceptions
: /

Remarks
:
/

2.2.8.4

Accept

volunteer

Purpose
: Accept volunteers.

Short description
: Lets
project managers

accept volunteers to a
job
vacancy
.

Actors
:
Project manager

Frequency
:
Average

Scalability
: Low

Criticality
:
Average

Indirect demands
: /

Preconditions
: /

Post conditions
: Volunteer is accepted to work for a project
, organization

Primary way
:

• Organization browses to the project web page

• Clicks on the ‘volunteers list’

• Clicks on ‘accept’ or ‘deny’

• The volunteer is notified.

Use cases related to primary way
: register volunteer, register project,

Applying for
voluntary work,

login

Alternatives
: /

Use cases related to alternatives
:
/

Exceptions
: /

Use cases related to exceptions
: /

27


Remarks
: The new application is set to deny by default.

2.2.8.5

Accept

job
vacancy

Purpose
:
Lets volunteers accept job
vacancy
.

Short description
: Lets
volunteers

accept
job
vacancy
.

Actors
:
Volunteer

Frequency
: Average

Scalability
: Low

Criticality
:
Average

Indirect demands
: /

Preconditions
: /

Post conditions
: Volunteer is accepted to work for a project
, organization

Primary way
:


Volunteer

browses to the
his
profile

• Clicks on the ‘
project

list’

• Clicks on ‘accept’ or ‘deny’

Use cases related to primary way
: login

Alternatives
: /

Use cases related to alternatives
: /

Exceptions
: /

Use cases related to exceptions
: /

Remarks
: The new application is set to deny by default.



28


2.3


Off line

use cases

2.3.1

Login

Purpose
: To authenticate and check authorization for the user

Short description
:
To authenticate and check authorization for the user

Actors
:
Volunteer
, Administrator

Frequency
: Average

Scalability
: Low

Criticality
: Very high

Indirect demands
: the user should exist

Preconditions
: the user exists and user knows username and password

Post conditions
: the user is logged in and has the sufficient rights

Primary way
:


Starting up offline application

(the login screen will be shown)


Enters username


Enters password


Hits
login

Use cases related to primary way
: /

Alternatives
: /

Use cases related to alternatives
: /

Exceptions
:
/

Use cases related to exceptions
:
Login

Remarks
: /

2.3.2

Sync

Purpose
: Let
s users sync
their offline application with the online application.


Short description
:
Let
s users sync
their offline application with the online application.

Actors
: Volunteer
, Administrator

Frequency
:
Very High

Scalability
:
Average

Criticality
:
Very High

Indirect demands
:
Connection with the internet must be made.

Preconditions
: User is connected to the internet.

Post conditions
: Information is downloaded

and/or uploaded.

Primary way
:

• User
starts

up the offline app



User logs in

• User
hits the ‘sync’ button

Use cases related to primary way
: writ

blog posts offline, reading blog posts offline,
writing PMs offline, reading PMs offline
, log in

Alternatives
:

When the user is connected to the internet and the offline application is
running
,

the
syncing will be done automatically on regular bases. (You can change the behavior of
the automatic syncing through the preference panel (Edit


preferences)).

Use cases related to alternatives
: /

Exceptions
: /

Use cases related to exception
s
: /

Remarks
: First all locally stored new blog posts or PMs are uploaded to the
online

29


application. The second step is a download of all new or modified items since the last
sync.

2.3.3

Write

blogs

Purpose
:
Write

blog posts

offline
.

Short description
:
The user enters one or several messages. These messages are
uploaded when the user is connected to the internet.

Actors
:
Volunteer
, Administrator

Frequency
:
High

Scalability
:
Average

Criticality
:
High

Indirect demands
:
/


Preconditions
:
User is
connected to the internet.

Post conditions
: Blog posts are uploaded.

Primary way
:

• User
starts

up the offline app



User logs in

• User hits the ‘new blog post


button

• User enters ‘message’ and the recipient blog

Use cases related to primary way
:
sync
, log in

Alternatives
: /

Use cases related to alternatives
: /

Exceptions
: /

Use cases related to exceptions
: /

Remarks
:
/

2.3.4

Read

blogs

Purpose
: Let
s users read blogs

offline
.

Short description
:
Let
s users read blogs

offline
.

Actors
:
Volunteer,
Administrator

Frequency
:
High

Scalability
: Low

Criticality
:
Average

Indirect demands
:
/


Preconditions
:
User can only read blogs offline where he’s subscribed to
.

Post conditions
: Blogs are downloaded.

Primary way
:

• User
starts

up the offline app



User logs in

• User hits the ‘blogs


button

• User can start reading the blog posts ordered by date and time. In our application all
our blogs (see preconditions) will be merged as one big personal news blog.

• [User can also chose wh
ich blog he wants to read]

Use cases related to primary way
: sync

Alternatives
:

• User
starts

up the offline app



User logs in

• User enters search criteria in one textbox

30


• User gets a list of blog posts matching the search criteria

Use cases
related to alternatives
: /

Exceptions
: /

Use cases related to exceptions
: /

Remarks
:
A search function will be
available
.

2.3.5

Write

PM
s

Purpose
: Let
s users
write

personal messages.

Short description
:
Let
s users
write

personal messages.

Actors
:
Volunteer,
Administrator

Frequency
:
Average

Scalability
: Low

Criticality
:
Average

Indirect demands
:
/


Preconditions
:
/

Post conditions
:
PMs are send.

Primary way
:

• User
starts

up the offline app



User logs in

• User hits the ‘new PM


button

• User enters ‘message’ and the recipients (users, groups)

Use cases related to primary way
:
sync

Alternatives
: /

Use cases related to alternatives
: /

Exceptions
: /

Use cases related to exceptions
: /

Remarks
: /

2.3.6

Read

PMs

Purpose
: Let’s users read their personal messages (PMs).

Short description
:
Let’s users read their personal messages (PMs).

Actors
:
Volunteer,
Administrator

Frequency
:
High

Scalability
: Low

Criticality
:
Average

Indirect demands
: /

Preconditions
:
/

Post
conditions
: PMs are read.

Primary way
:

• User
starts

up the offline app



User logs in

• User hits the ‘PM


button

• User can start reading the PMs ordered by date and time

• [User can also chose which user’s PMs he wants to read]

Use cases related to
primary way
: /

Alternatives
:

• User
starts

up the offline app



User logs in

31


• User enters search criteria in one textbox

• User gets a list of PM’s matching the search criteria

Use cases related to alternatives
: /

Exceptions
: /

Use cases related to
exceptions
: /

Remarks
:
A search function will be available.




32


Technical analysis


1.

Diagram

News feed
Log in
Password
reminder
Search
Contact form
Change
language
Deactivate
organiszations
Register
organiszations
Edit volunteer
information
Comments
Private
message
Mailing
Add
project
Deactivate
project
Edit project
Register
volunteers
Edit
organization
information
Deactivate
job vacancy
Edit job
vacancy
Add job
vacancy
Make
donation
Remove
Avatar
Avatar upload
Apply for job
vacancy
Accept
volunteer for
project
Remove
application
Image upload
Find
volunteers
fitted for the
job
Set job
vacancy
as finished
Guest
Admistrator
Volunteer
Project
Manager
Organization
manager
Accept job
vacancy
Un
-
apply for
job vacany
Deactivate
volunteers
Note
:
-

Organization managers are volunteers who are able to manage the information of an organization on the platform
.
-

Project manager are volunteers who are able to manage projects for a specific organization

33


2.

User interface

Pr
esenting information in an attractive way is perhaps more difficult than making the
application. In order to have an idea on how it
might

look, we included some layouts.

1.1

Home page

On the example below of the
home page the menu is on the left
side followed

by a list of top
projects. The main data will
include some info about the s
ite
and a map where the latest
projects are located
.






1.2

Volunteer page

The profile of a volunteer will
include info about the
volunteer and a picture. The
menu will be on the
same
place as the home page
. In the
following example the first
home page is used.


The volunteer page will
also
include a list of projects and

organizations
,

the volunteers

worked for
.

















34


1.3

Subscribed volunteers

A project owner can
easily view who has applied for a job vacancies. From
that view you can
easily redirect to the profile page of that volunteer.





35


3.

Data model


user
PK
user
_
id
FK
1
country
_
id
FK
2
blog
_
id

email

password

active

registered

last
_
visit

website

username
FK
3
language
_
id

avatar

birthdate

firstname

lastname

gender

user
_
id
_
updater

changetime
_
update

administrator
country
PK
country
_
id
FK
1
country
_
name

time
_
display

description
language
PK
language
_
id
FK
1
translate
_
field
_
id

language
_
code

icon
_
location
translation
PK
,
FK
1
language
_
id
PK
,
FK
2
translate
_
field
_
id

value
translate
_
field
PK
translate
_
field
_
id

name

type
notification
_
option
PK
notification
_
option
_
id
FK
1
notification
_
name

description
user
_
notification
_
option
PK
,
FK
1
user
_
id
PK
,
FK
2
notification
_
option
_
id
interest
PK
interest
_
id
FK
1
interest
_
name

description
user
_
interest
PK
,
FK
1
user
_
id
PK
,
FK
2
interest
_
id

notification
project
PK
project
_
id
FK
1
project
_
title
FK
2
blog
_
id

description
user
_
project
PK
,
FK
1
user
_
id
PK
,
FK
3
project
_
id
FK
2
user
_
project
_
status
blog
PK
blog
_
id
FK
1
name
blog
_
post
PK
blog
_
post
_
id
FK
1
blog
_
id
FK
3
user
_
id

message
FK
2
title

created

last
_
changed

last
_
viewed

readers
project
_
job
PK
project
_
job
_
id
FK
1
project
_
id

job
_
title

job
_
info

job
_
placed
FK
2
job
_
status
_
id
project
_
job
_
application
PK
,
FK
1
project
_
job
_
id
PK
,
FK
2
user
_
id

application
_
status
FK
3
application
_
status
_
id
job
_
status
PK
job
_
status
_
id
FK
1
status
_
value
application
_
status
PK
application
_
status
_
id

application
_
status
_
value
pm
PK
pm
_
id
FK
1
user
_
id
_
from
FK
2
user
_
id
_
to

datetime

subject

message
comment
PK
,
FK
1
comment
_
id
FK
2
user
_
id

date

changed

comment
FK
3
linked
_
to
_
comment
_
id
project
_
comment
PK
,
FK
1
project
_
id
PK
,
FK
2
comment
_
id
blog
_
comment
PK
,
FK
2
blog
_
post
_
id
PK
,
FK
1
comment
_
id
project
_
location
PK
,
FK
1
project
_
id
PK
location
_
name
organization
PK
organization
_
id
PK
,
FK
1
country
_
id
PK
,
FK
2
blog
_
id

name

email

address

description

website

logo
user
_
organization
PK
,
FK
2
organization
_
id
PK
,
FK
1
user
_
id
PK
function
news
_
project
PK
,
FK
2
user
_
id
PK
,
FK
3
notification
_
option
_
id
FK
1
project
_
id
friend
_
list
PK
,
FK
1
user
_
id
PK
,
FK
2
notification
_
option
_
id

friend
_
id
news
_
organization
PK
,
FK
1
user
_
id
PK
,
FK
3
notification
_
option
_
id
FK
2
organization
_
id



36


4