Skip to content

Latest commit

 

History

5 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

FraudGuard banner

Java Support UI Framework Database Platform Compatibility License


🛡️ FraudGuard

FraudGuard is a clean, responsive Java Swing desktop application designed to simulate an enterprise merchant fraud monitoring and investigation workflow. Built as a portfolio project, it demonstrates key software engineering practices including a layered desktop architecture, thread-safe SQLite local persistence, and analyst registration/authentication flows.

🚀 Key Features

  • 🔒 Analyst Authentication: Secure portal for analysts with login and account registration screens.
  • 📊 Fraud Watchlist Dashboard: Monitor, search, and manage flagged/suspicious merchant accounts in real-time.
  • ⚠️ Risk Scoring Engine: A rule-based scoring model that calculates threat classifications (Low, Medium, High) based on blacklist history and report frequency.
  • 💾 Auto-Initializing SQLite Database: Local file-based database persistence with automated schema creation and default admin credentials seeding on first launch.
  • 🖥️ Cross-Platform GUI: A clean desktop interface featuring a responsive sidebar navigation built with Java Swing cards.

📸 Screenshots

Analyst Authentication Gateway
Analyst Login Screen

Verify Status Interface
Verify Status Dashboard

Flag Suspicious Account Form
Report Fraud Screen


🏛️ System Architecture

FraudGuard utilizes a clean separation of concerns, separating user interface panels from SQL operations and the database access layer.

graph TD
    classDef default fill:#1e1e24,stroke:#3a3a4a,stroke-width:2px,color:#fff;
    classDef database fill:#1a365d,stroke:#2b6cb0,stroke-width:2px,color:#fff;
    classDef gui fill:#2d3748,stroke:#4a5568,stroke-width:2px,color:#fff;

    UI[JFrame App Container: FraudGuardApp]:::gui --> CardL[CardLayout Controller]:::gui
    CardL --> View1[Registration Screen]:::gui
    CardL --> View2[Login Screen]:::gui
    CardL --> View3[Dashboard Panel]:::gui
    CardL --> View4[Status Verifier Panel]:::gui

    View3 & View4 --> DB[Database Manager: FraudDatabase Singleton]
    DB:::database --> Driver[SQLite JDBC Driver]:::database
    Driver --> File[(Local SQLite File: fraudguard.db)]:::database
Loading

🛠️ Codebase & Technical Highlights

  • Thread-Safe Singleton Pattern: The database controller FraudDatabase uses a double-checked synchronization wrapper to manage connections safely across potential concurrent worker threads.
  • Dynamic SQLite Bootstrapping: Resolves absolute file paths dynamically based on runtime classpath location to ensure the database file initializes robustly regardless of how or where the app is launched.
  • Component-Driven Swing Layout: Leverages Java Swing CardLayout for fluid transitions between screens without spawning multiple window instances.
  • Character Safe Encoding Support: Source files are built using UTF-8 to display visual UI icons (like 🛡️, 🖥️, ⚠️) gracefully.

⚙️ Quickstart

Prerequisites

Ensure you have Java 8 or higher installed. Check your version with:

java -version

Launch on Windows (One-Click)

We have provided a native Command Prompt launcher script:

  1. Double-click run.bat in File Explorer, or run:
.\run.bat

Launch on macOS / Linux

Open a terminal inside the project directory and execute:

chmod +x run
./run

🔑 Demo Credentials

The application automatically seeds a default analyst account on its very first run:

  • Analyst ID Key: analyst01
  • Security Passcode: secure2026

📁 Repository Layout

├── .gitignore               # Excludes binaries, .class files, and local DBs
├── README.md                # Project documentation and showcase
├── LICENSE                  # MIT License details
├── banner.png               # Premium repository banner graphic
├── run.bat                  # One-click Windows runner and compiler
├── run                      # One-click macOS/Linux launcher shell script
├── FraudGuard.java          # Core Swing GUI and database implementation
└── sqlite-jdbc-3.34.0.jar   # Bundled SQLite database connection driver

📈 Future Enhancements (Roadmap)

To transition this project into a production-grade merchant portal, the next steps include:

  • Secure Credential Hashing: Migrating plain-text analyst passwords to Argon2id or bcrypt hashing.
  • Automated Testing Suite: Writing JUnit integration tests for database operations and validation logic.
  • REST API Integration: Migrating local SQLite to a remote PostgreSQL server via a Spring Boot backend API.
  • Executable Distribution: Packaging the project into a native .exe or executable .jar using launch4j or jpackage.

📄 License

This project is licensed under the APACHE License. See LICENSE for details.

About

A desktop guard dog for merchant transactions, built with Java Swing and SQLite to model risk scoring and fraud analyst dashboards.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages