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.
- 🔒 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.
Analyst Authentication Gateway
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
- Thread-Safe Singleton Pattern: The database controller
FraudDatabaseuses 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
CardLayoutfor 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.
Ensure you have Java 8 or higher installed. Check your version with:
java -versionWe have provided a native Command Prompt launcher script:
- Double-click run.bat in File Explorer, or run:
.\run.batOpen a terminal inside the project directory and execute:
chmod +x run
./runThe application automatically seeds a default analyst account on its very first run:
- Analyst ID Key:
analyst01 - Security Passcode:
secure2026
├── .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
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
.exeor executable.jarusing launch4j or jpackage.
This project is licensed under the APACHE License. See LICENSE for details.


