Skip to content

Commit

Permalink
Add SSL/TLS
Browse files Browse the repository at this point in the history
  • Loading branch information
rohan-shettyy committed Mar 17, 2020
2 parents 774edf6 + 9f53172 commit d45a242
Show file tree
Hide file tree
Showing 24 changed files with 2,031 additions and 0 deletions.
21 changes: 21 additions & 0 deletions LICENSE
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
MIT License

Copyright (c) 2020 Rohan Shetty

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
35 changes: 35 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
# Class4Corona

An e-learning environment for schools that have closed during the COVID-19 pandemic developed by **Rohan Shetty** and **Wilson Wang**

## Teach

Class4Corona lets teachers start a live session in 10 seconds. Simply click the "Create Class" button on the home page, follow the setup, and you're live!

You have the option to enable webcam or leave it off, as well as share your screen if you wish. You can also post a handout for students to print out and work on during or after the lesson.

## Learn

Class4Corona is ideal for students. Click the "Join Class" button on the home page, search for your class and join.
To increase security, each session is protected with a 7-character code. Your teacher can send you the code via Google Classroom, email, etc. and you can join the lesson.

A chat is available to submit your questions at any time, but if you have an important question that requires an actual conversation with your teacher, just click the "Raise Hand" button. Your teacher can choose to call on you, which will turn on your microphone and allow you to speak. You can choose to keep the question private or share it with the rest of your class.

## How to use it?

It's not quite ready to be used as of right now. However, it is being constantly developed and will be working *hopefully* by March 21 2020. Stay Tuned.

## Credits

#### Lead developers

**Wilson Wang**

`Personal-Site` : <http://wilsonfwang.com/>
`GitHub` : <https://github.com/FengchiW>
`Devpost` : <https://devpost.com/xerodragon72>

**Rohan Shetty**

`Personal-Site` : <https://rohanshetty.me>
`GitHub` : <https://github.com/Cyndakwil>
Binary file added assets/sample.mp4
Binary file not shown.
34 changes: 34 additions & 0 deletions cert.pem
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
-----BEGIN CERTIFICATE-----
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
-----END CERTIFICATE-----
65 changes: 65 additions & 0 deletions domain.cert.pem
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
-----BEGIN CERTIFICATE-----
MIIGbDCCBVSgAwIBAgISBHFRLPopPEdRu6bz49SGj7UMMA0GCSqGSIb3DQEBCwUA
MEoxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MSMwIQYDVQQD
ExpMZXQncyBFbmNyeXB0IEF1dGhvcml0eSBYMzAeFw0yMDAzMTcwMzE2MTlaFw0y
MDA2MTUwMzE2MTlaMBsxGTAXBgNVBAMTEGNsYXNzNGNvcm9uYS5jb20wggIiMA0G
CSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDEJR16EIiCbrh2AOY1kdRUQOKAtBZn
BMmbMiaBbjMWVyXvISRxlEFlEBZXOSwONKqc0fwd0qaadiFZHCsJdhnMFHGtCjaK
eelBMfBydb5E+Ye3bj9OxbXGEpLhbvlEB/ibX48YpALkF/kujX8bwkal7Ua9M6vz
XF6LQFJpIgSGcB63oL2Z1GVzRx4qn7AA6X07Of5XPyuplAHN6MQtPV53O061cebO
q1vz0VhZi3hCx3hB1WgTxI5jNj3ltQERXX4P1HRpJz8/0zGOISIof1iRtatZf8wj
XkRCSOwPim9RG44fJ75psHUr7WBa3Hm+sX5FCHwkA5U7FLLVE0sPq1LS/BrMLGz1
M/cq0EW14Uiw9ojuPnndOQOVHh3hg898OY1iNTQ+o2P+U0Ja49b3vaQUmwfoBbSm
xGT4Ye/D4g3IO9nX5IwItYl83EgIpiiqCXvtlDjsXyf5si9nrL4vdoIECOenmJB4
I/MDJaE+24L/QvOjxgXzW9rUa/F/ci74hzjiubSJY/YnYWfTqJvQyXZ3UPUhzd6M
Bih7aymbUuG26fowzwHBx00ZWMaec9phNGaynu2oO57U8aukeMSWO1lIohY5WVEg
2k+d9eRW2qJJQMZqUmdjM+gBvs5CcYERLkIfy0hb59c+aKur73u340Q3mTClMqs2
tQVFlsj6IrLt4QIDAQABo4ICeTCCAnUwDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQW
MBQGCCsGAQUFBwMBBggrBgEFBQcDAjAMBgNVHRMBAf8EAjAAMB0GA1UdDgQWBBS7
0R5yIjH44b1iAjpx8KlDh29D5zAfBgNVHSMEGDAWgBSoSmpjBH3duubRObemRWXv
86jsoTBvBggrBgEFBQcBAQRjMGEwLgYIKwYBBQUHMAGGImh0dHA6Ly9vY3NwLmlu
dC14My5sZXRzZW5jcnlwdC5vcmcwLwYIKwYBBQUHMAKGI2h0dHA6Ly9jZXJ0Lmlu
dC14My5sZXRzZW5jcnlwdC5vcmcvMC8GA1UdEQQoMCaCEiouY2xhc3M0Y29yb25h
LmNvbYIQY2xhc3M0Y29yb25hLmNvbTBMBgNVHSAERTBDMAgGBmeBDAECATA3Bgsr
BgEEAYLfEwEBATAoMCYGCCsGAQUFBwIBFhpodHRwOi8vY3BzLmxldHNlbmNyeXB0
Lm9yZzCCAQQGCisGAQQB1nkCBAIEgfUEgfIA8AB2APCVpFnyANGCQBAtL5OIjq1L
/h1H45nh0DSmsKiqjrJzAAABcOa045AAAAQDAEcwRQIhAKTMgkEzOUSAFhVyzGho
/KD79Oe/l4uJsMEZ+4BzM3h8AiBn0Hg6//wdhCELl6RtchMXEcbifCSxBI+WYMUT
s8V7swB2AAe3XBvlfWj/8bDGHSMVx7rmV3xXlLdq7rxhOhpp06IcAAABcOa0494A
AAQDAEcwRQIgViSZyBRSjx8TCpapfOaPHZBcehC4t3J/tFCEUmyK7KECIQC9Yp3r
/mwJ55j6RDB1sULM6TvxBDLBD6UlL1IQRBVV1zANBgkqhkiG9w0BAQsFAAOCAQEA
ZTp+AhXthaXaIOI+h/J/+DC8MkqZiyEnE6d2+6OrbtHfYUKZWkESTtkZQOxkVpD4
RSrqJz01eYH46p3Du4i8dJ/hTcNt6e7Z+Vw123p1+zPmlpuawsdL8jEkM8ER2L0W
bVcw6XFeMMiIJLaHSZymAfyszAe2bzN/0qYkF10HN8HkJalUa9Z4cyXQkiX6lgAA
Ugr7CRqiXYQO7EjfoqRFcvoU1eHpsJLsZPKikfdGHh+v5bysrKD8tZol4Iuz8uyF
qKjnx24Wz+ejLtJVt/N/vOmKiSwg0N7zAtm7ny0X0NkMNSpzdGjKN3lUD6b9nh40
u7eU35JzyTKaQ1yCAnMARQ==
-----END CERTIFICATE-----

