An AI powered web-app for estimating language proficiency expectations of adult English learners.
The application can be accessed at the following URL:
https://language-proficiency-estimator.netlify.app
To run the application locally for evaluation or development purposes:
- Start the backend server
- Start the frontend server
- Visit
http://localhost:5173
in a web browser
Requires Python 3
The backend server requires the following python packages to be installed: (See backend/requirements.txt
)
- Flask
- torch
- flask_cors
- scikit-learn
- matplotlib
- numbpy
These may be installed by using pip
/ pip3
pip3 install Flask torch flask_cors scikit-learn matplotlib
Or in Unix-like environments, they may also be installed using venv
from the backend
directory.
python3 -m venv .venv
source .venv/bin/activate
python3 -m pip install -r requirements.txt
Once the dependancies have been installed, the server may be started by running the following command from the backend
directory.
flask run
Node (v. 18 or greater) and npm are required. From the frontend
directory run the following:
npm install
npm run dev
The full working application should now be accessible at http://localhost:5173
The backend can be deployed using Fly.io. To deploy, install flyctl and then from the backend
directory run:
fly deploy
Building the frontend for production deployment requires the following environment variable to be set:
VITE_PROFICIENCY_API
- URL for the backend proficiency model API (defaults tohttp://localhost:500
)
To build the frontend for deployment run the following command from the frontend
directory:
npm run build
The frontend/dist
directory contains the packaged front-end files for deployment.
This repository includes a pre-trained model at backend/model.pt
. But you can also train it by running the following from the backend
directory.
python3 train.py
The model has been trained on the BEST Dataset of Language Proficiency. Below are some visualizations of the data from this dataset.