MVP Demo Plan - bounswe/bounswe2026group11 GitHub Wiki

Social Event Mapper — MVP Demo Plan

Demo Goal

Show the core value of the MVP in a short, coherent story:

  • a new user can access the platform
  • a host can create and manage an event
  • another user can discover events
  • participation flows differ based on privacy type
  • users can save events
  • hosts can manage join requests
  • profile and event history pages work
  • mobile and web both support the main journey

Personas

Persona Name Role
Persona 1 — Host Zeynep Kaya Creates and manages events, owns one protected event and one public event, reviews incoming join requests, sees created events and event metrics
Persona 2 — Participant Mert Demir Registers/logs in, browses and searches events, filters by category/location/radius, joins a public event directly, requests to join a protected event, favorites an event, sees attended events / participation history
Persona 3 — Existing User (optional) Elif Yılmaz Has pre-populated attendance history and favorites for quick profile/history demo

Platform Division

  • Web: login, event creation, host management, request approval/rejection
  • Mobile: discovery, search/filter, event detail, join/request, favorite, profile/history

8-Minute Demo Timeline

0:00 – 0:35 — Opening

Cansu Er

What to say: “Hello, we are presenting the MVP of Social Event Mapper. In this demo, we will show the core journey from event creation to discovery and participation, using both web and mobile. Our focus is on the MVP’s main value: helping users discover events and helping hosts manage participation flows.”

Action: Open the landing page or opening slide with 4 keywords:

  • Create
  • Discover
  • Join / Request
  • Manage

0:35 – 2:05 — Web: Host creates a protected event

Oğuz Özer and Mehmet Kaan Ünsel

Action:

  • Host account is already authenticated or login is done very quickly
  • Open Create Event
  • Fill only the fields that visually matter:
    • title
    • category
    • location
    • time
    • privacy = protected
    • capacity
    • tags
  • Briefly mention optional constraints / image if visible
  • Submit
  • Show the event appears in My Events

What to say: “Here, the host creates a protected event. Protected events are visible in discovery, but users must send a join request before participating.”

Highlight:

  • status = Active
  • pending request count = 0
  • approved participant count = 0

2:05 – 3:35 — Mobile: User discovers the event and sends join request

Sevde Pekköse and Buğra Keser

Action:

  • Participant is already logged in on mobile
  • Show discovery list
  • Show quick search by keyword
  • Show one or two filters:
    • category
    • location/radius
  • Briefly show that other events also exist in the list
  • Open the protected event
  • Show event details
  • Tap Request to Join
  • Show pending/requested state

What to say: “On the mobile side, users can discover events through list browsing, search, and filters. Public and protected events appear in discovery. Since this one is protected, the user sends a join request instead of joining immediately.”


3:35 – 4:35 — Web: Host approves request

Oğuz Özer and Mehmet Kaan Ünsel

Action:

  • Switch to preloaded host management page
  • Refresh if needed
  • Open pending requests
  • Approve the participant request

What to say: “This shows the host-side request management flow. Pending join requests are handled in the event management pages rather than through a notification system.”

Highlight:

  • pending count decreases
  • approved participant count increases

4:35 – 5:25 — Mobile: User joins a public event directly

Sevde Pekköse and Buğra Keser

Action:

  • Return to discovery
  • Open pre-populated public event
  • Tap Join Event
  • Show immediate success state

What to say: “To contrast the protected flow, here we show a public event. Public events allow direct participation without host approval.”


5:25 – 6:35 — Mobile: Favorite event and show profile/history

Sevde Pekköse and Buğra Keser

Action:

  • Open an event detail page
  • Tap Save / Favorite
  • Go to profile page
  • Show:
    • profile info
    • favorites
    • attended events / participation history

What to say: “This demonstrates engagement and account-related features. Users can save events for later, manage their profile, and access their participation history.”


6:35 – 8:00 — Web: Show canceled and completed event states

Oğuz Özer and Mehmet Kaan Ünsel

Action:

  • Open a pre-created canceled event, or cancel one very quickly if reliable
  • Show status = Canceled
  • Open another pre-populated event with past end time
  • Show status = Completed
  • Briefly show that these statuses are also reflected in host event management / listing pages if visible

What to say: “This demonstrates lifecycle consistency. Hosts can cancel their events, and events automatically transition to completed after their end time.”

Role Assignment (8 people)

Active Speaking Roles

# Role Responsibility Person
1 Moderator / Opener Opens the demo, introduces the story, handles transitions Cansu Er
2 Web Driver Performs host-side actions on web: event creation, request approval, lifecycle page display Oğuz Özer
3 Web-side Narrator / Business Logic Explainer Explains protected/public logic, request management, lifecycle behavior during web actions Mehmet Kaan Ünsel
4 Mobile Driver Performs discovery, request, join, favorite, profile/history actions Sevde Pekköse
5 Mobile-side Narrator Explains discovery, search/filter, event details, user-side flows Buğra Keser

Support Roles

# Role Responsibility Person
6 Timekeeper Gives silent cues, tracks presentation pacing Utku Yiğit Demir
7 Observer / Note Taker Watches instructor reactions, takes notes Mehmet Akif Yıldırım
8 Observer / Note Taker Watches instructor reactions, takes notes Emine Türk

Backup Plan

If this fails... Do this instead
Event creation fails Switch to pre-created protected event
Join request fails Show already pending request
Approval update does not reflect immediately Refresh pre-loaded tab
Mobile filtering is slow Use pre-filtered result screen
Time runs short Skip cancellation live and only show canceled/completed states briefly