Inspiration

It was pretty annoying to solve tests for minor subjects on online platform. Even though we (students) had answers saved in one place, we had to fill them in by hand. So i decided to automate this task.

What it does

Solves tests using file with answers or using an LLM. User needs to authorize in application and provide a link for test and program does the rest.

How I built it

At first it just used Excel file with answers. It was a script that fetched page by URL, parsed questions and then sent answers over API.

Then it evolved into a system that could get all tests for course (a history course for example) and iterate through all tests for itself. I added LLM solver so it could solve tasks with no known answers in file.

Challenges I ran into

Time has shown that there are many different types of questions on this online platform, i needed to be able to process them all. So i intoduced inheritance hierarchy to make code flexible and extensible.

Another challenge was to authenticate on platform in proper way. Sessions from requests library helped a lot to manage cookies.

Accomplishments that I'm proud of

There are a lot of tests for parsers and other parts of program, so i can make sure that questions are recognized properly. Github repo is configured to require tests to be passed on every Pull Request.

What's next for openedu-auto

I want to extend test coverage for this project to check every part of program. Add some settings in user interface, so users can configure autosolver without modifying code (selecting LLM is the most obvious setting).

Also it would be nice to make inteface more user-friendly.

Share this project:

Updates