documentation of clubdata - sourceforgeclubdata.sourceforge.net/clubdata.pdf · sending mass emails...

31
Documentation of Clubdata Autor: Franz Domes Version: 1.0 Datum: 10. Oct. 2004

Upload: lethien

Post on 06-Sep-2018

220 views

Category:

Documents


0 download

TRANSCRIPT

Documentation of 

Clubdata

Autor: Franz DomesVersion:  1.0Datum:  10. Oct. 2004

Table of content1 Overview...........................................................................................................................................3

1.1 Features......................................................................................................................................32 Concepts............................................................................................................................................4

2.1 MemberID..................................................................................................................................42.2 User versus Member .................................................................................................................42.3 Membership types......................................................................................................................4

3 Installation.........................................................................................................................................53.1 Prerequisites...............................................................................................................................53.2 Installing Clubdata.....................................................................................................................5

4 Usage.................................................................................................................................................64.1 Login..........................................................................................................................................64.2 Main Menu.................................................................................................................................74.3 The Tasks...................................................................................................................................8

4.3.1 Create Member...................................................................................................................84.3.2 List/Edit Member...............................................................................................................9

4.3.2.1 Tab: Overview..........................................................................................................104.3.2.2 Tab: Private..............................................................................................................124.3.2.3 Tab: Firm..................................................................................................................144.3.2.4 Tab: Memberinfo......................................................................................................164.3.2.5 Tab: Payments..........................................................................................................194.3.2.6 Tab: Fees..................................................................................................................21

4.3.3 Search member.................................................................................................................234.3.3.1 Simple search...........................................................................................................264.3.3.2 Advanced Search......................................................................................................274.3.3.3 Selecting columns.....................................................................................................284.3.3.4 The search result.......................................................................................................29

1 OverviewClubdata is a software to manage club members. It was developed because I was unsatisfied withthe MS ACCESS solution my wife used to manage the member of an economical club in Bavaria.Since then I added a lot of new features.

It is based on Apache and MySQL. In fact it is developed and tested using a classical LAMP system(Linux, Apache, MySQL, PHP), but several users run Clubdata also on a Windows system.

One goal was flexibility. So nearly all parameters are stored in the database and can be edited by theadministrator of Clubdata.

All members are given an individual MemberID. This MemberID is used to identify a member inClubdata. If a member is deleted, the MemberID will not be reassigned. (Exception: The lastmember is deleted (i.e. with the highest MemberID). In this case the MemberID will be reassigned.)

Clubdata is published under GPL (see COPYING at the end of the documentation)

1.1 FeaturesThe following features are implemented at the moment:

1. Managing of club members, with private and firm address

2. Different membership types (you can create your own ones) with different membership fees.

3. Several membership features, like "infos per email welcome" , "agree to give address to othermembers","agree to publish data via WWW", etc (Have a look at "Member information")

4. Managing of membership fees (also "special agreements") and payments.

5. Sending mass emails via SMTP

6. Create Excel­Sheets for further processing (like mass letters, etc)

7. Create an address list to use with the German Infopost Manager.

8. A large number of selection criteria for searching members

9. A authentication system with the possibility to give access on a per screen basis (e.g. Privatedata, firm data, member information.) with either read, update, insert and/or delete access.

10.To be able to work with providers who are running PHP as CGI script. I am not depending onthe authentication mechanism of PHP.

11.Variable salutations, also for different languages (e.g. for members in other countries)

12.Support for different languages (English, German and French for the moment)

13.A large possibility for configuration. E.g. the standard columns shown as a search result can bedefined by the administrator (but can be overwritten for each search by the user)

14.A "user" and a "member" interface. The "user" interface is used by the club officials toadministrate their members. The "member" interface gives each member a limited possibility tochange his data (such as E­mail address, etc.) and to look for information about other members[see 3.) "agree to publish data via WWW"].

15.Export of member lists as PDF or Excel. The member can decide, which data should bepublished (Either only private, or firm or both data)

16.Conference management. A rudimentary conference management is implemented to managesubscriptions to conferences.

