Skip to content

conferencetools/attendance-application

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Conference tools

This is the main application and bootstrap code for various conference tools modules. It is intended to give a quick start into developing the modules and deploying them into production. The modules are expected to be used in a mix and match format, so should be cross compatible.

The tools were written for PHP Yorkshire and are very much a work in progress. It is not yet intended that other events be able to use them in production, but I am working towards that.

Available modules

Functional modules

There are currently two functional modules to provide for different areas of event management

Attendance module

The most robust of the modules so far, provides ticketing, merchandise and delegate management for the event(s) future features are expected to include a GDPR compliant method to share data with sponsors and a prize draw component

Speakers module

A CRM still under heavy development to manage the speakers at your event. Currently manages hotel bookings, station pickups and travel reimbursements. Expected features are speaker activities (eg speaker dinner), talk/bio edits (with approval), integrations to automate ticket booking and payouts, schedule management, export to joind.in and speaker payments (eg profit share arrangements)

Sponsors module

A CRM for managing sponsors at the event. The existing implementation was abandoned, however I intend to pick this up again when possible. Expected features include strong integration into attendance module eg for sharing delegate info and creating prize draws as well as workflow features to manage leads through to invoicing and contract generation.

Support modules

There are also a number of support modules which may work entirely stand alone but are designed to integration into the conference tools platform.

Admin module

Provides basic helpers and layout for creating the admin panel for the modules. This base will allow each of the modules to work side by side within a single admin control panel.

Authentication module

Provides (very) basic authentication and RBAC facilities which the other modules can leverage

Stripe payment provider module

An optional addon for the attendance module provides a stripe integration for handling payments. This module could be used as a template for anyone wanting to use a different payment provider eg PayPal.

Files module

I intend to create a shared module for handling files - the functionality is currently only within the speaker CRM however when work pick up on the sponsor CRM this will need to be extracted into it's own module.

Installation of a development environment

  1. Clone this repo
  2. Using the cft.sh script run: ./cft.sh install This will clone all of the modules and build the development Docker image
  3. Modify the app.env file to enable the modules you wish to develop on.
  4. Make a copy of the config.dev.php.dist file in the same directory, dropping the .dist extension. Fill out the config for stripe (if required) and mail config
  5. Using the cft.sh script run: ./cft.sh env build This will build a working environment and make the site available on http://localhost:8103

You can pause the environment using ./cft.sh env down and start it again with ./cft.sh env up

To remove the environment use ./cft.sh env cleanup (After doing this you will need to build again to get a working environment)

Using development environment

Running composer

This application uses some tricks to enable local development of composer dependencies. If you need to do anything with composer in this repo (eg an update to pull in new module dependencies) use composer via the cft tool eg ./cft.sh composer update

Database stuff

There are three db commands accessed by ./cft.sh db these are:

  • reset: create a clean empty database based on currently enabled modules and entity definitions.
  • diff: perform a diff between existing db and entity definitions
  • migrate: perform a migration on the db to bring it inline with entity definitions (this may not always succeed eg adding a non-null column will require a reset)

Run cron

The cron events can be run using

./cft.sh runcron This will perform cleanup actions eg expiring purchases which haven't been paid for.

*** The cron will not run UNLESS you use this command ***

Deploying to production

Please don't (yet) :)

If you are really keen to use this straight away, please get in contact and I can share my currently private setup with you.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published