Skip to content

Final Demo Plan

cansuer12345 edited this page May 8, 2026 · 4 revisions

Final Demo Plan

Demo Goal

The goal of the final milestone demo is to present Social Event Mapper as a more complete cross-platform event platform.

The demo should show how users can discover, join, manage, attend, and review events while hosts and administrators manage participation, trust, moderation, and event lifecycle flows.

The final demo extends the MVP journey by demonstrating:

  • list and map-based event discovery
  • public, protected, and private event participation flows
  • invitation-based access for private events
  • host-side event management
  • event editing, versioning, and reconfirmation
  • notifications for participation and event updates
  • digital tickets and QR-based attendance validation
  • post-event feedback
  • moderation and admin review
  • improved mobile and web user experience

Demo Principles

  • The demo is a product story, not a technical tutorial.
  • All flows should use deployed, live, HTTPS-accessible applications.
  • Demo data should be realistic and already prepared.
  • Risky or slow setup actions should be avoided during the live presentation.
  • Each feature should be explained through user value.
  • Web and mobile should feel connected as parts of the same platform.
  • The demo should highlight how the platform behaves differently for public, protected, and private events.

Personas

Persona Name Role Purpose in Demo
Host Kaan Ünsel Event organizer Creates and manages events, sends private invitations, edits event details, validates tickets
Participant Buğra Keser Regular user Discovers public/protected events, receives private invitation, joins/requests participation, uses ticket, leaves feedback
Existing Participant Elif Yılmaz Invited or pre-approved participant Used for private invitation, ticketing, and history scenarios if needed
Admin Admin User Platform moderator Reviews reported events and moderation items

Platform Division

Platform Main Responsibility
Mobile Discovery, map view, event details, private invitation handling, join/request flow, notifications, tickets, profile, feedback
Web Host dashboard, private event creation, invitation management, event editing/versioning, request approval/rejection, admin/moderation flow
Backend Shared data consistency, privacy enforcement, constraints, statuses, tickets, notifications, moderation, event lifecycle

Demo Structure

The demo will follow one connected story:

  1. The participant explores public and protected events on mobile using map and list discovery.
  2. The participant sends a join request to a protected event, attaching a photo.
  3. The participant receives a private route-based event invitation via notification on mobile.
  4. The participant accepts the private invitation and the digital ticket is generated.
  5. The host approves the pending join request on the web platform.
  6. The host edits the private event's time from the web platform.
  7. The participant receives a reconfirmation notification on mobile and reconfirms attendance.
  8. The participant views the digital ticket on mobile and joins the event.
  9. The host scans the participant's ticket from the host's phone.
  10. Discussion section.

User Scenarios

Scenario 1 — Mobile: Map Discovery and Protected Event Join Request

User: Buğra Keser Platform: Mobile

Buğra opens the discovery screen and explores events using the map view. He browses public and protected events. He opens a protected event and sends a join request, attaching a photo as part of the request.

This scenario demonstrates:

  • map-based event discovery
  • list/map toggle
  • location-based browsing
  • public and protected event visibility
  • private event exclusion from general discovery
  • protected event request-to-join flow with photo attachment
  • participant pending state after request submission

Scenario 2 — Mobile: Private Invitation Received, Accepted, and Ticket Generated

User: Buğra Keser Platform: Mobile

While still on mobile, Buğra receives a notification for a private route-based event invitation. He opens the notification, navigates to the private event detail page, and accepts the invitation. A digital ticket is generated for him after acceptance.

This scenario demonstrates:

  • private invitation delivered via notification
  • notification center behavior
  • route-based private event navigation
  • private event access for invited users
  • invitation acceptance flow
  • automatic ticket generation after acceptance

Scenario 3 — Web: Join Request Approval and Event Time Edit

User: Kaan Ünsel Platform: Web

Kaan opens the web platform, navigates to the host dashboard, and approves the pending join request from Buğra. He then opens the private event management page and edits the event time. The change is recorded in the event version history and a reconfirmation requirement is triggered for approved participants.

This scenario demonstrates:

  • host request management
  • join request approval flow
  • cross-platform state update after approval
  • event editing
  • event versioning and changelog
  • critical field change detection
  • reconfirmation trigger for existing participants

Scenario 4 — Mobile: Reconfirmation, Ticket, and Event Join

User: Buğra Keser Platform: Mobile

Buğra receives a reconfirmation notification on mobile. He opens it, reviews the event changelog showing the updated time, and reconfirms attendance. He then views his digital ticket and proceeds to join the event.

This scenario demonstrates:

  • event update notification
  • changelog visibility on mobile
  • reconfirmation action and updated attendance state
  • digital ticket access
  • ticket lifecycle state
  • participant joining the event

Scenario 5 — Host Ticket Scan

User: Kaan Ünsel Platform: Host's mobile phone

Kaan uses his phone to open the ticket validation flow and scans Buğra's QR code. The system confirms attendance.

This scenario demonstrates:

  • QR-based ticket validation from host device
  • attendance tracking
  • host admission workflow
  • ticket state update after scan

Scenario 6 — Discussion

Open discussion with the audience covering questions, platform decisions, and next steps.