17. Accounting functionalities, like unbalanced accounts, mass update of payments, etc

18.Easy Update mechanism. When installing a new version of Clubdata,the database isautomatically updated to the needed version.

2 ConceptsThis chapter describes the basic concepts of Clubdata. You should read it to have an idea howClubdata works and why it does things like it does:

2.1 MemberIDClubdata uses a number, called MemberID to identify a member. The MemberID also defines thedefinition of what is the first member (the member with the lowest MemberID), the previousmember (the member with the largest MemberID smaller than the actual MemberID), the nextmember (the member with the smallest MemberID larger then the actual MemberID) and the lastmember (the member with the highest MemberID). This is necessary, as MemberID's might not becontinuous and have wholes between numbers (i.e. a canceled membership leaves a whole). TheMemberID is unique and not reassigned to another member. There is one exception to this. If thehighest MemberID is deleted, it will be reassigned to a new member. This behavior helps you todelete accidentally created users.

2.2 User versus Member Clubdata distinguish between Users and Members:

Users are (normally) employees of the club. Their duty is to administrate members. A typicallymember is a secretary or the treasurer. They must be able to have a look on all members (notnecessarily all data of each user). A user account must be created by the administrator using theadministration menu. The administrator also defines the rights of a user. A user logs in via its username (created by the administrator) and a password. The initial password is also generated by theadministrator.

Members are members of the club. They are allowed to see their personal data and modify some ofthem. They also can see public available data of other members. But they neither can't see anyprivate data of other members nor can't they modify any data of other members. A member can useClubdata if a user has assigned a password to this member (See Tab: Memberinfos for moredetails). A member logs in using its MemberID and the password given by a user (the member maychange the password later)

2.3 Membership typesEach membership is associated to a type of membership. Membership types can be freely created bythe administrator using the administration menu. A membership type defines the following (default)parameter for a member:

● Name of membership type

● The member fee to pay. This may be overwritten on a per member basis to support “specialagreements”.

● If the member is selected by default.This parameter is used when searching members, as per default only this members are selected.This behavior may be overwritten on a per search basis

● If the membership type defines a canceled membership.If this parameter is set to YES, members of this membership type will not be taken into accountfor any selection (like mass­mailing, invoices or publishing of member data).

● The dependency of the membership type.There are 3 different dependencies of a membership type:

● Individual: This membership type has no relation to any other membership type

● Main: This membership type defines a  master membership. Typically a member of thistype pay a firm wide fee and other members may join the club for free. If such a membercancels its membership, the associated members are no longer entitled to be a (free)member of the club. They have to change their membership type also.

● Associate: This membership type defines associated members, which depends on a mainmember. 

2.4 

3 Installation

3.1 PrerequisitesThe following environment is needed by Clubdata:

On the server side

● A Web server which supports PHP (I am testing under Apache 1.3.27 on Linux)

● PHP (4.2.x, I'm testing under 4.3.1 at the moment)

● MySQL (I am testing under 3.x, I don't know if it works under Version 4)

On the client side:

● Internet Explorer (>=5) or Netscape Navigator (>6) I am testing under IE 5.0 and Navigator 7.1. It should work under Navigator 6.x, but doessurely not run under 4.x)

● JavaScript and Cookies must be enabled

3.2 Installing Clubdata1. Extract tar­file to $DOCUMENT_ROOT/Clubdata

2. Create a MYSQL Database called "Clubdata"

3. Run "mysql Clubdata <Installation/Clubdata­structure.mysql" to load empty tables.

4. Run "mysql Clubdata <Installation/Clubdata­data.mysql" to load initial values (if desired).Now, the database contains a test member and some users to play withUser: Admin, Password: admin, Function: (guess...))User: AllUser, Password: AllUser, Function: User who may edit all tablesUser: test, Password: test, Function: Is not allowed to do anything at the moment, but is used totest authenticationMember: 147, Password: mitglied, Function: The member uses the "member" interface asdescribed in

5. Run "mysql Clubdata <Installation/Clubdata­help.mysql" to load the help system

