svc-check-in¶
NovaTrek Check-In Service | Operations | v1.0.0 | NovaTrek Operations Team
Handles day-of-adventure check-in workflow including wristband assignment,
Swagger UI Download OpenAPI Spec Live Service (Dev) Azure Portal CI/CD Pipeline Source Code Technology Stack
Delivery Status¶
Delivery Wave: 3 -- Day-of-Adventure Operations
| Stage | Status |
|---|---|
| Infrastructure (Bicep) | |
| Database Schema (Flyway) | |
| Deployed to Dev | |
| Smoke Tested | |
| Deployed to Prod | not-started |
| Pipeline | Status |
|---|---|
| CI Pipeline | |
| CD Pipeline |
Azure Resources (Dev):
Integration Context¶
Generated from architecture/specs/svc-check-in.yaml + cross-service-calls.yaml
Data Store¶
Entity Relationship Diagram¶
Generated from architecture/metadata/data-stores.yaml
Overview¶
| Property | Detail |
|---|---|
| Engine | PostgreSQL 15 |
| Schema | checkin |
| Tables | check_ins, gear_verifications, wristband_assignments |
| Estimated Volume | ~5,000 check-ins/day peak season |
| Connection Pool | min 5 / max 20 / idle timeout 10min |
| Backup Strategy | Continuous WAL archiving, daily base backup, 7-day PITR |
Key Features¶
- Indexes on reservation_id and check_in_date
- TTL-based cleanup of stale check-ins (older than 24h)
- Composite unique constraint on (reservation_id, participant_id)
Table Reference¶
check_ins¶
Primary check-in records for each guest arrival
| Column | Type | Constraints |
|---|---|---|
check_in_id | UUID | PK, DEFAULT gen_random_uuid() |
reservation_id | UUID | NOT NULL, FK -> svc-reservations |
participant_id | UUID | NOT NULL |
guest_id | UUID | NOT NULL |
adventure_category | VARCHAR(50) | NOT NULL |
check_in_pattern | SMALLINT | NOT NULL, CHECK (1-3) |
status | VARCHAR(20) | NOT NULL, DEFAULT 'pending' |
checked_in_at | TIMESTAMPTZ | DEFAULT NOW() |
checked_in_by | VARCHAR(100) | NULL (staff ID or 'self') |
created_at | TIMESTAMPTZ | NOT NULL, DEFAULT NOW() |
updated_at | TIMESTAMPTZ | NOT NULL, DEFAULT NOW() |
Indexes:
idx_checkin_reservationonreservation_ididx_checkin_dateonchecked_in_atidx_checkin_guestonguest_id, checked_in_at DESCuq_checkin_participantonreservation_id, participant_id(UNIQUE)
gear_verifications¶
Gear assignment verification records linked to check-ins
| Column | Type | Constraints |
|---|---|---|
verification_id | UUID | PK |
check_in_id | UUID | NOT NULL, FK -> check_ins |
gear_assignment_id | UUID | NOT NULL |
verified_by | VARCHAR(100) | NOT NULL |
status | VARCHAR(20) | NOT NULL |
notes | TEXT | NULL |
verified_at | TIMESTAMPTZ | NOT NULL, DEFAULT NOW() |
Indexes:
idx_gear_ver_checkinoncheck_in_id
wristband_assignments¶
Digital wristband NFC assignments for checked-in guests
| Column | Type | Constraints |
|---|---|---|
assignment_id | UUID | PK |
check_in_id | UUID | NOT NULL, FK -> check_ins |
wristband_nfc_id | VARCHAR(64) | NOT NULL, UNIQUE |
active | BOOLEAN | NOT NULL, DEFAULT TRUE |
assigned_at | TIMESTAMPTZ | NOT NULL, DEFAULT NOW() |
deactivated_at | TIMESTAMPTZ | NULL |
Indexes:
idx_wristband_nfconwristband_nfc_id(UNIQUE)idx_wristband_checkinoncheck_in_id
Solutions Affecting This Service¶
| Ticket | Solution | Capabilities | Date |
|---|---|---|---|
| NTK-10006 | Real-Time Adventure Tracking and Emergency Alerting System | CAP-3.3, CAP-3.2, CAP-2.1 | 2026-03-20 |
| NTK-10002 | Adventure Category Classification for Check-In UI Patterns | CAP-2.1, CAP-1.2 | 2025-02-10 |
| NTK-10005 | Add Wristband RFID Field to Check-In Record | CAP-2.1 | 2025-02-08 |
Endpoints (5 total)¶
GET /check-ins -- List check-ins by reservation¶
Generated from architecture/specs/svc-check-in.yaml Auto-generated baseline — shows standard request flow. For detailed behavioral sequences, see the relevant solution design.
POST /check-ins -- Initiate check-in for a participant¶
Begins the check-in process for a reservation participant. Validates that
Architect-authored — overrides auto-generated baseline Source: architecture/diagrams/endpoints/svc-check-in--post-check-ins.puml
GET /check-ins/{check_in_id} -- Get check-in details¶
Generated from architecture/specs/svc-check-in.yaml Auto-generated baseline — shows standard request flow. For detailed behavioral sequences, see the relevant solution design.
POST /check-ins/{check_in_id}/gear-verification -- Verify gear has been picked up and fitted¶
Records that the participant has received and been fitted with required
Architect-authored — overrides auto-generated baseline Source: architecture/diagrams/endpoints/svc-check-in--post-check-ins-check_in_id-gear-verification.puml
POST /check-ins/{check_in_id}/wristband-assignment -- Assign RFID wristband to checked-in participant¶
Assigns a color-coded RFID wristband for tracking and access control
Generated from architecture/specs/svc-check-in.yaml Auto-generated baseline — shows standard request flow. For detailed behavioral sequences, see the relevant solution design.
Consuming Applications¶
| Application | Screens Using This Service |
|---|---|
| Operations Dashboard | Check-In Station |
| Adventure App | Self Check-In, Digital Wristband |
Events Published¶
| Event | Channel | Trigger | Consumers |
|---|---|---|---|
checkin.completed | novatrek.operations.checkin.completed | POST /check-ins | svc-analytics, svc-notifications |