How alexercsei-code/showyourworkfin-a-phishing-email-detection-tool-for-educational-settings works
Show Your Workfin is a Streamlit phishing-risk checker for school staff. A user pastes an email, the app separates any message headers, builds model features, predicts a risk score, and presents warning signs and practical advice. Its optional authentication check reads SPF, DKIM, and DMARC results from pasted headers; it does not contact mail servers or retain pasted text. The README also documents a research workflow for assembling data, cleaning it, training models, and evaluating generalisation. Notebook details are based on README descriptions, not inspected notebook source.
Main entry points: app.py Analysis workflow · 04_training_models.ipynb Model training · 05_models_evaluate.ipynb Model evaluation · 01_data_download.ipynb Data acquisition
Components 17
User interface
- Paste interface
app/app.py - Risk and advice
app/app.py
Email analysis
- Analysis workflow
app/app.py - Header checks
app/app.py - Text features
app/model/features.py - Risk classifier
app/model/phishing_model.joblib - Warning signs
app/app.py
Model research
- Data acquisition
notebooks/01_data_download.ipynb - Data exploration
notebooks/02_data_explore.ipynb - Data cleaning
notebooks/03_data_clean.ipynb - Model training
notebooks/04_training_models.ipynb - Model evaluation
notebooks/05_models_evaluate.ipynb
Data and evaluation
- Public email corpora
data/README.md - Synthetic test emails
data/synthetic_education_emails.csv - Demo examples
data/demo_dataset.csv - Evaluation results
results/README.md
Other components
- School staff
Connections 17
- School staff → Paste interface: pastes email
- Paste interface → Analysis workflow: submits text
- Analysis workflow → Header checks: splits headers
- Analysis workflow → Text features: builds features
- Analysis workflow → Risk classifier: requests score
- Analysis workflow → Warning signs: builds reasons
- Analysis workflow → Risk and advice: renders result
- Data acquisition → Public email corpora: downloads data
- Data acquisition → Data exploration: feeds data
- Data exploration → Data cleaning: informs cleaning
- Data cleaning → Model training: provides cleaned data
- Model training → Risk classifier: writes model
- Model training → Text features: writes feature code
- Model training → Model evaluation: supports evaluation
- Synthetic test emails → Model evaluation: tests model
- Demo examples → Model evaluation: scores examples
- Model evaluation → Evaluation results: records metrics