SETUP THIS USE CASE: /api/dev/createSystemAdmin /api/pro/create Dr. Smith Dr. Brown /api/lobby/create Dr. Smith & Dr. Brown's Office smith-brown-inc /api/lobbyPro/create // create two records, one for each doctor for the above lobby ================================================================= STRANGER EXPERIENCE PART 1: stranger goes to: speedrelay.com/smith-brown-inc // IMMEDIATELY CALLS: /api/session/createStrangerSession -> gets a sessionKey as stranger. Welcome to Dr. Smith & Dr. Brown's Office! Please check in, stranger. [name] [dob] [SUBMIT] -> /api/meeting/createAsStrangerPerformer { success: true, data: } ---------------------------------------------------------------------------------------- STRANGER EXPERIENCE PART 2: /meeting-participant/{meetingParticipantUid} // in laravel, you can get meetingUid... $meetingParticipant->meeting()->uid This stranger sees... Hello, {John}! You are now in a meeting in Dr. Smith & Dr. Brown's Office. Please make sure your webcame is working. Then, someone should be with you shortly. ---------------------------------------------------------------------------------------- PRO: At the same time, Dr. Smith & Dr. Brown both got notified by socket that someone has joined. Dr. Smith decides to jump in. Clicks "JOIN" on the meeting. /api/meeting/joinMeetingAsPro meetingUid && his sessionKey -> session on DB... As soon as there is one meeting_participant.pro where there is a matching lobby_pro, the meeting is off of the QUEUE in the lobby (meeting is no longer waiting). Dr. Brown sees immediately that this meeting has (2) participants, including 1 pro. So... he decides to ignore it and wait for someone else to join the queue. ---------------------------------------------------------------------------------------- FOR NOW::: SIDEBAR Part 1: Queue: ... (SELECT * FROM meeting WHERE meeting_participants DOES NOT CONTAIN ANY pro) Part 2: My Meetings ... (SELECT * FROM meeting_participant WHERE pro_id = me.pro_id) Part 3: My Current Meeting [Video Feed with a LEAVE button] -or- Not currently in any meeting. =======================================================================================