Our Faculty in our college worked tirelessly and they weren't even close to finishing. We felt bad and tried of thinking methods to help them. We thought of writing an add-on for Google Classroom, but thought of bringing it broader to all classrooms. And thus, we wrote an API.
What it does
Its a simple API which takes in file and the question as input and computes marks (score) for the respective submission. It also accepts multiple files as input and different formats comfortable for the user.
How we built it
The application refers to top google search results and scrapes from verified and well-known websites in order to learn the correct answer the question. After that it generates a list of keywords using NLTK and spacy libraries and checks whether they are available in the answer script submitted by the student using cosine similarity. The cosine similarity provides a percentage which can be multiplied by full marks (awarded for that specific question) in order to obtain the specific score of that answer script. The scraping was done by Beautiful Soup and Flask server was setup to write a restful API.
Challenges we ran into
Guessing a perfect keyword is not an easy task. NLP was a new subject for our team even though we had interests in it. Understanding NLP and making the code understand how a keyword would be was a real challenge.
Accomplishments that we're proud of
We were able to finish the complete code before time and that was pleasing to us. Our model gave really good results than what we expected and that was satisfactory.
What we learned
The better question is what didn't we? ROFL. We learnt Time Management, Tokenization, different libraries in Python and setup of a server with Flask.
What's next for TickBox
Well, the options are limitless. Even though it solved a huge headache for the faculty, it's not an one-stop solution. We have multiple features such as linguistic capabilities, batch processing, plagiarism checking and much more in our minds to equip it with.