CatLab Events is a ticketing system currently aimed towards quizzes, but adaptable to any kind of event that requires tickets to be sold. It includes integration with a centralized payment gateway and UiTPAS integration (in Belgium).
The project relies on some external projects so hosting it is not a straight forward business. You'll have to either implement an SSO and payment gateway, or contact us to create accounts on our systems.
Run composer install
to download all required php libraries. Copy .env.example
to .env
and fill in the database
credentials. Finally, run php artisan migrate
to initialize the database.
Run npm install
to install all dependencies and then run npm run production
to compile the resources.
You should now be able to register an account on the website.
Only admin users can log in into the admin dashboard (at /admin
). The first user that registers at the fresly installed
platform will get admin rights assigned automatically.
The platform can host multiple organisations. When an admin user logs in into the admin panel, an organisation is created for them, but an admin user can be assigned to multiple organisations.
The admin state of a user is stored in the admin
property of the users
table.
There are two buildscripts in /build that you might want to use to deploy on production servers.
We run prepare.sh
on our buildserver, then push the whole project over sftp and finally run upgrade.sh
on
the production server. There are cleaner ways to handle deploys, so feel free to use your own system.
This project integrates with the UiTPAS API to sell discounted/subsidised tickets for verified organisations. The integration does not include synchronizing events with the uitdatabank just yet, so uitdatabank ids must be manually set in the event admin panel.
A sale of an UiTPAS subsidised ticket follows a few steps:
- Before the sale, a client is requested to enter their UiTPAS id in a text field. Once submitted, a call is made to
uitpas/cultureevent/search
to fetch the applicable tariff for this specific user. This call happens in UiTPASVerifier. Once the appropriate tariff is fetched, it is entered in the TicketPriceCalculator where the tariff is split into ticket sale, transaction costs and VAT, depending on the settings of the event (include / exclude ticket fee from the tariff). - The user then has a chance to validate their purchase.
- When they confirm their sale, we first create a new Order, save it, then register the sale
to UiTPAS (this can only be done once) by calling
uitpas/cultureevent/{eventCdbid}/buyonline/{uitpasNumber}
and then redirect the user to the payment gateway. The registration happens in registerTicketSale in UiTPASVerifier. We store the UiTPAS sale id in the Order model. - If the payment succeeds, we are done.
- If the payment does not succeed, we need to cancel the order to make sure the user can try again and the UiTPAS sale
won't block the transaction. We call
uitpas/cultureevent/cancelonline/{ticketSaleId}
This is done in registerOrderCancel in UiTPASVerifier.
events.catlab.eu live.quizfabriek.be live.huiskamerquiz.be tickets.quizfabriek.be live.quizwitz.com live.sittingbull.be quiz.gent www.quiz.gent