Skip to content

Registration form for the Toastmasters Leadership Institute events

License

Notifications You must be signed in to change notification settings

mpaluchowski/tli-registration

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

TLI Registration Form

A registration form for the Toastmasters Leadership Institute events, built on top of the PHP Fat-Free Framework with Bootstrap.

Features

  • customizable form with all but the email field being optional, any number of fields supported
  • form dependencies, allowing showing and hiding fields based on others' values
  • list of clubs, allowing adding new custom entries
  • client (HTML5-based) and customizable server-side validation, including guidance for people entering a duplicate email on how to proceed
  • forms retrievable and viewable by a unique hash for simple security
  • confirmation emails upon registration and later on request
  • support for limited seat numbers and waiting list
  • support for putting registrations on hold, pending further confirmation
  • explicit registration statuses and guidance through the registration process
  • customizable price calculation including real-time re-calculation on form edition and support for multiple currencies
  • discount code support, with ability to define discounts for any of the pricing items and email them directly to the recipient
  • online payment integration, with interface for adding custom processors
  • customizable form processing
  • administrative area with overview of all registrations, statistics
  • reports for administrators, with lists of registrations by: club and Executive Committee position
  • administrative login via password or Google
  • audit log to track back important events
  • internationalization
  • all layouts responsive
  • mailer allows rerouting all emails to single inbox in testing, adding BCC to all outgoing email
  • custom, friendly error pages
  • optional SSL enforcement

Requirements

  • PHP 5.4 or later with extensions
    • pdo_mysql
    • curl

Installation

  1. Copy all files to a web server directory.
  2. Download the Fat-Free Framework and unpack its /lib/ directory into the form's /lib-fatfree/ directory.
  3. Download the PHP-JWT library and copy its /Authentication/JWT.php file into the form's /lib-php-jwt/ directory.
  4. Create a MySQL database for the registrations and load the initiation scripts /sql/structure.sql and /sql/data-init.sql.
  5. Copy /app/defaults.ini to /app/config.ini and fill in the configuration.
  6. Copy /public/.htaccess.default to /public/.htacceess and set Apache Rewrite settings inside, as necessary.
  7. Setup your virtual host to point to the /public/ directory and make sure your PHP can access one directory above it, to be able to load the application classes.

Customization

The form is designed and built to be generic wherever possible, so that it can easily be re-used for many TLIs and other events. There are, however, several components that need to be adjusted in order to tailor the form to a specific event:

  • model
    • form processing, implementing the interface /app/helpers/FormProcessor.php and configured in config.ini at form_processor.
    • form validation, implementing the interface /app/helpers/FormValidator.php and configured in config.ini at form_validator.
    • mandatory form rendering, implementing the interface /app/helpers/FormRenderer and configured in config.ini at form_renderer.
    • mandatory price calculation, implementing the interface /app/models/PriceCalculator.php and configured in config.ini at form_price_calculator.
    • online payment integration, implementing the /models/PaymentProcessor interface (or use one of the existing implementations), and setting the implementation class path in config.ini value payment_processor, together with all payment_-prefixed options and any custom options your processor requires.
  • view
    • form designs in /app/ui/registration/ and /app/ui/administration/ with possible adjustments to CSS in /public/css/.
    • top navigation menu with links to your conference's website in /app/ui/_navigation.php
    • localizations in /app/dict/, mostly around form fields.
    • possible adjustments to code in /public/js/, if some fields are named differently or not available.

Credits

Building the TLI Registration Form quickly was only possible thanks to the relentless work of others, whose components became parts of this software:

License

The TLI Registration Form is freely available and open-source, following the terms of the MIT License. For details of the license, please refer to LICENSE.

About

Registration form for the Toastmasters Leadership Institute events

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published