OctoSight

OctoSight

End-to-end anti-phishing & fraud detection prototype for digital banking

OctoSight
Category
Web App
Role
Full-stack Developer
Timeline
March 2026 – June 2026
01

Overview

OctoSight is an end-to-end anti-phishing and fraud detection prototype developed as a capstone project for the Faculty of Computer Science, Universitas Brawijaya. Built with CIMB Niaga digital banking as the case study context, the platform combines a rule-based engine (35%) with machine learning (65%) to deliver a hybrid risk analysis system. It provides a streamlined reporting portal for banking customers, a full admin triage workflow with analytics dashboards, role-based access control, SLA monitoring, and preventive education modules. The system processes phishing reports across multiple channels — SMS, WhatsApp, Email, Website, and Transaction — with automatic ticket generation, evidence OCR, and real-time notifications.

02

Problems

🎣

Rising phishing attacks targeting digital banking users

Digital banking users in Indonesia face increasing phishing and fraud attempts across SMS, WhatsApp, email, and fake websites. Existing reporting mechanisms are fragmented and lack automated triage, leaving users vulnerable and overwhelmed.

Manual triage and investigation bottlenecks

Security teams process phishing reports manually, leading to slow response times, inconsistent prioritization, and difficulty tracking case histories. No unified dashboard exists for monitoring incident trends or SLA compliance.

🧩

No hybrid detection combining rule heuristics with ML

Most available solutions rely either purely on rule-based detection (brittle against novel attacks) or pure ML (black-box, hard to explain). Combining both with transparent scoring was a key design challenge.

👥

Complex RBAC requirements across 7 user roles

The system serves end users, customer service, investigators, analysts, moderators, admins, and viewers — each with distinct permissions. Enforcing 37+ granular permissions at both API and frontend layers required careful architecture.

03

Solutions

⚖️

Hybrid detection engine with transparent scoring

Built a two-stage detection pipeline: 40+ rule-based heuristics (typosquatting, punycode, brand impersonation, URL shorteners, phishing keywords, scam scenarios) weighted at 35%, combined with a TF-IDF + Logistic Regression ML model (87% accuracy) weighted at 65%. The hybrid score (0–100) is fully explainable with per-rule and per-ML breakdowns.

📱

Multi-channel reporting with automatic ticket generation

Designed a unified incident reporting form supporting 5 report types (SMS, WhatsApp, Email, Website, Transaction) with evidence screenshot upload. Each submission auto-generates a unique ticket ID, runs the detection pipeline, and assigns priority (High ≥75, Medium ≥35, Low <35).

📊

Full admin triage pipeline with Kanban and analytics

Implemented a 7-column Kanban board with drag-and-drop transitions (Submitted → In Review → Confirmed/False Positive/Need More Info → Mitigated → Closed). Includes a paginated triage list with filters (status, priority, date range), CSV export, investigation workspace with OCR evidence viewer, ML feedback loop, and AI-generated notes via Gemini.

🔐

Multi-layer RBAC with 37+ granular permissions

Architected role-based access with 7 roles (admin, moderator, investigator, analyst, cs, viewer, user) and 37+ granular permissions. Enforced via require_permission() decorators on all API endpoints and a PermissionGate component + can() hook across 18+ frontend components. Admin role bypasses at DB query level.

04

Contributions

Architected and developed the entire frontend application using Next.js 15 App Router with 98+ component files across user, admin, auth, and education routes

Designed and implemented the hybrid detection pipeline integration — connecting rule engine, ML inference, OCR processing, and Gemini AI recommendations into a single coordinated workflow

Built the full admin dashboard with Chart.js widgets for incident trends, modus distribution, channel breakdown, risk segmentation, and SLA monitoring

Developed the Kanban board ticket management system with drag-and-drop, bulk operations, CSV export, and paginated triage list with real-time filtering

Implemented RBAC across both frontend (PermissionGate, can() hook) and backend (require_permission()) with 7 roles and 37+ granular permissions

Designed and built the education module with 8 microlearning modules, 10+ articles, quizzes across 4 difficulty levels, and personalized Gemini AI recommendations per report type and risk level

Built the gamification system with points, streaks, badges, and 14 achievement types to drive user engagement and security awareness

Integrated Google OAuth, forgot/reset password flow, real-time in-app notifications via polling, and Gmail SMTP email notifications for status changes

05

Features

🔍

Hybrid Risk Analysis

Real-time preview of phishing risk score combining rule heuristics (35%) and ML prediction (65%) with full explainability

📋

Multi-Channel Reporting

Submit phishing/fraud reports across SMS, WhatsApp, Email, Website, and Transaction channels with evidence screenshots

📊

Analytics Dashboard

Chart.js widgets tracking incident trends, dominant modus, channel distribution, risk segmentation, and SLA compliance metrics

📌

Kanban Board

Drag-and-drop ticket workflow across 7 columns with bulk operations, inline assignment, and real-time status updates

🛡️

Blacklist Management

CRUD operations for blacklisted URLs, bank accounts, phone numbers, and emails — 4 types with automatic duplicate checking

📚

Education Modules

8 microlearning modules, 10+ articles, and quizzes across 4 difficulty levels with personalized Gemini AI recommendations

06

Tech Stack

  • FastAPI
    FastAPI
  • Next.js
    Next.js
  • Python
    Python
  • TypeScript
    TypeScript
  • Docker
    Docker
  • MySQL
    MySQL
  • scikit-learn
    scikit-learn
07

Gallery

Gallery image 1
Gallery image 2
Gallery image 3
Gallery image 4
Gallery image 5
Gallery image 6
Gallery image 7
Gallery image 8
Gallery image 9
Gallery image 10

1 / 10

08

Results

🎯

87% ML Accuracy

Logistic Regression + TF-IDF model trained on 2,000+ labeled samples achieved 87% accuracy with 0.87 precision and 0.84 recall

Sub-5 Second Processing

Full detection pipeline — report submission, rule analysis, ML inference, and scoring — completes in under 5 seconds

🧩

40+ Detection Rules

Comprehensive rule engine covering typosquatting, punycode, brand impersonation, URL shorteners, phishing keywords, and 4 scam scenarios

🔧

8 Docker Services

Production-ready infrastructure with Docker Compose orchestration: Caddy, Next.js, FastAPI, MySQL, Redis, Celery, and phpMyAdmin