-----BEGIN CERTIFICATE-----
MIIEkjCCA3qgAwIBAgIQCgFBQgAAAVOFc2oLheynCDANBgkqhkiG9w0BAQsFADA/
MSQwIgYDVQQKExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMT
DkRTVCBSb290IENBIFgzMB4XDTE2MDMxNzE2NDA0NloXDTIxMDMxNzE2NDA0Nlow
SjELMAkGA1UEBhMCVVMxFjAUBgNVBAoTDUxldCdzIEVuY3J5cHQxIzAhBgNVBAMT
GkxldCdzIEVuY3J5cHQgQXV0aG9yaXR5IFgzMIIBIjANBgkqhkiG9w0BAQEFAAOC
AQ8AMIIBCgKCAQEAnNMM8FrlLke3cl03g7NoYzDq1zUmGSXhvb418XCSL7e4S0EF
q6meNQhY7LEqxGiHC6PjdeTm86dicbp5gWAf15Gan/PQeGdxyGkOlZHP/uaZ6WA8
SMx+yk13EiSdRxta67nsHjcAHJyse6cF6s5K671B5TaYucv9bTyWaN8jKkKQDIZ0
Z8h/pZq4UmEUEz9l6YKHy9v6Dlb2honzhT+Xhq+w3Brvaw2VFn3EK6BlspkENnWA
a6xK8xuQSXgvopZPKiAlKQTGdMDQMc2PMTiVFrqoM7hD8bEfwzB/onkxEz0tNvjj
/PIzark5McWvxI0NHWQWM6r6hCm21AvA2H3DkwIDAQABo4IBfTCCAXkwEgYDVR0T
AQH/BAgwBgEB/wIBADAOBgNVHQ8BAf8EBAMCAYYwfwYIKwYBBQUHAQEEczBxMDIG
CCsGAQUFBzABhiZodHRwOi8vaXNyZy50cnVzdGlkLm9jc3AuaWRlbnRydXN0LmNv
bTA7BggrBgEFBQcwAoYvaHR0cDovL2FwcHMuaWRlbnRydXN0LmNvbS9yb290cy9k
c3Ryb290Y2F4My5wN2MwHwYDVR0jBBgwFoAUxKexpHsscfrb4UuQdf/EFWCFiRAw
VAYDVR0gBE0wSzAIBgZngQwBAgEwPwYLKwYBBAGC3xMBAQEwMDAuBggrBgEFBQcC
ARYiaHR0cDovL2Nwcy5yb290LXgxLmxldHNlbmNyeXB0Lm9yZzA8BgNVHR8ENTAz
MDGgL6AthitodHRwOi8vY3JsLmlkZW50cnVzdC5jb20vRFNUUk9PVENBWDNDUkwu
Y3JsMB0GA1UdDgQWBBSoSmpjBH3duubRObemRWXv86jsoTANBgkqhkiG9w0BAQsF
AAOCAQEA3TPXEfNjWDjdGBX7CVW+dla5cEilaUcne8IkCJLxWh9KEik3JHRRHGJo
uM2VcGfl96S8TihRzZvoroed6ti6WqEBmtzw3Wodatg+VyOeph4EYpr/1wXKtx8/
wApIvJSwtmVi4MFU5aMqrSDE6ea73Mj2tcMyo5jMd6jmeWUHK8so/joWUoHOUgwu
X4Po1QYz+3dszkDqMp4fklxBwXRsW10KXzPMTZ+sOPAveyxindmjkW8lGy+QsRlG
PfZ+G6Z6h7mjem0Y+iWlkYcV4PIWL1iwBi8saCbGS5jN2p8M+X+Q7UNKEkROb3N6
KOqkqm57TH2H3eDJAkSnh6/DNFu0Qg==
-----END CERTIFICATE-----
54 changes: 54 additions & 0 deletions key.pem
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
-----BEGIN ENCRYPTED PRIVATE KEY-----
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
iIg4Zxb8JBG3d1/HSw1lxw==
-----END ENCRYPTED PRIVATE KEY-----
120 changes: 120 additions & 0 deletions main.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,120 @@
var express = require('express');
var app = express();
var fs = require('fs');
var server = require('https').createServer(
{
key: fs.readFileSync("private.key.pem"),
cert: fs.readFileSync("domain.cert.pem")
},
app).listen(8080);
var io = require('socket.io').listen(server);
var path = require('path');
var cors = require('cors');