6. Create a user who can access the Clubdata tables. The default user is clubdata with passwordclub. (See also 5.)

7. Edit "include/configuration.php"Edit LINKROOT to point to your Clubdata directory 

(relative to the web server document root);Edit DB_HOST, DB_NAME, DB_USER and DB_PASSWD to access your DatabaseEdit $language to DE, EN or FR (for the moment) 

This is the default language and will be overwritten on a per user basis !!Edit $DEST_HTTP_DIR to show to directory where to store uploaded pictures (e.g. firm logos)Edit SERVER_SYSTEM_TYPE to reflect the type of your system (Windows or Unix)

In special cases you may want to edit SCRIPTROOT to fit your needs(absolut path to your Clubdata installation);

8. Change the permission of the directory defined in $DEST_HTTP_DIR to be writable by the httpserver (Normally wwwrun).

9. Create a directory named "small" under $DEST_HTTP_DIR. Make it also writable to the httpserver.

10.Connect to http://yourhost/Clubdata/index.php. Login as Admin, AllUser or test.You must have Javascript enabled !!

11.Have fun, add members, etc.

12.If you find any errors (and you will for the moment) send me an email to [email protected] suggestions and bug fixes are also very welcome.

4 Usage

4.1 LoginWhen you start Clubdata, the login screen will be displayed. Please enter your username andpassword.

For a new installation the following users are available:

Login Password Function

admin admin Administrator, is allowed to doeverything

AllUser AllUser May edit all member data, butdoes not see the administrationmenu. This means, this usercannot change the behavior ofClubdata

test test This user is not allowed to doanything

147

mitglied This login is a member account.This account has only limitedrights to change the own dataand to see public available dataof other members

4.2 Main MenuAfter you have successfully logged in, the following screen will be shown:

The work area is divided into 4 parts:

1. The Navigator: On the left side, you can select the tasks. The tasks shown depends on the rightsof the user (or member) logged in.

2. The Top Bar: On the top of the right side, information about the actual state will be displayed

3. The Main Window: In the middle of the right side is the main window.

4. The Bottom Bar: On the bottom of the right side is the bottom bar. This is the place where allbuttons will be displayed

4.3 The Tasks

4.3.1 Create MemberThe Create Member tasks allows to add new members to Clubdata. In fact an empty member iscreated and you have to fill in all relevant datas.

TIP:

You can click of the field description of aneditable field to a context sensitive get help onthis field

At first you are asked, if you really want to create a new member.

If you click on OK, a new MemberID is created and an empty member is stored to the database.Then an additional alert windows informs you to fill in all relevant datas.

4.3.2 List/Edit MemberThe list/edit member task allows you the edit all relevant data of a member. The main window showseveral tabs, which will be described in the following chapters.

As you will see in the following chapters, the top and the bottom bar shows the same kind ofinformation for all tabs:

The top bar shows the MemberID, the name of the member and the firm

The bottom bar shows a navigator, a variable number of buttons (Save, reset, etc.) and the “DeleteMember” button.

TIP:

Don't forget to click on the save button on eachtabulator before proceeding to a new one.  If youdon't do it, all data will be lost !

Goto first member (i.e. the member with the lowest MemberID)

Go back one member. . It the active member is already the first member, thisbutton does nothing

1. Enter a MemberID directly: If a MemberID (i.e. only numbers) is entered, gotodirectly to this member

2. Quick search a member: If an alphanumerical text is entered, this text is lookedup in the fields Lastname, Firstname and Firm. If one match is found, themember is directly selected; if more than one match is found, a list of foundmembers is shown

Go forward one member. If the active member is already the last member, thisbutton does nothing

Goto last member (i.e. the member with the highest MemberID)

Table 1The Navigator

This button will delete the active member. An alert window to confirm theaction will be displayed.

Table 2The Delete Button

4.3.2.1 Tab: Overview

TIP:

When datas are edited, the fields change thebackground color to red. This shows you, thatyou have to save the tab. Click on the savebutton in the bottom bar to do so.

The Overview tab show all member information on one tab. It gives you a fast view to all relevantinformations. No data can be edited on this page. For a description of the fields shown, please referto the associated tab (Private, Firm, Memberinfo).

