Education platforms need secure, role-aware user provisioning without exposing open self-registration, plus visibility into unusual login behavior.
Built a JavaFX desktop application with invitation-only onboarding and three-tier role-based access control (Admin / Instructor / Student), paired with a Python analytics layer for anomaly detection and semantic search.
Delivered a working 5-person team product with cryptographically secure OTP onboarding, IsolationForest-based anomaly detection that flags suspicious logins, and a usage analytics dashboard — validated with a JUnit test suite.
Demonstrates full-stack engineering, applied security design (RBAC, secure onboarding), and layering machine learning (anomaly detection, semantic search) onto a traditional software system — a common need in enterprise and EdTech platforms.
Project Highlights
- Invitation-based onboarding: cryptographically secure 6-digit OTP via SecureRandom, single-use, role-bound
- Three-role RBAC (Admin / Instructor / Student) routing users to scoped dashboards and capabilities
- SQLite persistence via JDBC with Users and Invitations tables; full CRUD for help articles (with soft-delete restore)
- IsolationForest login anomaly detection flagging off-hours access, brute-force attempts, and credential stuffing
- TF-IDF semantic search over help articles with optional LLM RAG (OpenAI / Anthropic); pgvector-ready architecture
- SQL + pandas usage analytics dashboard: role distribution, invitation funnel, login trends, article views
- JUnit 5 tests verifying OTP length, numeric format, uniqueness across 5,000 draws
Two Layers in One Repo
JavaFX App
Secure invitation onboarding, role-based routing, help-article knowledge base, SQLite persistence.
Python Analytics
IsolationForest anomaly detection, TF-IDF semantic search + RAG, SQL + pandas usage dashboard.
Infographics
System architecture: JavaFX app and Python ML companion
Invitation-based onboarding flow
Python ML analytics companion modules
Screenshots & Outputs
Login anomaly detection (IsolationForest)
Usage analytics dashboard