# Production guide — Attend, connect and arrive with EventOxygen

Companion to [the Markdown course](../eventoxygen-attend-and-connect.md). These are instructions for a future recording, with real stills already captured. There is no finished video in this package.


## Current recording checkpoint — 24 September 2026

The course is still under live review. Use [the current application report](../../application-fixes/eventoxygen-live-walkthrough.md) to distinguish retested scenes from historical captures below. Do not label the full course verified yet.

New verified stills are in `../../application-fixes/assets/mobile-local/`: `eventoxygen-browse-local.png`, `eventoxygen-signup-local.png`, `eventoxygen-signup-fixed.png`, `eventoxygen-free-registration-local.png` and `eventoxygen-my-events-reopened.png`. They show the configured event, actual signup fields, corrected direct navigation after signup, a single free registration prepared for submission and persistence after reopening. The fixed-signup still uses the second practice attendee, Kofi; label that identity switch rather than presenting it as Lina. Both accounts now have separate successful free bookings. Keep admission codes out of new footage.

Record the organizer configuration chapter from the updated course's private define-file procedure. Film placeholders only. Application fixes are part of this local review; do not claim this is unmodified feature code. Fresh native checks now verify schedule save/reopen/list/delete, the visible Home speaker card, profile QR image chooser, People self-filtering, immediate connection totals and event-drawer logout. Meeting creation displays the correct venue timezone; recipient acceptance and organizer readback now pass. Profile Save persists through restart; chat displays local timestamps in chronological order; the learner-created post saves with its text and reopens from Bookmarks. Ticket QR refresh/failure/recovery has also passed; staff admission is the next check. Use the current report’s corresponding `eventoxygen-*.png` captures.

## The promise and the opening

Open on Lina's ticket changing from **CONFIRMED** to **CHECKED_IN**, then show the message she received from Kofi. Narration: “Your ticket gets you through the door. EventOxygen also helps you find the programme, meet people and keep the conversation going.” Explain that EventOxygen is the attendee app and Appmint Mobile is the staff app. Keep their names visible during the handoff.

Use the conference's existing training records. The screenshots are from an Android API 36 emulator running a current-source build connected to the training organization. They are genuine native screens, not iOS captures or the public Android release. Keep that disclosure in the introduction and asset credits. Use portrait footage at its natural ratio, with a readable explanatory panel alongside it for a landscape edition. Do not stretch the phone to fill a landscape frame.

## Story and scene order

