Inspiration

Student success is influenced by many factors, but educational decisions are often made without an easy way to turn available student information into an early, actionable signal.

We wanted to investigate how machine learning could help bridge that gap. Our goal was not simply to predict a student's future, but to build a practical decision-support tool that could help educators recognize possible risk earlier and make more informed intervention decisions.

That idea became Student Outcome Indicator.

What it does

Student Outcome Indicator allows users to enter or upload student information and receive a machine-learning prediction of the student's likely academic outcome.

It supports three outcome classes: Dropout, Enrolled, and Graduate. Users can analyze individual students or process multiple student records at once.

The application is intended as a decision-support tool rather than a replacement for professional judgment. Its purpose is to provide an additional data-driven signal that educators and institutions can consider when identifying students who may require further attention or intervention.

How we built it

We built Student Outcome Indicator as a complete ML-to-application pipeline rather than stopping at model training.

The workflow starts with structured student data, applies the required preprocessing, and passes the resulting features into a trained classification model. The model predicts one of three outcomes: Dropout, Enrolled, or Graduate.

We developed dedicated workflows for individual and batch prediction, saved the trained model with Joblib, and built the interface with Streamlit. We tested the application and its prediction workflows before packaging the project with its dependencies and documentation.

The final prototype was published on GitHub and deployed publicly through Streamlit so it could be tested outside the development environment.

Challenges we ran into

One of the main challenges was working with an imbalanced target variable. The three academic outcome classes were not equally represented, which meant that simply looking at overall accuracy would not be enough to understand how well the model was performing across classes.

We also had to make sure that preprocessing during inference matched the preprocessing used during training. This became especially important when converting the trained model into an application that accepts new individual and batch records.

Finally, we had to move from a working notebook-based ML workflow to a structured application that could be deployed and used by someone without directly interacting with the code.

Accomplishments that we're proud of

Our biggest accomplishment is that we took the project from a machine-learning idea to a working, publicly deployed application.

We trained and evaluated a classification model, built preprocessing and prediction workflows, implemented both individual and batch prediction, created a Streamlit interface, documented the project, published the code on GitHub, and deployed the application.

Most importantly, the final result is not just a model sitting inside a notebook. It is a working prototype that people can actually interact with.

What we learned

This project taught us that building an ML application involves much more than training a model.

We learned how important consistent preprocessing is between training and inference, how class imbalance can affect evaluation, and why testing the complete prediction pipeline matters.

We also gained practical experience turning a trained model into an application, handling individual and batch inputs, managing dependencies, structuring a project for deployment, documenting the work, and deploying it publicly.

What's next for Student Outcome Indicator

Student Outcome Indicator is currently a prototype, and there is significant room to develop it further.

Future work could include improving model performance across the three outcome classes, expanding model evaluation, adding stronger interpretability features, improving the intervention recommendations, and making the application more robust for real institutional use.

We would also like to validate the approach with more diverse student populations and real-world educational stakeholders before considering broader deployment.

Built With

Share this project:

Updates

Submission history