Skip to main content

Footprint: stable release is out (codename: FOR)

Posted by felipegaucho on October 23, 2007 at 7:45 AM PDT

After a long vacation, I finally had time to release the first stable release of Footprint :). The project is new and should evolve to something more sophisticated in the next few months. For now, we are proud to provide the community a simple tool to enhance the quality of JUG events or perhaps bigger or more commercial events. I hope you follow our Footprint.

* The project's license is LGPL and the full source code is available at the SVN repository.

Our new project logo

The Footprint project

As explained in
my last blog about the Footprint
, the aim of the project is to provide an easy way
of delivering certificates to JUG meetings attendants. The basic user story is the following:

  1. The JUG promotes an event.
  2. During the event, a JUG representative collects the name and email of the participants.
  3. After the event, all participants receive a certificate of presence - signed PDF file - through email.
  4. The generated certificates can be validated through the public key of the JUG, published in the JUG web site.

How it works?

The algorithm of footprint:

  1. Reads an XML config file, and uses JAXB to construct an Object representation of the configuration. The
    configuration file contains several definitions, such as JDBC connection, PDF template and keystore details.
  2. Reads the PDF template, previously created with OpenOffice or other PDF generator tool.
  3. Access the JDBC connection to read the JUG members data. For each addressee:
    1. Fill the PDF template with the member data (name, address, etc.)
    2. Generate a new PDF file with the member information.
    3. Sign the new PDF
    4. Send the new file by email to the addressee

The security part of the project is based on the Bouncy Castle's library, and all PDF manipulation is done with the fantastic iText library. Other basic features are the logging over all operations and the internationalization of all classes.

How to run the example?

The release contains a README.txt file with brief instruction on how to start using Footprint, but in short you must:

  1. download the release and extract it in your computer.
  2. Edit the file resources/configExample.xml and change the user and password of the SMTP server:
    <email smtp.user="EMAIL_ACCOUNT_LOGIN" smtp.password="EMAIL_ACCOUNT_PASSWORD" msg.from="EMAIL_ACCOUNT_LOGIN" smtp.transfer.protocol="smtp"
    smtp.star.ttls.enable="true" smtp.host="SMTP_HOST" smtp.content.type="text/plain"
    smtp.auth="true" socks.proxy.port="" socks.proxy.host=""
    msg.subject="Footprint Certificate - DEMO"
    msg.body="You can write a message body here.. or customize it through the code, check the demo file..." />
    />
    The example comes pre-configured to access the gmail server, but you can change it to any SMTP server. You can also configure the proxy information in case you are behind a firewall. You can also try a first time without configuring the SMTP settings, it will generate the signed PDF without sending it through email.
  3. Edit the file demo.csv in order to include an email address you can verify later :). You can include several new lines in this file in order to observe the system generating multiple PDFs.
  4. Open a console and run the following command:java -cp .;lib\bcprov-jdk16-136.jar;lib\csvjdbc.jar;lib\footprint-config.jar;lib\footprint-core.jar;lib\itext-2.0.2.jar;lib\mail.jar FootprintDemo

That's it - if it fails for any reason, please don't hesitate to send me an email with the failure description.

How to change the configuration file?

Documentation is an issue by design of our project. Since we don't have many collaborators, we always prioritize the implementation (code first). But you can check the configuration schema, and if you have doubts about its structure, please leave a comment below this page.

Related Topics >>