0:00 – 0:30 — Opening

Speaker: Cansu Er Action: Open landing page or prepared opening screen.

Talking Points:

"Hello, we are presenting the final milestone of Social Event Mapper. Our project has evolved from a basic event discovery MVP into a fuller event platform. Today, we will show the journey from event discovery and participation requests to private invitations, ticketing, reconfirmation, and attendance validation across mobile and web."


0:30 – 2:30 — Mobile: Map Discovery and Protected Event Join Request

Speaker: Buğra Keser Driver: Sevde Pekköse

Actions:

  • Open the mobile app as Buğra Keser.
  • Navigate to the discovery screen.
  • Show the event list.
  • Switch to map view.
  • Tap an event marker to show location-based discovery.
  • Apply a category or radius filter.
  • Open a protected event from the map or list.
  • Tap Request to Join.
  • Attach a photo as part of the join request.
  • Show the pending request state.

Talking Points:

"Buğra starts by exploring events on the map. The map view makes it easy to discover what's happening nearby. Public events allow direct joining, but this protected event requires a request. Buğra sends a join request with a photo attached. The request is now pending host approval."

Highlight:

  • map view improves location-based exploration
  • public and protected events are visible in discovery
  • private events are not shown unless the user is invited
  • protected event requires request with optional photo
  • pending state visible to participant after submission

2:30 – 4:00 — Mobile: Private Invitation Received, Accepted, Ticket Generated

Speaker: Buğra Keser Driver: Sevde Pekköse

Actions:

  • Open the notification center on mobile.
  • Show the incoming private route-based event invitation notification.
  • Tap the notification.
  • Navigate to the private event detail page via the invitation route.
  • Tap Accept Invitation or equivalent action.
  • Show the accepted state.
  • Show the generated digital ticket for the private event.

Talking Points:

"While browsing, Buğra receives a notification for a private event invitation. Unlike public or protected events, this private event is not visible in discovery at all — it's only accessible through this invitation. Buğra accepts the invitation, and a digital ticket is automatically generated and ready to use."

Highlight:

  • private invitation delivered via notification
  • route-based navigation directly to the private event
  • private event not discoverable without invitation
  • ticket generated automatically after acceptance

4:00 – 5:30 — Web: Join Request Approval and Event Time Edit

Speaker: Kaan Ünsel Driver: Oğuz Özer

Actions:

  • Open the web app as Kaan Ünsel.
  • Navigate to the host dashboard or request management page.
  • Show Buğra's pending join request with the attached photo.
  • Approve the request.
  • Navigate to the private event management page.
  • Edit the event time field.
  • Save the change.
  • Show the event changelog or version history reflecting the update.

Talking Points:

"On the web platform, the host reviews the pending join request. The attached photo helps evaluate the request. Kaan approves it, making Buğra an approved participant of the protected event as well. Kaan then edits the private event's time — a critical change. The system logs this update in the event's version history and will ask Buğra to reconfirm attendance."

Highlight:

  • host approval of protected join request
  • cross-platform state consistency after approval
  • event time edit as a critical field change
  • changelog and version history updated
  • reconfirmation requirement triggered

5:30 – 7:00 — Mobile: Reconfirmation, Ticket, and Event Join

Speaker: Buğra Keser Driver: Sevde Pekköse

Actions:

  • Return to mobile as Buğra Keser.
  • Open the reconfirmation notification from the notification center.
  • Show the event changelog with the updated time.
  • Tap Reconfirm Attendance.
  • Show the reconfirmed attendance state.
  • Navigate to the digital ticket.
  • Show the QR code on the ticket.
  • Show the event join or attendance flow.

Talking Points:

"Buğra receives a notification about the event time change. He can review exactly what changed before deciding whether to reconfirm. After reconfirming, he accesses his digital ticket with the QR code and proceeds to join the event."

Highlight:

  • reconfirmation notification triggered by host edit
  • changelog visible to participant
  • reconfirmation action updates attendance state
  • digital ticket accessible after reconfirmation
  • QR code ready for scanning

7:00 – 8:00 — Host Ticket Scan

