Our team is all high schoolers learning virtually from home in light of the global pandemic. In our experiences, we've seen our teachers pull all-nighters trying to find ways to prevent students from cheating. This is valuable time that could be spent on perfecting the curriculum or creating a more rich environment for learning. We created CandidTest because we wanted to do something about this using our skills in Machine Learning and Web Development.

What it does

CandidTest takes a small sample of questions (such as last year's test) and creates a completely new, unique set of questions that cover the same material. Each student gets their own test with every one of the questions completely unique. This way, they won't be able to cheat through collaboration (since their questions are all different) or through googling the exact question (since their questions are all custom made)

How we built it

We used a state-of-the-art Pegasus text model to serve as the base for our machine learning optimization and fine tuning. We hosted this optimized model on a Flask API, where sample questions are inputted and generated questions are outputted. We built a frontend using hbs and css where the user inputs their questions and the number of desired tests. Finally, we used a Node.js server to control inputs to the hbs form and send queries to the Flask Api.

Challenges we ran into

We had some technical problems with Javascript and Python that took some time to resolve. Specifically, setting up the HTTP POST request in Javascript was the biggest web development challenge we encountered. Our main challenge regarding the machine learning model was the time constraints as we weren't able to fully optimize the Pegasus model for our needs.

Accomplishments that we're proud of

We created a web app that takes a few sample input questions and uses them as a base to create any number of unique tests. We believe this technology will be very useful to the educational field.

What we learned

We learned how to effectively use Node.js middleware to read input from an HTML page and integrate frontend systems with a python codebase.

What's next for CandidTest?

We plan to improve on the Pegasus model in terms of optimization and create a richer UI. We also plan to add more features like selective and specialized question generation and having the machine learning model generate answer keys alongside the tests to enable easy grading for teachers.

Share this project: