Inspiration
I was have a conversation one day with my friend's dad where I essentially talked about how it would be sort of easy to complete a few majors and minors in 4 years if people were more aware of the options they had. I said "Someone should make an app for this bruh" and his dad said "You should make one for your hackathon!" so here we are.
What it does
It takes in a student's DARS report, and using that it suggests different majors and minors as well as courses already in progress for those majors/minors and courses you would need to or should complete. Some aspects are still currently a work in progress, but it is promising. To run this code: please run python3 app.py or access it on our website at http://3.144.115.247:8080/
How we built it
We used docker-compose to keep our working environment the same, a postgreSQL database to store data related to majors, required courses, degrees etc, we are currently working on an encoding system in order to store relationships between courses in a major more efficiently. The input and output for the encoder & decoder respectively is a dictionary type data structure which we have structured based on patterns we observed on university course webpages. On this data structure we then run Needleman wunsch global sequence alignment algorithm to obtain different possible paths to completing a major and cross examining them with the information the student provides.
Challenges we ran into
The major challenge we ran into was sourcing our data from the university's webpages. Of course, some majors like Music and Neurobio have very specific requirements including specific to the student and faculty. Other than this however, we realized that different departments have strange ways of listing out courses which is not standardized at all. we had to manually dump in data in the kind of structure we wanted using a bit of scraping and ai. Another challenge is the encoding of information for storage. There are a couple issues with a few courses, however, it should be solved in the near future.
Accomplishments that we're proud of
We managed to figure out decent enough patterns that honestly made the input for our algorithm a lot easier. There is still more refining to be done, however the patterns, encoding, and algorithm required a decent amount of brain work.
What we learned
We learned that it is possible to store so many kinds of information with encoding (though it becomes a pain to implement). I knew it was powerful from my C classes like operating systems, however, this fact was emphasized through this experience. We also learned to combine different approaches in order to find solutions in already existing places. Another thing I would want to mention is the need for some way to standardize information retrieved especially if the information is coded similarly maybe using a pipeline or something else
What's next for MadDARS
We plan on refining our approaches a little to output other things like combinations of majors and minors as well take course breadths and such into account (would need standardized data which is difficult to obtain currently, however) and enhance our algorithm by using more pieces of information from the student's DARS report.
Log in or sign up for Devpost to join the conversation.