Speaker: Kaan Ünsel Driver: Kaan Ünsel (host's phone)

Actions:

  • Switch to the host's mobile phone as Kaan Ünsel.
  • Open the ticket validation or attendance flow.
  • Scan Buğra's QR code.
  • Show the confirmed attendance state.

Talking Points:

"At the event, the host uses his phone to validate tickets. Kaan scans Buğra's QR code, and the system confirms attendance. This closes the participation lifecycle from invitation and acceptance to physical admission."

Highlight:

  • QR validation from host device
  • attendance confirmed and tracked
  • ticket state updated after scan
  • admission control in action

8:00 – 10:20 — Discussion

Speaker: All

Open discussion with the audience. Questions, platform decisions, technical details, and next steps.


10:20 – 10:40 — Closing

Speaker: Cansu Er

Talking Points:

"To summarize, Social Event Mapper now supports a broader event lifecycle: map-based discovery, protected participation requests, private invitations, host management, event updates, ticketing, reconfirmation, and attendance validation. The web and mobile apps work together to provide a coherent cross-platform event experience."

Demo Data Strategy

User Roles

User Role Purpose
Kaan Ünsel Host Approves join request, edits event time, validates tickets
Buğra Keser Participant Discovers events on map, sends join request with photo, receives and accepts private invitation, reconfirms, uses ticket
Elif Yılmaz Existing participant/invitee Used as backup invited user or pre-approved participant
Admin User Admin/moderator Reviews reported events and moderation queue

Pre-Populated Events

Event Type Purpose
Private active event Backup if live private event creation fails
Public active event Demonstrates direct join and discovery
Protected active event Demonstrates request-to-join and approval
Event with pending invitation Backup for private invitation flow
Event with accepted invitation Backup for ticketing and reconfirmation
Event with pending join request Backup for protected request flow
Event with approved participant Supports ticketing and attendance demo
Event with critical update Supports versioning and reconfirmation
Completed event Supports feedback/review flow
Canceled event Supports lifecycle state visibility
Reported event Supports admin moderation demo

Required Pre-Populated States

  • At least one private event
  • At least one pending private invitation
  • At least one accepted private invitation
  • At least one invitation notification
  • At least one event update notification
  • At least one protected event with pending join request
  • At least one approved participant
  • At least one generated digital ticket
  • At least one valid or used ticket state
  • At least one completed event with existing feedback
  • At least one reported event awaiting admin review
  • At least one event with changelog/version history
  • At least one canceled event
  • At least one public event visible in discovery
  • At least one protected event visible in discovery

Edge Case Data

Edge Case Reason
Private event Shows invitation-only visibility
Protected event Shows request-based participation
Public event Shows direct joining
Full or near-full event Shows capacity constraint behavior if needed
Canceled event Shows lifecycle handling
Completed event Enables feedback and history
Reported event Enables moderation flow
Event with changed time/location Demonstrates reconfirmation
Event with pending invitation Avoids relying on live invitation creation
Event with generated ticket Avoids relying on live ticket generation

Role Assignment

Active Speaking Roles

# Role Responsibility Person
1 Moderator / Opener / Closer Introduces the demo, explains overall story, handles transitions Cansu Er
2 Web Driver Performs host and admin actions on web Oğuz Özer
3 Web-side Narrator Explains join request approval, event time editing, versioning, ticket validation Kaan Ünsel
4 Mobile Driver Performs mobile invitation, discovery, join/request, notifications, ticket, reconfirmation actions Sevde Pekköse
5 Mobile-side Narrator Explains participant journey, map discovery, protected request, private invitation, reconfirmation, mobile UX Buğra Keser

Support Roles

# Role Responsibility Person
6 Timekeeper Tracks timing and gives silent cues Utku Yiğit Demir
7 Observer / Note Taker Watches instructor/customer reactions and records feedback Mehmet Akif Yıldırım
8 Observer / Backup Support Takes notes and helps if a transition or technical issue occurs Emine Türk

Rehearsal Checklist

Before the final demo, the team should rehearse the full flow and verify:

  • Web app is deployed and accessible with https://
  • Mobile app build/demo environment is ready
  • Demo accounts are created
  • Demo accounts are already authenticated where possible
  • Required demo data exists
  • Map view loads correctly with event markers
  • Protected event request-to-join with photo works
  • Private invitation flow works
  • Invitation notification appears or pre-created notification exists
  • Private event is not visible in general discovery for non-invited users
  • Invited user can access the private event via notification route
  • Web and mobile show consistent event states
  • Protected join request approval works on web
  • Event time editing and versioning screen is ready
  • Reconfirmation notification is triggered after event edit
  • Reconfirmation flow is ready on mobile
  • Ticket screen is ready and shows QR code
  • Ticket scan/validation flow works from host device
  • Notification center has relevant data
  • Backup tabs/screenshots are prepared
  • Timekeeper has timing checkpoints
  • Speakers know their transitions

Backup Plan

Failure Case Backup Action
Internet connection fails Use backup hotspot or recorded screenshots/video only if necessary
Deployed web app is slow Use preloaded tabs and avoid refreshing
Mobile app crashes Restart from prepared screen or use backup device
Map does not load Switch to list discovery and explain map support briefly
Protected join request with photo fails Use pre-created pending request
Private event creation fails Switch to pre-created private event
Invitation creation fails Use pre-created pending invitation
Invitation notification does not appear Open invitations page or use pre-created notification
Invited event does not open from notification Open the event directly from invitations/upcoming events
Approval does not update immediately Refresh preloaded participant screen or use already approved request
Event edit fails Show pre-created event with changelog
Reconfirmation flow fails Show event detail with pending reconfirmation state
Ticket generation fails Show pre-generated ticket
QR validation fails Show already validated ticket state
Admin moderation action fails Show pending report and explain available action
Time runs short Skip discussion elaboration; prioritize private invitation, reconfirmation, and ticket scan
👥 Team Members

Labs

Meetings

Milestones

Requirements & Analysis

Scenarios

Use Case Diagrams

Class Diagrams

Sequence Diagrams

Planning

Testing

MVP Demo Plan

Clone this wiki locally