alumni_lookup

Event Check-in Integration: Overview

⚠️ PLANNING DOCUMENT — This describes features that are NOT YET IMPLEMENTED.

Prerequisite Complete: Authentication & Roles System — all 6 phases implemented. Event Check-in depends on role infrastructure, permission flags, and Pundit policies established in that project.


Problem Statement

Belmont University currently operates two separate Rails applications:

Application Purpose Tech Stack
Alumni Lookup Central alumni data, engagement tracking, staff portal, future Champion Portal Rails 7.1, PostgreSQL, Tailwind, Hotwire
alum-events Day-of-event check-in, badge printing, attendance export Rails 7.0, PostgreSQL, Picnic CSS, Stimulus

This separation creates friction:

  1. Pre-event data prep requires manual CSV export/import between GiveCampus → Excel → Alumni Lookup → alum-events
  2. Post-event exports must be manually reconciled with BruinQuest (CRM)
  3. Historical attendance is lost after each event (attendees cleared between events)
  4. Two apps to maintain, with no authentication on the event app
  5. No persistent contact identity across events for non-alumni attendees

Goals

  1. Eliminate manual data prep by importing GiveCampus CSV directly into Alumni Lookup
  2. Link event attendance to existing Alumni records via BUID/BQID
  3. Create EngagementActivity records automatically from check-in data
  4. Preserve attendance history across events via persistent Contact records
  5. Support non-alumni attendees (parents, guests, staff) with proper CRM export handling
  6. Provide staff a unified experience for alumni data + event operations
  7. Position event data to enhance the Champion Portal (future)

Recommendation: Integrate with Phased Approach

Lean Yes — Integrate event check-in functionality into Alumni Lookup, but:

The alum-events documentation already identifies this as an “integration opportunity.” The tech stacks are compatible (both Rails, PostgreSQL, Hotwire), and Alumni Lookup’s Alumni model + BUID/BQID system provides a natural join point.


Core Data Model

The integration introduces two new models:

Contact

Represents any person who may attend events — alumni, parents, students, staff, or guests. Matches BruinQuest terminology.

Contact
├── bqid (C-000000000, if known to BruinQuest)
├── alumni_id (FK to Alumni, if matched)
├── first_name, last_name, email, phone
├── contact_type (alumni, parent, student, staff, guest, vip, unknown)
└── timestamps

Key insight: For alumni-type contacts, link to the existing Alumni record rather than duplicating data. For non-alumni, store contact info directly.

Registrant

Links a Contact to an Event with attendance status.

Registrant
├── event_id (FK)
├── contact_id (FK)
├── unique_id (group/registration ID from GiveCampus)
├── checked_in_at, printed_at, regrets_at
├── status
└── timestamps

See 02-phased-integration-plan.md for full schema details.


Success Metrics

Metric Target
Pre-event data prep time Reduced by 80%+ (no Excel merge step)
Post-event export usability Direct BQID mapping, BruinQuest-ready format
Historical attendance tracking 100% retention across events
Staff training burden Single app, no context switching
Event attendance → Engagement score Automatic activity creation

Document Contents
01-pros-cons-and-questions.md Detailed pros/cons analysis, pre-integration questions
02-phased-integration-plan.md Development roadmap with testing/doc expectations
03-champion-portal-interaction.md Champion Portal alignment and sequencing
04-event-rsvp-converter.md IMPLEMENTED — Pre-integration utility for converting GiveCampus CSV exports

Reference: alum-events Documentation (External)

The standalone event check-in app (alum-events) has its own documentation in its repository. Key documents that informed this integration plan:

Document Contents
01-architecture.md System overview, external integrations, ID systems (BUID/BQID), active event pattern
02-data-models.md Attendee, AttendeeEvent, Event, Setting models and relationships
03-functionality.md Search, check-in, action bar UI, print list, real-time stats, badge printing, photos, CSV import/export
04-development.md Local setup, deployment, testing, troubleshooting
05-frontend.md CSS (Picnic), JavaScript (Stimulus), badge templates, print styles
06-routes-api.md All routes, path helpers, parameters
07-future-features.md Planned improvements: incremental import, session-based events, print list bulk actions, constituent model

Note: These documents remain in the alum-events repository. They are referenced here for context but are not copied into Alumni Lookup.