All Projects Java · Security · ML Analytics

Bloom: Role-Based Access System

A full-stack desktop application built as the primary developer on a 5-person ASU team project. Bloom manages secure, invitation-based user provisioning and role-aware access for an education platform. A Python analytics companion adds ML/AI capabilities: login anomaly detection using IsolationForest, TF-IDF semantic search over help articles (RAG-ready), and a SQL + pandas usage analytics dashboard.

Public ASU Team Project (Lead Dev) View on GitHub ↗
Built as a 5-person ASU team project (Group 39, Fall 2024). I was the primary developer, responsible for the invitation-code onboarding system, role-based access control, access-control testing, and the Python ML analytics companion layer.
Problem

Education platforms need secure, role-aware user provisioning without exposing open self-registration, plus visibility into unusual login behavior.

Approach

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.

Tools
Java JavaFX SQLite Python Scikit-Learn Pandas NumPy Matplotlib JUnit 5
Result

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.

Why It Matters

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.

Tech Stack

Java JavaFX SQLite Python Scikit-Learn Pandas NumPy Matplotlib JUnit 5

Domain Tags

Full-Stack Java Security ML Analytics

Infographics

System architecture: JavaFX app and Python ML companion

System architecture: JavaFX app and Python ML companion

Invitation-based onboarding flow

Invitation-based onboarding flow

Python ML analytics companion modules

Python ML analytics companion modules

Screenshots & Outputs

Login anomaly detection (IsolationForest)

Login anomaly detection (IsolationForest)

Usage analytics dashboard

Usage analytics dashboard