Virtual Classroom Nodejs
This is backend assignment for job interview.
Technologies
- Express.js framework
- AWS dynamodb
- Heroku
DynamoDB tables structure
List of endpoints
- post /login
- post /assignments
- delete /assignments/:assignmentid
- put /assignments/:assignmentid
- post /assignments/:assignmentid/submissions
- get /assignments/:assignmentid
- get /assignments
Live URL
- Base url of api is https://virtual-classroom-nodejs.herokuapp.com/
Notification system design for upcoming assignments
- In User table we can store a new attribute - device token
- We can enable DynamoDB streams on Assignments table.
- In the lambda function triggered by DynamoDB stream, we can process the inserted assignment row and then query the database to fetch all the students assigned to it.
- Then we can using Firebase send push notification to all the students' device tokens.