4.3.2.2 Tab: Private

The Private tab collects all private data of a member. You can edit the following data on this tab:

Field Description

Salutation Select the salutation for this member. Salutations can be customizedby the administrator via the administration menu. The salutationdefines the texts shown in addresses and at the beginning of letters

Firstname The first name of the member

Lastname The last name of the member

Address The private address of the member (i.e. street, etc)

Zipcode The zip code of the private address of the member

Town The town of the private address of the member

Country The country code of the private address of the member. The countrycodes can be customized by the administrator via the administrationmenu.

Phone The private phone number of the member

Field Description

Fax The private fax number of the member

Email The private email address of the member

Birthdate The birthday of the member. Click on the button to the right of thefield to open a calendar, where  you can select the date.

TIP:

Don't forget to click on the save button to makethe changes permanent.

4.3.2.3 Tab: Firm

The Firm tab collects all firm data of a member. You can edit the following data on this tab:

Field Description

Firm The name of the firm

Department The name of the department

Address The address of the firm (i.e. street, etc)

Zipcode The zip code of the firm address

Town The town of the firm address 

Country The country code of the firm address. The country codes can becustomized by the administrator via the administration menu.

Phone The business phone number of the member

Fax The business fax number of the member

Email The business email address of the member

Field Description

Internet The Internet address of the firm. A link to this address will be shownin the public available data (if authorized by the member)

Logo The logo of the firm. This logo will be shown in the public availabledata (if authorized by the member)

TIP:

Don't forget to click on the save button to makethe changes permanent.

4.3.2.4 Tab: Memberinfo

This Tab contains all information about a member. You can edit the following data on this tab:

Field Description

Type of membership Defines the type of the membership. The types available can becustomized by the administrator via the administration menu. Thetype of membership defines by default the membership fee, if themember is selected by default and if the membership is canceled. Thetype of membership defines also, if the member is a full member oran associated member

since The date since when the member has the selected type ofmembership. This date changes automatically, whenever the type ofmembership is changed

ID of full member This fields holds the MemberID of the full member for associatedmembers. For all other members, this field remains empty.

(See 2.3 Membership types on page 4)

Field Description

Entrance The date of entrance to the club. This date may vary from the dateabove, as the type of membership may have changed in themeanwhile. Click on the button to the right of the field to open acalendar, where  you can select the date.

Preferred language This field defines the language, the member would like to have. Thisfield is used when the member logs in to show the menu in itspreferred language

Information sharing Select if the user has given permission to give his data to othermembers. The following values are possible:

Not Mentioned The member has not yet said anything

No The member has prohibited to share any data 

Yes The member has given permission to share any data 

Only firm data The member has given permission to share firm data only 

Only private data The member has given permission to share private data only 

Information in WWW Select if the member allows to public its data in the World Wide Webto show them to other members. The following values are possible:

Not Mentioned The member has not yet said anything

No The member has prohibited the publishing of any data 

Yes The member has given permission to publish any data 

Only firm data The member has given permission to publish firm data only 

Only private data The member has given permission to publish private data only

Infos per email Select it the member wishes to receive Information per Email. Thefollowing values are possible:

No The member does not wish to receive emails. All informationwill be sent by letter 

Yes, firm email The member wants to receive emails at his firm email address 

Yes, private email The member wants to receive emails at his private emailaddress 

Field Description

Letter to private address Select which address to use, when sending letters: 

No Use firm address for postings 

Yes Use private address for postings 

Password Enter the initial password for the member to log in. Repeat the samepassword in the line Password repeat !The member uses its MemberID and this password to log in (It maychange it later).If the member should not be able to log in, let the password empty.

Payment by direct debit Select Yes if the member pays his member fees by direct debit.

Select No otherwise.

Invoice Select Yes if the member wishes to receive an invoice.

Select No otherwise.

Canceled by end of year Select Yes if the member has canceled its membership and itsmembership ends at the end of the year. 

Select No otherwise

