SkillScope UI is a dynamic web application designed for classifying open issues on software projects. This repository can be hosted locally or on a VM, anywhere Django is supported. It uses Django, SQLite, and Redis to provide a simple yet responsive demonstration of the CoreEngine of Skillscope. This project integrates models generated by the CoreEngine and features an UI for exploration.
View a running demo.
View setup demo video
- Asynchronous Processing: Utilizes AJAX for non-blocking data processing, ensuring a seamless user experience even during heavy computations.
- Advanced Classification: Employs both LLMs and Random Forest Models generated by CoreEngine to provide accurate classifications of open issues.
- Framework: Built with Django, offering a powerful, scalable back-end architecture.
- Database: Uses SQLite for robust data management and query capabilities.
- Caching and Queues: Implements Redis for caching and managing asynchronous task queues.
- Deployment: A VM: https://skillscope.codingcando.com/
-
Install Dependencies
sudo apt install redis-server
-
Clone Repository
git clone git@github.com:RESHAPELab/ART-UI.git cd ART-UI git submodule update --init cd AST_Rock_Website
-
Create Virtual Environment
virtualenv venv source venv/bin/activate
-
Create
.env
fileSee the ENV section below for the required env variables.
-
Install Dependencies
sudo apt update sudo apt install libpq-dev # to install psycopg2
-
Install Python Packages
pip install -r requirements.txt
-
Download spacy/en_core_web_md
python3 -m spacy download en_core_web_md
-
Collect the staticfiles
python3 manage.py collectstatic
-
Train the models
Three model files are required:
rf_model.pkl
,gpt_model.pkl
,gpt_combined_model.pkl
Obtain these by running the instructions from the CoreEngine section. Warning: It may take a while to train, especially thegpt_combined_model.pkl
-
Setup the Database
python3 manage.py migrate
-
Run. Use two terminals (make sure to keep the virtual environment slected)
# One terminal: gunicorn AST_Rock_Website.wsgi -b 127.0.0.1:1234 # Second terminal: python3 manage.py rqworker default
DJANGO_SETTINGS_MODULE
: Should be the location of the settings file.AST_Rock_Website.settings
OPENAI_API_KEY
: OpenAI key that is able to access the pre-trained models trained from CoreEngine.REDIS_URL
: Location of the redis-serverDJANGO_SECRET_KEY
: Django Secret Key for session management
Inside AST_Rock_Website/AST_Rock_Website/
- urls.py: Project-level URL declarations.
- settings.py: Configuration settings including database, caching, and third-party integrations.
- templates: HTML templates for rendering views.
Inside dashboard/
:
- urls.py: App-level URL configurations.
- views.py: Controllers that handle requests and render responses.
- tasks.py: Asynchronous task definitions for background processing.
Inside StaticFiles/
:
- Directory containing CSS, JavaScript, and image files for the front-end.