Back to buildsBUILD RECORD

Kingdom Pioneers / Events and job-directory application / 2026

Connecting event registration to the event agenda.

Kingdom Pioneers uses an event's first scheduled session to decide when signups close, keeping registration tied to the agenda people see.

THE WORK

The project.

Kingdom Pioneers combines event information, attendee registration and a job directory in Laravel. Its registration flow takes the first session in the agenda as the event's effective start and closes signups two hours earlier. An authenticated attendee can register a group of one to three; the server checks the time, looks for an existing registration and validates the group before saving it.

IMPLEMENTATION

Design choices.

  1. Calculating the deadline from the first session means an agenda change also changes the registration cutoff. There isn't a second deadline to keep aligned with the schedule.
  2. Sessions and registrations have separate records. Editing when an event runs doesn't require rewriting who has registered.
  3. The existing-registration check gives repeat signups a clear refusal. Two requests reaching that check together need a database constraint or transaction strategy that still has to be verified.

HOW IT FITS TOGETHER

Architecture.

  • The event detail controller loads the agenda, speakers, location and gallery together with the current user's registration state. Blade can show the event and the attendee's place in it from the same event record.
  • The signup handler orders sessions by date and start time, then uses the earliest one to calculate the cutoff. An event without sessions falls back to its own start date, so the same handler covers both kinds of schedule.
  • An accepted request creates a registration linked to the event and authenticated user. The job directory uses separate queries and category, author and location relationships; attendee data doesn't have to share a model with job postings.
Explore the architecture map7 components · 7 connections

Event browsing and registration

A public detail page and an authenticated signup share event data but have different write rules.

Direct callBlocked / denied
Web surfaces
Laravel application
Relational data

Scroll or drag the background to move. Use the zoom buttons to resize.Arrow keys move between components. Enter selects.

Choose a component to explore

Select a numbered component on the map or use the component menu. Its details and connections will appear here.

No component selected.

All connections (7)
  1. 01 · Event visitor02 · Event detail controllerview · Direct call
  2. 03 · Event and schedules02 · Event detail controllerrelated content · Direct call
  3. 02 · Event detail controller04 · Authenticated signupregistration action · Direct call
  4. 04 · Authenticated signup05 · Closing time and duplicate checkssubmit · Direct call
  5. 03 · Event and schedules05 · Closing time and duplicate checksschedule and existing rows · Direct call
  6. 05 · Closing time and duplicate checks06 · Registration refusednot eligible · Blocked / denied
  7. 05 · Closing time and duplicate checks07 · Registration rowsaccepted signup · Direct call

MADE WITH

PHP · Laravel 11 · Blade · Eloquent · Bootstrap · Vite

ACCESS & INPUT

Security controls.

  • The registration route requires authentication and applies a request rate limit. The handler takes the attendee identity from the current session.
  • Before saving, the handler checks for an existing registration and accepts only an integer group size from one to three. The duplicate lookup doesn't establish protection against simultaneous requests.

CHECKS & RESULTS

What was checked.

A source review shows what the code does. It is not a fresh test of the running app.

  1. Code and development records reviewedReviewed

    The code, tests and available development records were checked. Reported test results keep their original scope. No fresh app or live deployment check was run for this write-up.

    Scope of this check
    Code review, not a fresh run of the app

NEXT

Still to work through.

The registration path is present in source, including uncommitted changes beyond the recorded history. I still need to check simultaneous signups, publication rules and authorization with runtime tests before treating the prototype as ready for public registration.