Inspiration

At the University of Florida, exams are a constant. We felt the need for a smarter approach to preparation. Our project offers a more holistic view of information by offering a dynamic and holistic perspective on the most pertinent material. Our goal? To shift from traditional cramming methods to a more dynamic and comprehensive approach to studying.

When you’re cramming for an exam, breadth often takes precedence over depth. While understanding the basics of core topics is essential, it's not enough to truly excel. Our tool aids not only in grasping fundamental concepts but also drawing meaningful connections between them. Whether you are an early bird or a chronic procrastinator, incorporating AI into your routine can be transformative.

What it does

Our project Examlytics transforms your course's practice exam into a concise, streamlined overview. It categorizes the content into five easily digestible sections, each containing a list of topics ranked by frequency, key tips and tricks, and essential formulas.

How we built it

Our project combines a Python backend and a React frontend, with Websocket for communication. Users can submit PDF files via this frontend, which then communicates with a Flask backend. Upon receiving a file, the backend extracts its text content and sends it to an OpenAI model for processing. The results are then relayed back to the frontend using SocketIO. The repository offers an integrated solution where the frontend allows file submissions, and the backend handles the file processing and interaction with the GPT-4 model.

Challenges we ran into

Our greatest challenge was processing exams which were figure-heavy, as deterministically extracting text from said exams is easier said than done. To address this, we developed an interim solution that operates in conjunction with undetected-chromedriver, a library which hijacks a version of Google Chrome to bypass most anti-scraping and DDoS protection services. While we recognize that this isn't a long-term, deployable fix, it's worth noting that the impending update to the GPT-4 API will soon enable image analysis, rendering this workaround temporary. We also had difficulty in forcing the AI model to consistently output JSON files which could be consistently read and displayed on our front-end, which we eventually solved by fine-tuning our prompt

Accomplishments that we're proud of

We're immensely proud of how closely we've aligned with our initial vision. While there were certain objectives we couldn't fully realize, our achievements are noteworthy. We built a front-end entirely from the ground up, using only the basic create-react-app as a reference. Moreover, our Python code has been meticulously crafted to consistently and accurately generate JSON files based on the exam input. Perfecting this involved countless hours fine-tuning the prompts and making internal model request adjustments.

What we learned

Eli-> I learned how to use Websocket.io and connect Flask and React using it. I also learned how to better use git ignore, env files for security, and npm nivo for beautiful charts. I mainly do just back-end so it was a very new experience to be more in the intermediate part between front-end and back-end and getting exposed to both languages.

Dylan-> I learned a lot about making requests to Python backends, as I’ve never worked with Flask or Python Websockets before. This is also my first time working with the GPT-4 API, and undetected-chromedriver is a new tool that I will leverage for… grey purposes.

Luke-> I learned about using Selenium and interfacing with web pages using python and d how to get around common anti bot measures on webpages. In that process I also learned it can be beneficial to reduce the scope of a project to decrease the time it takes to create it.

What's next for Project

We aim to create a tool that students will find valuable. Our initial version will be lightweight and optimized for basic questions. However, once the API update is available in a few weeks, it will greatly augment our tool's capabilities. We're also planning to introduce multi-file uploads to analyze past exams, ensuring better accuracy. For financial viability, we'll monetize through sidebar ads and video ads post the first two free uploads. The costs of the GPT-4 API are quite high, amounting to roughly $1 for every 7 requests. Hence, to continue benefiting from our tool, frequent users will need to opt for a paid version.

Built With

Share this project:

Updates