Home Page Project Proposal Feasibility Study Design Document Final Report

Summary

With the ever-increasing pandemic situation that we are experiencing these days, nearly every activity has undergone digitization. Major activities that were held physically are now being held in online platforms such as conferences, classes and a lot more. Thus, online meetings have become a very important part of our life these days. But, at the same time it comes at the cost of privacy, thus ensuring privacy of users is one of the major concerns.

Our app, The Meeting Sphinx is a platform to conduct secure meetings ensuring the privacy of anyone who wishes to conduct an online meeting.

In a normal meeting, the users have no way to know if anyone recorded their meeting without their knowledge. Sometimes, people may state some things casually, with a good motive, that might be used against them in a harmful manner. Thus, an app that detects such uninformed meeting recordings by its users can help solve this major problem and prevent such breach of privacy of the speaker.

The Meeting Sphinx is based on this very idea and can detect recording by any person who attends the meeting. It then notifies the people attending the meeting along with the details of the recording and the user who started the same. Thus, the speaker would be vigilant and their privacy is preserved.

The organiser can either use our own app to conduct meetings or can even use a third party app for meetings, in which case, our app can be used as an attendance system (mainly for conducting online classes) where the organiser would be notified of any ongoing recordings.

Thus the security of all users is established.

High level design

Use Case Diagram of The Meeting Sphinx

Use Case Diagram

Description of use cases:

1.Login

  1. Mainline Sequence:
    1. User clicks on the 'Log in with Google' Button, and is redirected to a Google webpage.
    2. User logs into his google account and approves our app to be trusted with the user's google profile information.
    3. After logging into google, the user will be redirected back to our app's home page.
  2. At step ii of Mainline Sequence
    1. Credentials entered by the user was incorrect and login fails
    2. User is redirected to the login page to re enter credentials

2.Logout

  1. Mainline Sequence:
    1. When a user clicks the logout button, a request is sent to the backend to log him out. Then, at the backend, his session is deleted and hence, he/she is logged out of our app.

3.Create Meeting

  1. Mainline sequence : App is used as a third party app
    1. When the user creates a meeting, a random code is generated for that particular meeting and details of that meeting with its creator, description, etc. are stored in the backend.
    2. We give the user the function to upload a custom third-party meeting url into an input box. Users will be redirected to this meeting url once they enter the code generated in the first part.
  2. Mainline sequence : Meeting is held in our app platform (If the creator wants to use our web conferencing platform to host his / her meeting, he / she need not fill that meeting link box. )
    1. App: A custom url for the meeting will be generated and associated with the meeting automatically.
    2. Organiser: Meeting link is shared with the attendees
    3. Attendee:Enters the code for a meeting that is hosted on our platform
    4. Attendee will be redirected to our platform once his credentials are validated.

4.Attend Meeting

  1. Mainline Sequence:
    1. The attendee will use the lobby code to enter the lobby.
    2. The backend finds the room that corresponds to the entered code.
    3. If a valid meeting is found, then the user is redirected to the meeting lobby.
    4. When the meeting is running, daemons on the devices of each user check to see whether a screen is being recorded or not.
    5. The information on screen recording is relayed back to the organiser's screen.
    6. Attendees of the meeting can send messages in the meeting chat.
    7. The meeting can be ended by the organiser.
  2. Step iii of mainline sequence
    1. If a meeting is not found, the user is redirected back to the home page.

5.Video Call ( For meetings held in our app )

  1. Mainline Sequence:
    1. Users will allow our software access to their camera.
    2. Users can view other attendees' videos by clicking on the see attendee videos button
  2. At the ii step of Mainline Sequence:
    1. Users either don't allow access to the camera or their camera is being used by some other application.
    2. User is redirected to the home page of our app ( for our app meetings )

Class Diagram of our Backend

Class Diagram
This shows the inheritance and other relationships between the models(database) that we have made.

Class Diagram of our Frontend

The class diagram of our app frontend
You can observe the various association relationships between classes.

Flow Chart

Flow chart
The Final document of our app shows the implementation of each flow and how things are working.

Low level design

The major workflows present in our app include Recording Detection and Notification, Meeting Creation and Joining, Lobby Chat, Video Conferencing (in the meetings held in our app) and User-Ban. The functionalities have been implemented as follows.

Recording Detection and Notification

This is the main functionality of our app. A script runs in the background as soon as any user starts our app. Initially, when the user hasn't joined any meeting, he/she is put in a dummy meeting. If recording starts in this interval a flag is set in the backend and is reset every time it stops before the user leaves the dummy meeting to join a meeting with a specific code. If recording is still ongoing when the user joins (determined by the flag in backend), the user is marked red and in case the user starts recording in the middle of a meeting, then also the user is marked red. When anyone stops recording, the marked users are made normal again. People are also notified in the chat at the start and stop of recording by any user who's present in the meeting.

Recording Detection Algorithm

Recording Notification

Once the recording has been detected or when it has been stopped, the people present in the meeting are to be notified.

After this, the user that was recording is marked in red and the message regarding the recording is also shown in the lobby chat.

Meeting Creation and Joining

When a new user logs into our app. He/She would have two options – Create an New Meeting or Join a Meeting

Create New Meeting

Join a Meeting

Chat

Video Conferencing

Peer-to-Peer connection
This diagram shows the 3-way handshake that is done in establishing a connection between 2 Peers which then can share each other's media.

Ban a user

Comments