Skip to content

SiddarthR56/spark

Repository files navigation

We have the best hands free solution to your presentation needs! Have you ever presented to an audience and not had the ability to interact and change your meeting controls on the go? Spark is a solution to use gestures to change your volume and screen sharing settings while you present. You no longer need to type a value, instead just give your camera a gesture and keep on presenting. We guarantee it will spark new conversations and be the most seemless, hands-free presentation you have had!

Capabilities

  • Allows two users to join a video conferencing web application
  • Provides capabilities for user to be able to use gestures to manipulate the web conferencing interface.
    • Show a thumbs up to change volume
    • Swipe left or right to interact with your screen sharing capabilities.

drawing

Demo Video

Spark Demo

Worked Examples

  1. User is directed to the homepage where they are asked to enter a room number they would like to join. If the room does not already exist, a new room will be created for the user, for example, Room 2 is created in our case here.

drawing

  1. If another person wishes to join the room, they can simply enter the same room number to join the room. Currently, the application supports volume functions for mute/ unmute, video on/off, and screen share functionality. Gesture recognition is enabled by default for the mute/unmute and screen sharing functionalities.

drawing

  1. By showing thumbs up/ down action towards the camera, either of the two users will be able to mute/ unmute their microphones. Similarly swipe left/ right action towards the camera will allow the users to share their screens with each other. In addition, users will also be able to disable gesture recognition by clicking the Disable Gestures button.
drawing drawing

Use

Setup and installation instructions can be found in the user-friendly install guide

Testing / Coverage

Visit our results page for more information regarding running our test and code coverage scripts.

Directory Structure

.
|   .eslintrc.json
|   .gitignore
|   CITATION.cff
|   CODE_OF_CONDUCT.md
|   CONTRIBUTING.md
|   LICENSE
|   INSTALL.md
|   README.md
|   package.json
|   package-lock.json
|   server.js 
|   client.js
|   hand_gesture.js
|   webrtcpage.html
|   
+---.github
|   \---workflows
|           build.yml
|           test.yml
|           lint.yml
|           codeql-analysis.yml
|   \---ISSUE_TEMPLATE
|           bug_report.md
|           feature_request.md
|      
+---static
|   \---css
|       | style.css
|
+---scripts
|   cov_parser.py
|   help.py
|      
+---docs
|   |   filetree.txt
|   |   project_roadmap.md
|   |   proj1rubric.md
|   |   proj1rubricComments.pdf
|   |   troubleshooting_guide.md
|   |   results.md
|   |   spark_demo.mp4
|   \---documentation_photos
|           *lots of photos listed not shown here*
|   
+---out 
|   |   index.html
|   \---fonts
|   \---scripts 
|   \---styles
|                    
\---test
    |   test.js

Contributing

Are you interested in contributing to this project? Visit our contribution documentation.

Need some ideas on what to contribute? Visit our project roadmap to get some ideas or jump on over to our development project board for specific issues we are tracking.

This project is made possible by the incredible donation of time from NC State Project Contributors and the advice/support of CSC 510 teaching staff. NC State University has made the resources for this project possible, and will continue to support CSC 510 projects for the forseeable future.

Help

View some common issues users have identified in our troubleshooting guide. We list tips and tricks for identifying where the issue may be coming from. Issue reports may be linked to this guide if you identify a bug that is a software limitation.

You can visit our website with full descriptions of our classes and methods by opening index.html within your file explorer. Included on the website is user profiles of people who should use the software and success stories!

Need more support? Our primary method for addressing bugs and feature requests should be through submitting an issue ticket in the "Issues" tab. If you need additional support, please reach out to our development email develop.nak@gmail.com and a member of the team will be in contact with you shortly. You can also email the development email to asked to be added to our subsriber list for updates regarding the project's development.