documentation of clubdata - sourceforgeclubdata.sourceforge.net/clubdata.pdf · sending mass emails...
TRANSCRIPT
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 ExcelSheets 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 Email 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 massmailing, 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 tarfile to $DOCUMENT_ROOT/Clubdata
2. Create a MYSQL Database called "Clubdata"
3. Run "mysql Clubdata <Installation/Clubdatastructure.mysql" to load empty tables.
4. Run "mysql Clubdata <Installation/Clubdatadata.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/Clubdatahelp.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. Caseinsensitive
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 fieldCaseinsensitive
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 EMails 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