This flag indicates, that the member is still member until the end ofthe period (e.g. Year). So its will still receive informations etc.When the new year starts its membership type will change to"Canceled" and it will not receive any informations anymore.

Selection This field may be used to mark several members for later selection.(e.g.   type GALA2003 for all  members who participate at   the galaevent 2003)

Remarks Type any remarks for the member

TIP:

Don't forget to click on the save button to makethe changes permanent.

4.3.2.5 Tab: Payments

This tab shows a list of all payments made by the member. This tab is related to the tab Fees. Eachline describes one payment. You can 

● delete a payment by clicking on 

● modify an entry by clicking on 

● view the details by clicking on the id

● add a new entry by clicking on the button New Entry in the bottom bar

The following fields are shown and can be edited (except the first 4 one):

Field Description

# The line number

The delete button. Deletes this payment

The edit button. Edits this payment

id The id of the payment. Each payment is identified by an id. The id isunique

Invoice Number An Invoice Number. See Tab: Fees

Paytype The type of the payment. I.e. the reason, why the payment was done.The list of the type of payments can be customized by theadministrator via the administration menu.

Period In case of a membership fee, this field indicates the year of themembership, the payment was made for

Amount The amount of the payment

Date of payment The date the payment was done

Paymode How the payment was done. (e.g. by cheque, by direct debit, etc).The list of the pay modes can be customized by the administrator viathe administration menu.

Cheque No. The number of the cheque, if payed by cheque

Remarks Any remarks

4.3.2.6 Tab: Fees

This tab shows a list of all fees (or better invoices) for the member. This tab is related to the tabPayments. Each line describes one fee (invoice). You can 

● delete a fee by clicking on 

● modify an entry by clicking on 

● view the details by clicking on the id

● add a new entry by clicking on the button New Entry in the bottom bar

The following fields are shown and can be edited (except the first 4 one):

Field Description

# The line number

The delete button. Deletes this fee

The edit button. Edits this fee

id The id of the fee. Each fee is identified by an id. The id is unique

Invoice Number An Invoice Number.  The Invoice Number should be an uniqueidentifier of this invoice. It differ from the id, by the format. Theformat of an Invoice number may be defined by the administrator viathe configuration menu. 

Rechnungsdatum(Invoice date)

The date of the invoice.

Due on The date the invoice is due to pay

Period The period of the membership fee. This is only relevant, if theinvoice is for a membership fee

Mitgliedsbeitrag(Membership fee; betterAmount)

The Amount of the invoice

Remarks Any remarks

TIP:

By clicking on the Invoice Number, anew payment entry is shown in the MainWindow, with almost all field alreadyfilled in.

Field Description

Mahnstufe(Demand level).

The actual demand level. The demand level is initialized with 0 andmay be incremented via the accounting menu.

4.3.3 Search memberThe search task  has two versions: a simple search, with a limited number of fields and an advancedsearch, with the full search functionality. Both modes have the same look and feel, so it will bedescribed in this chapter. Differences between the two modes will be described later.

The search windows consists of multiple lines. Each line defines one criteria to search for. Thecriteria are only taken into account, if the text (or selection) fields are filled in. Empty fields are nottaken into account. If more than one field is filled in, the fields are ANDed. So the results matchalways ALL criteria.

Each line consist of at least three fields:

1. The field description

2. The search function

The search function is generated automatically, depending on the type of the correspondentdatabase field. There are

Field type Search Name Description

Alphanumerical text Contains (a=A) The search string may occuranywhere in the field. Case­insensitive

Begins with (a=A) The search string must appearat the beginning of the fieldCase insensitive

Ends with (a=A) The search string must appearat the end of the fieldCase­insensitive

Exact (a=A) The search string must exactlymatch the fieldCase insensitive

Selection The search string must be acomma separated list of values.The field must match exactly atleast one of the values.

Is Empty The field contains no value.The search value entry isignored.

Is Not Empty The field contains any value.The search value entry isignored.

Field type Search Name Description

Numerical text = The value of the field is equalto the search string

> The value of the field is greaterthan the search string

< The value of the field is smallerthan the search string

