Ron Savage > App-Office-Contacts-Donations > App::Office::Contacts::Donations



Annotate this POD

View/Report Bugs
Module Version: 1.10   Source  


App::Office::Contacts::Donation - A web-based donations manager

Synopsis ^

The scripts discussed here, donations.cgi and donations.psgi, are shipped with this module.

A classic CGI script, donations.cgi:

        use strict;
        use warnings;

        use CGI;
        use CGI::Application::Dispatch;

        # ---------------------

        my($cgi) = CGI -> new;

        CGI::Application::Dispatch -> dispatch
                args_to_new => {QUERY => $cgi},
                prefix      => 'App::Office::Contacts::Donations::Controller',
                table       =>
                ''              => {app => 'Initialize', rm => 'display'},
                ':app'          => {rm => 'display'},
                ':app/:rm/:id?' => {},

A Plack script, donations.psgi:


        use strict;
        use warnings;

        use CGI::Application::Dispatch::PSGI;

        use Plack::Builder;

        # ---------------------

        my($app) = CGI::Application::Dispatch -> as_psgi
                prefix => 'App::Office::Contacts::Donations::Controller',
                table  =>
                ''              => {app => 'Initialize', rm => 'display'},
                ':app'          => {rm => 'display'},
                ':app/:rm/:id?' => {},

                enable "Plack::Middleware::Static",
                path => qr!^/(assets|yui)/!,
                root => '/var/www';

For more on Plack, see My intro to Plack.

Description ^

App::Office::Contacts::Donations implements web-based, personal and group, donations.

Distributions ^

This module is available as a Unix-style distro (*.tgz).

See for help on unpacking and installing distros.

Installation Pre-requisites ^

The primary pre-requisite is App::Office::Contacts. You should study the documentation for that module before proceeding.

Install the module ^

Install App::Office::Contacts::Donations as you would for any Perl module:

Run cpan: shell>sudo cpan App::Office::Contacts::Donations

or unpack the distro, and then either:

        perl Build.PL
        ./Build test
        sudo ./Build install


        perl Makefile.PL
        make (or dmake)
        make test
        make install

Either way, you'll need to install all the other files which are shipped in the distro.

Install the HTML::Template files.

Copy the distro's htdocs/assets/ directory to your doc root.

Specifically, my doc root is /var/www/, so I end up with /var/www/assets/.

Install the trivial CGI script and the Plack script

Copy the distro's httpd/cgi-bin/office/ directory to your web server's cgi-bin/ directory, and make donations.cgi executable.

My cgi-bin/ dir is /usr/lib/cgi-bin/, so I end up with /usr/lib/cgi-bin/office/donations.cgi.

Now I can run (but not yet!).

Creating and populating the database

The distro contains a set of text files which are used to populate constant tables. All such data is in the data/ directory.

This data is loaded into the 'contacts' database using programs in the distro. All such programs are in the scripts/ directory.

After unpacking the distro, create and populate the database:

        shell>cd CGI-Office-Contacts-1.00
        shell>perl -Ilib scripts/ -v
        shell>perl -Ilib scripts/ -v
        shell>perl -Ilib scripts/ -v
        shell>perl -Ilib scripts/ -v

Note: The '-Ilib' means 2 things:

Perl looks in the current directory structure for the modules

That is, Perl does not use the installed version of the code, if any.

The code looks in the current directory structure for .htoffice.contacts.conf

That is, it does not use the installed version of this file, if any.

So, if you leave out the '-Ilib', Perl will use the version of the code which has been formally installed, and then the code will look in the same place for .htoffice.contacts.conf.

Start testing

Point your broswer at (trivial script).


Where does the list of currencies come from?

Save this page in data/currencies.html, and run scripts/

I'm having trouble dropping and recreating the tables.

Firstly, drop the tables associated with donations, then the basic tables. Then recreate them.

Donation tables

cd CGI-Office-Contacts-Donations scripts/ -v

Basic tables

cd CGI-Office-Contacts scripts/ -v scripts/ -v scripts/ -v scripts/ -v

Donation tables

cd CGI-Office-Contacts-Donations scripts/ -v scripts/ -v scripts/ -v

Support ^

Email the author, or log a bug on RT:

Author ^

App::Office::Contacts::Donations was written by Ron Savage <> in 2009.

Home page:

Copyright ^

Australian copyright (c) 2009, Ron Savage. All Programs of mine are 'OSI Certified Open Source Software'; you can redistribute them and/or modify them under the terms of The Artistic License, a copy of which is available at:

syntax highlighting: