Inspiration
Many students want to display their major GPAs on their resume. However, their cumulative GPA is the only grade provided and includes all classes taken, including those that are not related to their major. So, they end up manually going through all of their courses and calculating the GPA for their major related courses. Obviously, this can get tedious, so we came up with a solution.
What it does
Our Web App allows students to upload their transcript, and from there, we automatically detect all of their courses, grades, and credits and display them in a list. This allows the user to easily select their major related courses with just a few clicks and check marking the respective courses. The list includes a search bar and an interactive double column transfer choice box interface.
How it was built it
We built this Webapp using ReactJS, NodeJS and Tesseract JS. React was used to implement the front-end with the use of ANT Design's UI library. NodeJS was used to implement Tesseract using JavaScript. And we used Tesseract for its optical character recognition library to extract the text from the uploaded image of a transcript. From Tesseract's OCR, we receive a large string containing all characters that were detected from the image. We then take that string and define regular expressions to extract relevant information such as the course name, course code, course credit, and course grade, which is all structured into javascript object notation. These expressions are designed to recognize patterns in the string allowing us to get the information we need.
Challenges we ran into
The main challenge we ran into was designing the regular expressions to accurately extract the data. Designing regular expressions was challenging for us because it was an unfamiliar concept to us that involved creating patterns that match the desired information in a text document. There was a lot of room for error because we had to account for different formatting, special characters and even spaces that could cause certain courses not to be detected. Eventually, we were able to solve this problem by accounting for possible patterns that might not be recognized, mainly special characters and spaces.
What I learned
I learned a lot building this project, mainly optical character recognition and regular expressions. These subjects have really expanded my skill tree and I plan on using them in the future.
I also learned that a lot can be done in just 72 hours!
Log in or sign up for Devpost to join the conversation.