salwaalkhatib / CamVid19

With the current corona-virus situation, online learning has been gaining an increasing share of the educational systems in schools and universities. CamVid19 is a live streaming web application that aims to provide online content to many students at the same time. This platforms offers live streaming, file sharing, web chatting, and email services.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

CAMVID-19 logo

CAMVID-19: A Web Streaming App

With the current coronavirus situation, online learning has been gaining an increasing share of the educational systems in schools and universities. CAMVID-19 is a live streaming web application that aims to provide online content to many students at the same time. This platforms offers live streaming, file sharing, web chatting, and email services.

Prerequisites

Before you continue, ensure you have met the following requirements:

  1. You have installed the latest version of Python.

  2. You have installed flask, open-cv, and pyaudio, and sys as follows:

pip install flask
  1. You are using a Windows machine. Linux or Mac OS is not currently supported.

  2. You have turned on the less secure app access in your google account, as shown below:

  1. You have turned off your Windows Defender Firewall so that other devices can connect to your device and view the streaming.

Installing

  1. Change the ip address field to your ip address in website\main2.py.
host_ip = '192.168.XXX.XXX'
  1. Run server\server_chat.py, server\server_stream.py, server\server_audio.py, and server\selectiveServer.py in separate terminals (make sure to be in the right directory) as follows:
python server_stream.py 
  1. Run website\main2.py in another terminal.

  2. The flask server is now up and running! In your browser, type in http://127.0.0.1:5000/ to run the web app. The login page will prompt you to input your username, room name, and room password. The room refers to the classroom which includes the following features. The room name and password are authenticated with Flask using SQLAlchemy. To login, use 'Computer Networks' as room name and 'admin' as room password.

Features

Video Streaming and Chatting

Streamed with a multi-client server on port 9000, the frames are streamed to clients, where each client gets a thread. As for the chatting feature, the bits are streamed on port 5511.

File Sharing

This feature supports both upload and download of TXT files, and it facilitates the navigation through the directory of files and folders.

Podcast

Using pyaudio, the podcast feature streams audio on port 5858. Connected devices can pause and resume this stream.

Mail

This feature connects to the Gmail SMTP server on port 587, logs in to your account with your credentials, and sends an email to the chosen destination email.

Hamming Code Simulation

A family of linear error-correcting codes, Hamming codes are used to simulate bit flipping, error detection, and error connection. It can detect one-bit erros and correct them without detection of uncorrected errors. A maximum of one-bit error is introduced to the input text, detected, and then corrected.

Selective Repeat Simulation

This feature simulates a lossy channel through dropping packets based on a certain specified probability. The selective repeat algorithm retransmits the packets, and the data was sent from send.text to receive.txt free of errors.

Built With

  • Flask - Used to create a Flask web server from the Flask module.
  • OpenCV - To capture frames from the camera.
  • PyAudio - To record and stream audio.
  • SQLAlchemy - Login authentication with Flask and SQLAlchemy.

Authors

References

Acknowledgments

About

With the current corona-virus situation, online learning has been gaining an increasing share of the educational systems in schools and universities. CamVid19 is a live streaming web application that aims to provide online content to many students at the same time. This platforms offers live streaming, file sharing, web chatting, and email services.


Languages

Language:HTML 49.4%Language:Python 48.1%Language:JavaScript 2.4%