Conducting surveys and live polling the classroom are excellent techniques for measuring understanding and teaching effectiveness.
- Asynchronous, Concurrent Functionality
- This is a live poll system, we should avoid any blocking behaviors in this application.
- We also need to support web sockets, essentially after a TCP connection is made, the visual interface continuously receives messages instead of polling the API for changes.
- Authentication (You can add this functionality later, if you wish)
- We are using Auth0 for authentication and as a result, you can assume this API will receive a JWT token in the initial request header, which the API will then use to validate the user.
- One Vote per User
- There should be a limit to how many messages can be sent per second.
- Memory
- This instance will be created for a specific classroom on-the-fly. We don’t need to use a message queue or external service at this point in time. You can keep the votes in-memory, but have a separate endpoint to retrieve the data.
- Visual Interface
- The capstone requires a back-end and front-end. You’re welcome to create whatever visual interface you feel is appropriate.