| Scene | What to demonstrate | Narration and emphasis | Existing stills |
| --- | --- | --- | --- |
| 1. Finish first | Checked-in ticket and received message | The useful outcome before explaining navigation | `42-attendee-ticket-after-door.png`, `31-lina-inbox.png` |
| 2. Get the right app | Appmint download entry and organizer-specific configuration | The stock app belongs to the stock organization; this lesson uses a configured training build | `01-android-download-denied.png`, `02-browse-signed-out.png` |
| 3. Create an attendee identity | My Account, Sign Up, name, email, password, submit | Use the email that will own the registration; mask password throughout | `03-attendee-signin.png` through `07-new-attendee-home.png` |
| 4. Register | Browse Events, conference, Get Tickets, identity fields, quantity, submit | Checkout does not prefill name/email in this build; explicitly enter them | `08-event-detail.png` through `11-registration-result.png` |
| 5. Return | Relaunch and open the saved event | A saved registration survives leaving the app | `12-my-event-after-relaunch.png`, `13-attendee-event-home.png` |
| 6. Plan the day | Home → Schedule, select session, read detail | Explore is the social feed; Schedule is a separate quick action | `14-schedule.png`, `15-session-detail.png` |
| 7. Meet someone | Home → People, Kofi, Connect | Pending is a request, not an accepted connection | `16-event-people.png`, `17-connection-pending.png`, `19-sent-request.png` |
| 8. Accept on the other side | Kofi → Connections → Received → green check | Label the account change clearly; the check icon accepts | `21-kofi-received-request.png`, `22-connection-accepted.png` |
| 9. Continue privately | Chat bubble, message, recipient's Inbox | Show both sender and recipient so delivery is understandable | `24-message-sent.png`, `31-lina-inbox.png` |
| 10. Understand the two QRs | Profile QR versus ticket | Profile connects people; ticket identifies admission | `26-profile-qr.png`, `40-lina-ticket.png` |
| 11. Keep the ticket handy | Overflow menu, Pin ticket, reopen menu | Unpin confirms the saved pin state; assignment is a separate operation | `28-ticket-menu.png`, `29-ticket-pinned.png`, `30-assign-ticket-form.png` |
| 12. Arrange a meeting | Person profile → Meet, complete form, show error | Current native request fails; make the limitation explicit | `32-person-profile.png`, `33-meeting-request-form.png`, `34-meeting-request-result.png` |
| 13. Developer repair path | Supported API create and recipient acceptance, return to app | A separate API action creates this meeting; do not edit out that transition | `39-confirmed-meeting.png`, meeting JSON evidence |
| 14. Use the feed carefully | Explore, save, Bookmarks, compose a training post | This run fell back to the organization-wide public feed | `35-explore-feed.png` through `38-post-in-feed.png` |
| 15. Arrive | Staff app → Scan → Main hall → Manual Lookup → Lina → Check in | Demonstrated admission uses email lookup, not a camera decoding the ticket | `41-staff-admits-lina.png`, `42-attendee-ticket-after-door.png` |

The table is the original capture ledger. For updated scenes use the current `application-fixes/assets/mobile-local` stills described above, including `eventoxygen-profile-saved.png`, `eventoxygen-chat-order-fixed.png`, `eventoxygen-practice-post-draft.png`, `eventoxygen-practice-post-created.png`, `eventoxygen-saved-post-fixed.png`, `eventoxygen-saved-post-reopened.png` and `eventoxygen-ticket-offline-safe.png`. Do not mix the old inert controls or API meeting workaround into the corrected walkthrough. Original filenames above resolve within [the EventOxygen asset directory](../assets/eventoxygen). Use the [capture ledger](../assets/eventoxygen/evidence.json) for capture context. Keep the companion course beside the edit; the course gives each field value and the limitations that belong beside it.

## Record the actions that stills cannot explain

Record signup as one continuous native interaction. Pause on the completed form before submit, keeping the password masked. After successful creation this build returns to the previous sign-in route. Show Android Back once to reach the authenticated home instead of cutting directly to the home screen. Similarly, logging out leaves the old event shell visible until Back. Narrate the navigation behavior accurately; do not imply the old account remains authenticated.

Record ticket registration from the event detail through the confirmation, with a deliberate pause on the initially empty **Email** and **Name** fields. Show free general admission quantity one and paid workshop quantity zero. Do not select a paid ticket merely to obtain a payment screen. The demonstrated result is a free booking marked paid, with a confirmed ticket. Relaunch before the next scene to show the saved record.

For connections, use two clearly labeled devices or two separate clips labeled **Lina — attendee** and **Kofi — attendee**. Keep the Pending state long enough to read. On Kofi's Received list, zoom toward the green check and the adjacent decline icon; a cursor or callout can distinguish them without inventing an “Accept” button label. The summary counter was briefly stale after acceptance; either show a refresh or explain the temporary mismatch. Do not alter the number digitally.

For messaging, retain the full send-and-receive chain. The practiced message is “Coffee after the joinery talk? Meet by the main hall stage.” These are fictional training accounts controlled for the rehearsal. Do not send it to an actual attendee. Leave the recipient Inbox visible for several seconds so viewers recognize the conversation's arrival.