>= The value of the field is greateror equal than the search string

<= The value of the field is smalleror equal than the search string

<> The value of the field is notequal to the search string

Selection The search string must be acomma separated list ofnumerical values. The fieldmust be equal to least one of thevalues.

Between(a;b) The value of the field must bebetween the values of a and b. aand b are given as twosemicolon separated numbers.

Is Empty The field contains no value.The search value entry isignored.

Is Not Empty The field contains any value.The search value entry isignored.

Multiple selection field Selection The field must match a selectedentry

Not Selection The field must not match aselected entry

Single selection field = The field must match theselected value

<> The field must not match theselected value

Table 3 Search functions for different search fields

3. The search value. This field can be a text field or a selection

The fields are generated automatically, depending on the type of the correspondent databasefield. There are 4 types of fields:

Alphanumerical textfield

 Just enter any text

Numerical text field  Enter a number

Multiple selectionfield

Select one or more entries shown as search value.Two addition buttons are available to select all entries or select noentries.

Single selection field Select the appropriate answer.

Table 4 Types of search values

TIP:

To select multiple entries you may haveto hold down the CTRL key on yourkeyboard, while clicking on an entry

TIP:

You can start the search by eitherpressing the search button on the bottombar or by pressing the ENTER key.

4.3.3.1 Simple search

When you click on the search member task, you enter the simple search mode. There are only alimited number of fields to search for.  The fields shown can be configured by the administratorusing the administration menu. They should correspond to the most used fields you are using.

In addition to these standard fields, all fields are shown which are preset by Clubdata. E.g. whenselecting “Infoletter to members”, you will see in addition to the standard fields the field “Contactby email” which is preset to “No” (Normally you would like to send mailings only to members whodon't get their information by emails).

4.3.3.2 Advanced Search

By clicking on the button “Advanced Search” on the bottom bar, you get access to all possiblesearch fields. The search fields include the following fields:

MemberID Forename Surname Membership type Title

Home address Home postcode Home town Home country Home telephone

Home fax Company name Department Work address Work postcode

Work town Work country Work telephone Work fax Work email

Firmlogo FirmHTML Home email Date of birh Date of joining

Title Remarks Contact at Home Member typesince

Direct debit

Contact by email Give out personalinfo

Give out onInternet

Selection Cancel at end ofyear

Invoice y/n Lang Main MemberID Attributes

4.3.3.3 Selecting columns

The columns shown by default can be customized by the administrator using the administrationmenu. You can overwrite this selection for each search by selecting the button “Select Columns” onthe bottom bar. You will see a list of all available columns, where the preselected columns arealready selected. You may add/suppress columns as you like by selecting/deselecting theappropriate fields.

TIP:

Selecting the correct fields is importantwhen you like to export the search result.By default only those columns selectedwill be exported to Excel or PDF. Forspecial export functions see theirdescription.

TIP:

Do NOT deselect the MemberID, as youneed it to select a individual member.

4.3.3.4 The search result

If the result of a search contains more than one member, or additional functions can be executed, alist of members is displayed.

The columns displayed are either the default one, or the user selected columns (see 4.3.3.3 Selectingcolumns on page 28).

TIP:

If only one member matches the search,no list will be displayed, but the memberwill be displayed directly.

TIP:

The search result pane is also used byseveral other tasks (like Mail toMembers,...). The only differences are thebuttons available in the bottom bar.

4.3.3.5 Export to Excel

The result pane can be exported to Excel. In nearly all cases the columns shown are exported toExcel.

4.3.3.6 Export to PDF

This button creates a PDF sheet showing the selected members. The format of the PDF file is fixedand doesn't depend on the selected columns.

4.3.4 Mail to MembersThis task is used to send E­Mails to members. 

The first screen shows the search mask as described in Chapter 4.3.3 Search member on page 23.

For your convinience, the field “Contact by email” is already selected to “Yes, firm email” and“Yes, privat email”.

TIP:

Depending on your hardware and thenumbers of members to process, thecreation of a PDF file can take some time

To proceed, click on “Start search for Member”.