Skip to content

Repository files navigation

Queue - FREE Q&A solution for online teaching!

  • Voice to text conversion! (supported on Chrome)
  • Download PDF of answered history!
  • Real-time data!
  • Complete privacy! (all data is cleared after 12h)
  • Notifications with a timer!
  • Easy invite! 👇🏼

  • And more..!

Technologies used:


API HTTP routes

GET /room/:id (no-auth)

params:

:id === mongoose.Schema.Types.ObjectId

response:

{
message: "room requested",
roomId: mongoose.Schema.Types.ObjectId,
host: {
_id: mongoose.Schema.Types.ObjectId,
username: String,
}
}


API socket.io events

on create (no-auth)

body:

{
username: String,
}

response: emit created + join(roomId)

{
message: "created room",
roomId: mongoose.Schema.Types.ObjectId,
token: jsonwebtoken,
}

on join (no-auth)

body:

{
roomId: mongoose.Schema.Types.ObjectId,
username: String,
}

response: emit joined + join(roomId)

{
message: "joined room",
roomId: mongoose.Schema.Types.ObjectId,
queue: [
{ type: mongoose.Schema.Types.ObjectId, ref: 'Quest' }
],
token: jsonwebtoken,
}

on refetch (auth-TOKEN)

body:

{
token: jsonwebtoken,
}

response: emit refetched + join(roomId)

{
message: "room fetched",
roomId: mongoose.Schema.Types.ObjectId,
queue: [
{
from: {
_id: mongoose.Schema.Types.ObjectId,
username: String,
},
question: String,
answer: String,
answered: Boolean,
} ...
],
}

on ask (auth-TOKEN)

body:

{
token: jsonwebtoken,
question: String,
}

response: io.to.(roomId) --> emit asked

{
message: "question asked",
roomId: mongoose.Schema.Types.ObjectId,
quest: {
from: {
_id: mongoose.Schema.Types.ObjectId,
username: String,
},
question: String,
answer: String,
answered: Boolean,
}
}

on answer (auth-TOKEN)

body:

{
token: jsonwebtoken,
questId: mongoose.Schema.Types.ObjectId,
answer: String,
}

response: io.to.(roomId) --> emit answered

{
message: "question answered",
roomId: mongoose.Schema.Types.ObjectId,
quest: {
from: {
_id: mongoose.Schema.Types.ObjectId,
username: String,
},
question: String,
answer: String,
answered: Boolean,
}
}

on delete-quest (auth-TOKEN: quest owner or host)

body:

{
token: jsonwebtoken,
questId: mongoose.Schema.Types.ObjectId,
}

response: io.to.(roomId) --> emit deleted-quest

{
message: "question deleted",
roomId: mongoose.Schema.Types.ObjectId,
questId: mongoose.Schema.Types.ObjectId,
}

on delete-room (auth-TOKEN: host)

body:

{
token: jsonwebtoken,
}

response: io.to.(roomId) --> emit deleted-room

{
message: "room deleted",
roomId: mongoose.Schema.Types.ObjectId,
}

About

Queue provides a FREE Q&A solution for online teaching!

Topics

Resources

Stars

6 stars

Watchers

1 watching

Forks

Used by

Contributors

Languages