The meeting form must end with its actual **At least one participant is required** error. Insert a chapter card, **Developer branch: create through the supported API**, before showing the successful meeting. Display `participantIds`, `description`, `startTime`, `timezone` and the recipient response; replace credentials with explicit placeholders. The native form currently sends incompatible field names. The confirmed native card displays `18:15`, while the appointment was requested for `12:15 America/Chicago`; label the display defect rather than reading the wrong time aloud as the agreed venue time.

Record the feed scope before composing. The event's generated community page was absent from the active event-page result, and the app displayed the general organization feed. The tutorial post is public and has no event page ID. Do not put a “private conference group” overlay on that footage. The saved item screen shows a generic **POST** entry; avoid a title animation suggesting the app displays more detail than it does.

For arrival, put the staff device on the left and attendee device on the right. Show **Main hall**, **Manual Lookup**, the training email, and **Check in**. The staff confirmation is blue and says **CHECKED IN**. The saved attendee ticket then reads **CHECKED_IN** after reopening. A physical camera scan has not been recorded; the emulator's camera scene is not ticket-scanning evidence.

## Download and customization chapter

The historical `android-latest/` link returned `403 AccessDenied`. The corrected public `android/latest/event_app.apk` package was installed in the subsequent review. Do not teach the obsolete failing path as the current download route. Explain that the stock app and an organizer-configured build can show different organizations. The iOS destination comes from Appmint's public download entry; no iOS installation was performed.

For the optional developer chapter, show a sanitized configuration excerpt with placeholders for API origin, organization, app ID and app secret. Never film the actual environment file: it contains credentials. Explain that the local emulator uses its host-network bridge address; this is a development setup, not a link attendees should type. The training build used a distinct app label and a registered application identity. The 24 September local review includes application fixes; identify the build being filmed. Do not promise an open-source license or a public repository URL that has not been verified.

## Graphic and accessibility notes

Use a simple two-lane diagram: **Attendee: account → registration → ticket** above **Staff: choose zone → lookup → admission**. Connect the ticket and admission with one arrow. A second graphic can show **request → pending → accepted → conversation**. These explain relationships; they must not resemble fabricated application screens.

Enlarge the exact controls the viewer needs, then return to the full screen so their position remains clear. Keep captions outside the phone's bottom navigation and keyboard. Describe color-coded results with their words as well as their colors. Give QR screens a concise spoken distinction, and do not encourage viewers to scan training codes shown in a recording.

## Final review before publication

Check that the story uses the same conference, account names and ticket throughout. Confirm that all passwords, application secrets and bearer tokens are absent. Recheck download availability and the native meeting/profile/share controls against the release being filmed; if repaired, replace both the course limitation and the corresponding footage after repeating the complete action and readback. Preserve the historical evidence in research.

The current package supports native Android signup, free registration, programme browsing, connection acceptance, messaging, ticket pinning, profile QR display, feed posting/bookmarking, the failed native meeting attempt, a supported API meeting workaround, and manual staff admission. It does not support claims of paid checkout, iOS execution, ticket transfer completion, physical QR decoding, successful native meeting submission, working profile edits, or working Share QR. Finish on Lina's saved checked-in ticket, then point organizers to [Run an event](../appmint-run-an-event.md).


### Admission status continuity capture

Use the verified [Home after admission](../../application-fixes/assets/mobile-local/eventoxygen-kofi-home-checked-in.png) still. Show staff admission, then attendee Home → My ticket → CHECKED_IN → Back → Home CHECKED_IN. Explain that reopening retrieves the staff result; it does not admit the holder again. Keep live admission QR codes out of published footage. This sequence passed locally on 24 September; a finished recording has not been produced.

## Current policy-link capture — 24 September

Use [the actual native Privacy Policy screenshot](../../application-fixes/assets/mobile-local/eventoxygen-native-privacy-fixed.png) for the repaired link. The recorded path is My Events → account initials → Privacy Policy; signup uses the same shared URL. The official App Store listing explicitly identifies this destination. Do not reuse the old certificate-error image as the current privacy result. Terms still awaits the intended destination; do not film or narrate a successful Terms step until it is verified.
