Inspiration

Right now, it is currently application season for our high school friends. Many of them don't know how many colleges to apply to and have so much anxiety about whether or not they will be admitted. We wanted to try and mitigate those anxieties.

What it does

Our website College Hack, allows users to input their personal information through machine learning algorithms to predict the chances of a student being accepted into any given college. Unlike some other unreliable admissions calculators who only take into account academic scores, we also factor in demographics into our algorithm. By Summer, students will generally know which colleges accepted and did not accept them. This is when they will be sent an email, prompting them to voluntarily input their data onto the site so we can add to our database and improve our predictions.

How we built it

We built our website with pure HTML, CSS and Javascript. Our Javascript server was able to send information to our python notebook and Azure database using socket.io. We used Mircosoft Azure to hold our database of student data. We queried data that we wanted with SQL and sent that to our python notebook to train binary classification models (Multinomial Logistic Regression and KNN Binary Classification) for every major university in the United States. The model is then deployed back to our Javascript server to be presented on our website. We were, unfortunately, unable to complete this last part.

Challenges we ran into

  • Firstly, neither of us had experience with front-end and using Javascript. We had so many challenges with the Javascript syntax and issues with our eventListeners() not functioning properly.
  • Our first big issue was getting our Javascript server to connect with Azure. We had issues with the require() module and tedious. For some reason require did not run and give us an error that require() was not defined, through we knew we had it installed properly.
  • Another big issue was using socket.io to connect our python notebook with our javascript server. We needed a way to send the information had on our database back to Javascript and then to python so we could use our ML libraries to compute a prediction. We had issues working with socket.io on the server-side since we wanted to send our data as a Node object to python.
  • had difficulty with github pages. We were unable to use it to host our website as we kept getting 404 errors.

Accomplishments that we're proud of

  • We're exceptionally proud that we were about to create a website without any prior knowledge with HTML or CSS. Though it isn't the most spectacular website, we think its clean and serves our purpose well.
  • We were proud to be able to connect Javascript with Azure. Being able to send data to the database as very rewarding. Especially since we had very little experience with Javascript.
  • We're delighted to have used ML models to make predictions. We both took ML classes and wanted to use what we learned in class in a real environment.
  • We're happy that we got to work together to propose a solution to a problem in a short amount of time. This was our first dubhacks! We had so much fun along the way.

What we learned

  • We learned that deploying ML models to a website is really hard (or at least for the approach that we were taking).
  • We learned creating a server that can handle so many tasks can get really messy and organization is key.
  • We learned HTML and CSS aren't as hard as we thought.
  • We learned how valuable github is with managing version control.

What's next for Will They Accept Me?

  • The process for choosing and training our models
  • Placing actual predictive models on our website (this will need to wait until we receive enough user inputted data)
  • A way to ensure that we minimize the number of troll or fake submissions
  • Adding additional meaningful features that admission officers use in the admissions process
  • Incorporating essays into the prediction process (however the current technology in NLP is far from capable of doing this accurately)
  • Backend of the contact page

note: if you want to try out our website, you will, unfortunately, need to clone our project repo, which is quite large. From there you can open index.html.

Share this project:

Updates