app.use(cors());
app.use(express.urlencoded( {extended: true} ))
// Use correct file directory

app.use(express.static(__dirname + '/public'))

app.get('/video', function(req, res) {
const path = 'assets/sample.mp4'
const stat = fs.statSync(path)
const fileSize = stat.size
const range = req.headers.range
if (range) {
const parts = range.replace(/bytes=/, "").split("-")
const start = parseInt(parts[0], 10)
const end = parts[1]
? parseInt(parts[1], 10)
: fileSize-1
const chunksize = (end-start)+1
const file = fs.createReadStream(path, {start, end})
const head = {
'Content-Range': `bytes ${start}-${end}/${fileSize}`,
'Accept-Ranges': 'bytes',
'Content-Length': chunksize,
'Content-Type': 'video/mp4',
}
res.writeHead(206, head);
file.pipe(res);
} else {
const head = {
'Content-Length': fileSize,
'Content-Type': 'video/mp4',
}
res.writeHead(200, head)
fs.createReadStream(path).pipe(res)
}
});

app.get('/host', function(req, res) {
res.sendFile(__dirname + '/public/hosting.html');
});

app.get('/createclass', function(req, res) {
res.sendFile(__dirname + '/public/createClass.html');
});

app.post('/createclass',function(req,res){
var user_name=req.body.name;
var school=req.body.school;
var s_class = req.body.s_clas;
var description = req.body.desc;
var reqcode = req.body.reqcode

console.log("User name = "+user_name+", school is "+school);
res.end("yes");
});

app.get('/joinclass', function(req, res) {
res.sendFile(__dirname + '/public/joinClass.html');
});

app.post('/joinclass',function(req,res){
var user_name = req.body.name;
var school = req.body.school;
var s_class = req.body.s_clas;
var code = req.body.code;

console.log("User name = "+user_name+", school is "+school);
res.end("yes");
});

app.get('/class', function(req, res) {
res.sendFile(__dirname + '/public/session.html');
});

var users = [];
var rooms = [];
function generateRoomID() {
var uid = ""
for (let i=0; i < 6; i++) {
uid = uid + Math.floor(Math.random() * 9).toString();
}
rooms.push(
{
id: uid,
users: []
}
);
return uid
}

//Socket.io handlers
io.on('connection', function(socket){
console.log('A user connected');
users.push(socket.id);
socket.on("disconnect", function() {
console.log("A user disconnected")
users.splice(users.indexOf(socket.id), 1)
});

socket.on("createRoom", function() {
socket.emit("roomID", generateRoomID());
});

socket.on("packet", function(packet) {
socket.broadcast.emit("packet", packet);
});
});
Loading

0 comments on commit d45a242

Please sign in to comment.