⚠️ 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.
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:
Alumni records via BUID/BQIDEngagementActivity records automatically from check-in dataContact recordsLean 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.
The integration introduces two new models:
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.
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.
| 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 |
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.