# guess1m/reportsplus architecture

> Architecture diagram of the GitHub repository guess1m/reportsplus, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-25). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/guess1m/reportsplus
- Repository: https://github.com/guess1m/reportsplus

## Overview

ReportsPlus is a Java desktop MDT for LSPDFR: an officer signs in, uses a desktop of MDT tools to create and review reports, look up people and vehicles, and work with court and game-event data. The graph preserves the README’s major capabilities while grouping related report types and popup features rather than listing every report class. Sampled excerpts support the login, desktop, report, lookup, settings, and callout relationships shown; unsampled subsystems are included from the tree and README, with uncertain wiring omitted.

Main entry points: [`src/main/java/com/Guess/ReportsPlus/Desktop/mainDesktopController.java`](https://github.com/guess1m/reportsplus/blob/main/src/main/java/com/Guess/ReportsPlus/Desktop/mainDesktopController.java) (MDT desktop), [`src/main/java/com/Guess/ReportsPlus/Windows/Server`](https://github.com/guess1m/reportsplus/tree/main/src/main/java/com/Guess/ReportsPlus/Windows/Server) (Server event windows), [`src/main/java/com/Guess/ReportsPlus/Desktop/desktopLoginController.java`](https://github.com/guess1m/reportsplus/blob/main/src/main/java/com/Guess/ReportsPlus/Desktop/desktopLoginController.java) (Login and registration), [`src/main/java/com/Guess/ReportsPlus/Windows/Apps/LogViewController.java`](https://github.com/guess1m/reportsplus/blob/main/src/main/java/com/Guess/ReportsPlus/Windows/Apps/LogViewController.java) (Report workspace)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_desktop["Desktop and identity"]
  node_app["Application startup"]
  node_login["Login and registration"]
  node_desktopui["MDT desktop"]
  node_profiles[("Officer profiles<br/>[Profiles.java]")]
end

subgraph group_records["Reports and court"]
  node_reportui["Report workspace"]
  node_reportdata[("Report records")]
  node_reportcreate["New report entry"]
  node_layout["Report layout builder"]
  node_court[("Court system<br/>[CourtCases.java]")]
end

subgraph group_game["Game data and alerts"]
  node_pedlookup["Ped lookup"]
  node_vehlookup["Vehicle lookup"]
  node_worlddata[("Game world data")]
  node_serverui["Server event windows"]
  node_callouts["Callout manager"]
end

subgraph group_preferences["Settings and customization"]
  node_settings["Settings and preferences"]
end

subgraph group_shared["Shared services"]
  node_config[("Configuration<br/>[ConfigReader.java]")]
  node_localization["Localization<br/>[Localization.java]"]
  node_serverclient["Server client utilities<br/>[ClientUtils.java]"]
  node_notifications["Notifications"]
end

node_officer(("Officer"))
node_gameplugin{{"LSPDFR game"}}

node_officer -->|"signs in"| node_login
node_app -->|"opens login"| node_login
node_login -->|"loads profiles"| node_profiles
node_login -->|"opens desktop"| node_desktopui
node_officer -->|"uses MDT"| node_desktopui
node_desktopui -->|"opens reports"| node_reportui
node_desktopui -->|"opens entry"| node_reportcreate
node_desktopui -->|"opens lookup"| node_pedlookup
node_desktopui -->|"opens lookup"| node_vehlookup
node_desktopui -->|"opens court"| node_court
node_desktopui -->|"opens tools"| node_serverui
node_reportui -->|"reads and updates"| node_reportdata
node_reportcreate -->|"creates reports"| node_reportdata
node_reportui -->|"uses layouts"| node_layout
node_pedlookup -->|"reads lookup data"| node_worlddata
node_vehlookup -->|"reads lookup data"| node_worlddata
node_serverui -.->|"receives game data"| node_gameplugin
node_serverui -->|"uses client utilities"| node_serverclient
node_serverui -->|"creates traffic reports"| node_reportdata
node_desktopui -->|"opens callouts"| node_callouts
node_callouts -->|"displays alerts"| node_notifications
node_desktopui -->|"opens settings"| node_settings
node_settings -->|"reads and writes"| node_config
node_desktopui -->|"uses translations"| node_localization

click node_app "https://github.com/guess1m/reportsplus/blob/main/src/main/java/com/Guess/ReportsPlus/MainApplication.java"
click node_login "https://github.com/guess1m/reportsplus/blob/main/src/main/java/com/Guess/ReportsPlus/Desktop/desktopLoginController.java"
click node_desktopui "https://github.com/guess1m/reportsplus/blob/main/src/main/java/com/Guess/ReportsPlus/Desktop/mainDesktopController.java"
click node_profiles "https://github.com/guess1m/reportsplus/blob/main/src/main/java/com/Guess/ReportsPlus/util/UserProfiles/Profiles.java"
click node_reportui "https://github.com/guess1m/reportsplus/blob/main/src/main/java/com/Guess/ReportsPlus/Windows/Apps/LogViewController.java"
click node_reportdata "https://github.com/guess1m/reportsplus/tree/main/src/main/java/com/Guess/ReportsPlus/logs"
click node_reportcreate "https://github.com/guess1m/reportsplus/blob/main/src/main/java/com/Guess/ReportsPlus/Windows/Apps/NewReportVewController.java"
click node_layout "https://github.com/guess1m/reportsplus/blob/main/src/main/java/com/Guess/ReportsPlus/Windows/Other/LayoutBuilderController.java"
click node_court "https://github.com/guess1m/reportsplus/blob/main/src/main/java/com/Guess/ReportsPlus/util/CourtData/CourtCases.java"
click node_pedlookup "https://github.com/guess1m/reportsplus/blob/main/src/main/java/com/Guess/ReportsPlus/Windows/Apps/PedLookupViewController.java"
click node_vehlookup "https://github.com/guess1m/reportsplus/blob/main/src/main/java/com/Guess/ReportsPlus/Windows/Apps/VehLookupViewController.java"
click node_worlddata "https://github.com/guess1m/reportsplus/tree/main/src/main/java/com/Guess/ReportsPlus/logs/LookupObjects"
click node_serverui "https://github.com/guess1m/reportsplus/tree/main/src/main/java/com/Guess/ReportsPlus/Windows/Server"
click node_callouts "https://github.com/guess1m/reportsplus/blob/main/src/main/java/com/Guess/ReportsPlus/util/Other/Callout/CalloutManager.java"
click node_settings "https://github.com/guess1m/reportsplus/blob/main/src/main/java/com/Guess/ReportsPlus/Windows/Settings/settingsController.java"
click node_config "https://github.com/guess1m/reportsplus/blob/main/src/main/java/com/Guess/ReportsPlus/config/ConfigReader.java"
click node_localization "https://github.com/guess1m/reportsplus/blob/main/src/main/java/com/Guess/ReportsPlus/util/Localization/Localization.java"
click node_serverclient "https://github.com/guess1m/reportsplus/blob/main/src/main/java/com/Guess/ReportsPlus/util/Server/ClientUtils.java"
click node_notifications "https://github.com/guess1m/reportsplus/blob/main/src/main/java/com/Guess/ReportsPlus/util/Misc/NotificationManager.java"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_app,node_login,node_desktopui,node_profiles toneBlue
class node_reportui,node_reportdata,node_reportcreate,node_layout,node_court toneAmber
class node_pedlookup,node_vehlookup,node_worlddata,node_serverui,node_callouts toneMint
class node_settings toneRose
class node_config,node_localization,node_serverclient,node_notifications,node_officer,node_gameplugin toneIndigo
```

## Components

### Desktop and identity

- [Application startup](https://github.com/guess1m/reportsplus/blob/main/src/main/java/com/Guess/ReportsPlus/MainApplication.java): `src/main/java/com/Guess/ReportsPlus/MainApplication.java`
- [Login and registration](https://github.com/guess1m/reportsplus/blob/main/src/main/java/com/Guess/ReportsPlus/Desktop/desktopLoginController.java): `src/main/java/com/Guess/ReportsPlus/Desktop/desktopLoginController.java`
- [MDT desktop](https://github.com/guess1m/reportsplus/blob/main/src/main/java/com/Guess/ReportsPlus/Desktop/mainDesktopController.java): `src/main/java/com/Guess/ReportsPlus/Desktop/mainDesktopController.java`
- [Officer profiles](https://github.com/guess1m/reportsplus/blob/main/src/main/java/com/Guess/ReportsPlus/util/UserProfiles/Profiles.java): `src/main/java/com/Guess/ReportsPlus/util/UserProfiles/Profiles.java`

### Reports and court

- [Report workspace](https://github.com/guess1m/reportsplus/blob/main/src/main/java/com/Guess/ReportsPlus/Windows/Apps/LogViewController.java): `src/main/java/com/Guess/ReportsPlus/Windows/Apps/LogViewController.java`
- [Report records](https://github.com/guess1m/reportsplus/tree/main/src/main/java/com/Guess/ReportsPlus/logs): `src/main/java/com/Guess/ReportsPlus/logs`
- [New report entry](https://github.com/guess1m/reportsplus/blob/main/src/main/java/com/Guess/ReportsPlus/Windows/Apps/NewReportVewController.java): `src/main/java/com/Guess/ReportsPlus/Windows/Apps/NewReportVewController.java`
- [Report layout builder](https://github.com/guess1m/reportsplus/blob/main/src/main/java/com/Guess/ReportsPlus/Windows/Other/LayoutBuilderController.java): `src/main/java/com/Guess/ReportsPlus/Windows/Other/LayoutBuilderController.java`
- [Court system](https://github.com/guess1m/reportsplus/blob/main/src/main/java/com/Guess/ReportsPlus/util/CourtData/CourtCases.java): `src/main/java/com/Guess/ReportsPlus/util/CourtData/CourtCases.java`

### Game data and alerts

- [Ped lookup](https://github.com/guess1m/reportsplus/blob/main/src/main/java/com/Guess/ReportsPlus/Windows/Apps/PedLookupViewController.java): `src/main/java/com/Guess/ReportsPlus/Windows/Apps/PedLookupViewController.java`
- [Vehicle lookup](https://github.com/guess1m/reportsplus/blob/main/src/main/java/com/Guess/ReportsPlus/Windows/Apps/VehLookupViewController.java): `src/main/java/com/Guess/ReportsPlus/Windows/Apps/VehLookupViewController.java`
- [Game world data](https://github.com/guess1m/reportsplus/tree/main/src/main/java/com/Guess/ReportsPlus/logs/LookupObjects): `src/main/java/com/Guess/ReportsPlus/logs/LookupObjects`
- [Server event windows](https://github.com/guess1m/reportsplus/tree/main/src/main/java/com/Guess/ReportsPlus/Windows/Server): `src/main/java/com/Guess/ReportsPlus/Windows/Server`
- [Callout manager](https://github.com/guess1m/reportsplus/blob/main/src/main/java/com/Guess/ReportsPlus/util/Other/Callout/CalloutManager.java): `src/main/java/com/Guess/ReportsPlus/util/Other/Callout/CalloutManager.java`

### Settings and customization

- [Settings and preferences](https://github.com/guess1m/reportsplus/blob/main/src/main/java/com/Guess/ReportsPlus/Windows/Settings/settingsController.java): `src/main/java/com/Guess/ReportsPlus/Windows/Settings/settingsController.java`

### Shared services

- [Configuration](https://github.com/guess1m/reportsplus/blob/main/src/main/java/com/Guess/ReportsPlus/config/ConfigReader.java): `src/main/java/com/Guess/ReportsPlus/config/ConfigReader.java`
- [Localization](https://github.com/guess1m/reportsplus/blob/main/src/main/java/com/Guess/ReportsPlus/util/Localization/Localization.java): `src/main/java/com/Guess/ReportsPlus/util/Localization/Localization.java`
- [Server client utilities](https://github.com/guess1m/reportsplus/blob/main/src/main/java/com/Guess/ReportsPlus/util/Server/ClientUtils.java): `src/main/java/com/Guess/ReportsPlus/util/Server/ClientUtils.java`
- [Notifications](https://github.com/guess1m/reportsplus/blob/main/src/main/java/com/Guess/ReportsPlus/util/Misc/NotificationManager.java): `src/main/java/com/Guess/ReportsPlus/util/Misc/NotificationManager.java`

### Other components

- **Officer**
- **LSPDFR game**

## Connections

- Officer → Login and registration: signs in
- Application startup → Login and registration: opens login
- Login and registration → Officer profiles: loads profiles
- Login and registration → MDT desktop: opens desktop
- Officer → MDT desktop: uses MDT
- MDT desktop → Report workspace: opens reports
- MDT desktop → New report entry: opens entry
- MDT desktop → Ped lookup: opens lookup
- MDT desktop → Vehicle lookup: opens lookup
- MDT desktop → Court system: opens court
- MDT desktop → Server event windows: opens tools
- Report workspace → Report records: reads and updates
- New report entry → Report records: creates reports
- Report workspace → Report layout builder: uses layouts
- Ped lookup → Game world data: reads lookup data
- Vehicle lookup → Game world data: reads lookup data
- Server event windows → LSPDFR game: receives game data
- Server event windows → Server client utilities: uses client utilities
- Server event windows → Report records: creates traffic reports
- MDT desktop → Callout manager: opens callouts
- Callout manager → Notifications: displays alerts
- MDT desktop → Settings and preferences: opens settings
- Settings and preferences → Configuration: reads and writes
- MDT desktop → Localization: uses translations
