avantifellows / quiz-backend Goto Github PK
View Code? Open in Web Editor NEWBackend for the Question Set Player (https://github.com/avantifellows/quiz-frontend)
License: GNU General Public License v3.0
Backend for the Question Set Player (https://github.com/avantifellows/quiz-frontend)
License: GNU General Public License v3.0
We need a variable called 'testPurpose' to accommodate values such as Full Syllabus Test, Major Test, Part Test, Chapter Test, Hiring Test, and Evaluation Test.
Add checks to ensure that multiple devices do not use the same quiz at the same time.
Session route logic assumes that there is only one session running at a time wrt (user_id + quiz_id) combination
This can help us track temporal information of how users are interacting with the quiz.
Can also help to sort users based on time of submission.
Wrong scorecard shown when users do not go through all questions. This happens because scorecard is computed based on marking_scheme field of question. And not all questions have marking_scheme.
When preparing subset without details, we do not project marking scheme.
Fix will be to project it -- so that all questions (whether subset is fetched or not) -- will contain marking scheme
Currently the cloudformation stack (API Gateway + Lambda function running FastAPI + S3 function to store changeset files) are all based in us-east-1
.
To reduce latency as much as possible, we should move all of this infra to ap-south-1
.
Luckily, it's just a one liner change as AWS SAM handles all of that for us
A new view that allows users to key-in their answers quickly on a single page. This is useful when users solve quizzes offline.
Make changes in backend for a new question type. The question looks like the image below
The task is to match A,B,C,D in colA with P,Q,R,S,T in colB
Options would look like the image below:
Note that this is effectively like 4 multi-answer-questions put under one question.
Add feature to have a marking scheme for each question set.
This allows for different sets with different scores / weightages.
Currently, we update session answer whenever a patch request is made.
It would be useful to provide a way to update all session answers at once. For example, when a test ends, we could sync all answers at once to be doubly sure of saving answers that users picked.
Related to #16
For example, if question type is numerical-integer, the correct answer should be an integer.
If the question type is single-choice, the answer should be a list.
Currently we allow answer to be int | string | list | null
which is ok for basic validation, but not question-type specific
This will allow us to maintain a link to the source of the problem (only CMS for now, but more sources can come later).
Currently, we are storing a dummy-event object everytime frontend sends a dummy event.
We just need the timestamp of the new dummy events that frontend sends.
This will also reduce events
array size.
Set up pre-commit in CI, so that pre-commit check runs during PR creation
Make the tests run when a PR is created and also calculate the coverage for the same so that we can get a report of how much of the code is covered by tests,
This helps in increasing the stakes of quiz completion. Making it much closer to real-world testing scenarios.
Caveat: keep the countdown on server / backend instead of frontend -- since user browsers may have different clocks and definitions of datetime
You can find more details in this ADR https://www.notion.so/avantifellows/ADR-4-Sync-quiz-prod-DB-to-dev-staging-DB-f4141cbe5ff543cd90f1c7b6216718a9
README.md
to run a mongodb host process in the background.create_quiz
POST request returns entire quiz. Instead return only the quiz_id
. This reduces load on network.
We can compress the json responses so that loading time is reduced.
This can help in analyzing sessions that are derived from the same CMS id
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.