AdmissionAI: Machine Learning Powered Student Admission and Dropout Risk System
Client
Santosh Khanal
Year
2025
Tech stack
React 18, Vite, Tailwind CSS, Recharts, React Router, Axios, FastAPI, Python, Pydantic, SQLAlchemy, PostgreSQL, scikit-learn, Random Forest, SMOTE, JWT authentication, bcrypt, Uvicorn
About
A full stack admission platform where students apply online and a Random Forest model instantly predicts whether each applicant is likely to graduate, stay enrolled, or drop out. Admins get a risk score, probability breakdown, and the top reasons behind every prediction before deciding.
The Problem
Admission teams in higher education still review most applications by hand. An officer reads through academic records, family background, and financial details for every single applicant and tries to guess who will succeed and who is at risk of leaving before finishing. This takes a lot of time, the judgement changes from person to person, and there is no clear record of why a decision was made.
The bigger issue is dropout. When a student leaves partway through a course, the university loses funding, the student loses money and time, and support teams find out too late to help. Most admission tools do not flag this risk at the point of entry, so nobody acts on it until the student is already struggling.
There was also no simple way to keep humans in control while still using data. Fully automated scoring feels risky and hard to defend, while a fully manual process ignores useful patterns sitting in past student data.
What I Built
I built AdmissionAI, a web application that connects an online application form to a trained machine learning model and an admin review dashboard.
Students register, fill in one structured form covering their academic history, personal details, and financial situation, and submit it. The backend validates every field, saves the application, and runs it through a Random Forest classifier trained on 4,424 real student records. Within a few seconds the system returns a predicted outcome (Graduate, Enrolled, or Dropout), a risk score from 0 to 100, the probability of each outcome, and the ten features that influenced the result the most.
Admins log into a separate dashboard. They see every application in a filterable list, open any one to view the full ML breakdown, and then either accept the prediction or override it with their own decision and notes. Every decision is stored with a timestamp and the admin identity, so there is a complete audit trail. The applicant is notified automatically at each step. A stats page shows totals, pending and accepted counts, the override rate, the average risk score, and the spread of predicted outcomes.
Key Features
Online student application form with 36 validated input fields covering academics, demographics, and finances
Random Forest model that predicts Graduate, Enrolled, or Dropout for each applicant in under 3 seconds
Risk score from 0 to 100 with clear labels: High Potential, Needs Review, and High Risk
Probability breakdown showing the model confidence for each of the three outcomes
Top ten feature importance list so admins can see why the model made its call
Admin review workflow to accept the prediction or override it with notes
Full audit trail that logs every decision with admin identity, timestamp, and comments
Role based access with separate applicant and admin interfaces protected by JWT authentication
Automatic notifications to applicants when their application is scored, updated, or decided
Admin analytics dashboard with totals, override rate, average risk score, and outcome distribution charts
Project Details
What the project needs to do
The system has two types of users with very different needs. Applicants need a simple way to apply and check their status. Admission staff need fast, consistent, and explainable information to make fair decisions and to catch dropout risk early. The application had to serve both without letting either group see the other group's screens or data.
How it works through the main features
Registration and application. A student creates an account with name, email, and password. Passwords are hashed with bcrypt and never stored in plain text. Once logged in, the student fills in one application form. The form is grouped into sections: personal information, previous qualifications, first semester results, second semester results, and economic indicators. Each user can have one active application, which they can edit or delete while it is still pending.
Validation. When the form is submitted, FastAPI and Pydantic check every field on the server. They confirm the data types, ranges, and required values before anything is saved. This stops broken or fake data from ever reaching the model or the database.
Machine learning scoring. The saved application is converted into the exact feature format the model expects and passed to a scikit-learn pipeline made of a StandardScaler and a Random Forest classifier with 200 trees and balanced class weights. The model was trained on the UCI Student Dropout and Academic Success dataset, which holds 4,424 student records and 36 features. It reaches about 77 percent accuracy and a 0.90 weighted ROC AUC on held out test data. The model is loaded once when the backend starts, so there is no cold start delay on the first prediction.
Prediction output. For every application the system stores the predicted class, the probability of Graduate, Enrolled, and Dropout, a risk score, a risk label, and the ten most important features. The risk score is a single number from 0 to 100 where a likely graduate scores near 100 and a likely dropout scores near 0, so staff can sort and scan applications quickly.
Admin review and decisions. Admins open a dashboard that lists all applications with pagination and filters for status and risk label. Opening an application shows the applicant details next to the full ML breakdown, including a feature importance chart built with Recharts. The admin then records a decision: accept the model outcome or override it. Overrides require the admin to set the final outcome and can include notes explaining the reasoning.
Audit trail and notifications. Each decision is written to a decisions table with the admin identity, the action taken, the final outcome, optional notes, and the time. This gives the institution a defensible record for every applicant. At the same time, a notification is created for the applicant so they always know where their application stands.
Analytics. A dashboard stats endpoint aggregates the data into headline numbers: total applications, how many are pending, accepted, or rejected, the percentage of predictions that admins overrode, the average risk score across all applicants, and the count of applicants in each risk band and each predicted outcome.
Summary
AdmissionAI shows how a university can use its own past student data to support admission decisions without handing control to a machine. The model does the pattern spotting and explains its reasoning, the admin makes the final call, and the system keeps a clean record of both. Applicants get a faster and more transparent process, and staff get an early warning system for dropout risk right at the point of entry.
Screenshots
The Result
The finished system takes an application from submission to a scored, explained prediction in under three seconds. The Random Forest model was benchmarked against Logistic Regression and a Decision Tree and came out ahead on accuracy (77 percent), weighted F1 (0.76), and ROC AUC (0.90). It correctly identifies about 92 percent of future graduates and 77 percent of dropouts in testing.
Beyond the numbers, the project delivers a working end to end product: a public landing page, secure registration and login, a full applicant journey, an admin review dashboard with charts, a complete decision audit trail, and an analytics view. It proves that explainable machine learning can sit inside a normal admission workflow and give staff useful, defensible information while keeping the human in charge of every decision. It was built and submitted as an MSc Information Technology dissertation project at the University of the West of Scotland.