flexible-event-and-booking-manager

Flexible Event Bookings made with Laravel 10

Stars
4

Flexible Event and Booking Manager

This application allows to manage events, their booking forms and bookings via a web-based platform.

Features

  • Manage events and event series, locations, and organizations
    • Events and series can have a parent event (series).
  • Manage booking options and their booking forms (for events without a parent event)
    • Users editing booking forms can see a preview for the booking forms if bookings are not enabled yet.
  • Bookings
    • Confirmation via email
    • Guest bookings are supported, but can be forbidden by enabling the restriction to logged-in users in the settings of the booking option.
    • Users with the corresponding access rights can view, export, edit, delete and restore bookings.
      They can also add a booking comment and set the payment status.
  • Group participants for events with bookings
    • Bookings are automatically grouped by their booking option.
    • If a date of birth is submitted, the age of each participant and average age of each group is shown.
    • Sub events have the bookings from parent event.
    • Generate groups (randomized or age-based)
  • Manage responsibilities (responsible users with their position) for events, event series and organizations
  • Add, update, delete documents for events, event series, and organizations
  • Login and logout, reset password, verify e-mail address, edit own account
  • Manage users and flexible roles
    • Notify users if an account was created for them (optional)
    • Registration (if enabled via .env)
  • Manage personal access tokens (for Laravel Sanctum)
  • Footer links for legal notice, privacy, terms and conditions configurable via .env

Development

Requirements

To get started, you need to install the following software:

  • Composer to manage PHP dependencies,
  • PHP, and the PDO extension for the database of your choice,
  • a relational database, such as MariaDB

Used technologies

How to develop

To setup/update your development environment:

  • Run composer install to setup autoloading and install the development dependencies for PHP.
  • Create/update the .env configuration if necessary (see Configuration below).
  • Run php artisan migrate to migrate the database to the latest version.

For development, we use

Code Style

Run composer cs to check compliance with the code style and composer csfix to fix code style violations before every commit (see composer.jsonandpackage.json` for commands to run the code style check/fix for just one language).

Any texts in the code MUST be in English. Use composer translate to extract them to lang/de.json.

How to deploy

  • Run composer production to remove development dependencies.
  • Create/update the .env configuration if necessary.
  • Run php artisan migrate to migrate the database to the latest version.
  • Upload files to the production system.

Configuration

  • APP_NAME and APP_OWNER define name and owner shown in header or footer.
  • APP_DEFAULT_LOCALE defines the locale to use for translations by default.
  • APP_URL_LEGAL_NOTICE, APP_URL_PRIVACY_STATEMENT, and APP_URL_TERMS_AND_CONDITIONS can be set to URLs
    for the respective pages which show up in the footer of the webpages and of the emails.
  • REGISTRATION_ENABLED=true enables registration which is disabled by default.
Badges
Extracted from project README
Code style Tests
Related Projects