Baz00k@
US Conflicts DB Icon
Database / Media

US Conflicts DB

0.2.0.11

Research database application for structured record of US conflicts and interventions, sources, legal tags, TIME/FIRE layer and profile-driven automatic evaluation; includes multi-source asynchronous enrichment and lossless consolidation.

What the project solves

Research database application for structured record of US conflicts and interventions, sources, legal tags, TIME/FIRE layer and profile-driven automatic evaluation; includes multi-source asynchronous enrichment and lossless consolidation.

Typical use

  • Evidence of conflicts and interventions with traceable sources
  • Mass multi-source enrichment without blocking graphical interface
  • Lossless consolidation duplicate without losing resources
  • Profile-controlled registration / criteria analysis
  • Export and other research database processing

How the application works and what it is for

Overview

US _ Conflicts _ DB is a monolithic, cross-platform graphical interface application for managing and analysing American military conflicts and interventions from ~ 1900 to present.

Primary objectives:

  • Registration and cataloguing of US military operations
  • Import of historical data from Excel / CSV sources
  • Deduplication and data cleaning using fuzzy matching
  • Web Enrichment of Records (Wikipedia, Wikimedia, US Archives)
  • Search for new conflicts via Wikidat (Discovery mode)
  • Advanced filtering and analysis by time, region, actors
  • Export for further processing (CSV, XLSX, JSON)

Key aspects:

  • Non-Intuitive graphical interface
  • VET SQLite backend without external server
  • full localization (CZ, EN)
  • ■ Support for legacy of automatic migration databases
  • --Fuzzy matching for the detection of duplicates (RapidFuzz)
  • Non-freezing of UI enrichment
  • Offline mode (work without internet)
  • anyway, i'm just saying, i'm just saying, i'm just saying, i'm just saying, i'm just saying, i'm not saying, i'm just saying, i'm just saying, i'm not saying, i'm not saying, i'm not saying, i'm not saying, i'm not saying, i'm not saying, i'm not saying, i'm not saying, i'm not saying, i'm not saying, i'm not saying, i'm not saying, i'm not saying, i'm not saying, i'm not saying, i'm not saying, i'm not saying, i'm not saying i'm not being a good.

Key Properties and Features

The Database Administration

  • SQLite3 backend with modern scheme (22 columns)
  • Automatic initialization of DB at first start
  • First- run detection with auto-import bundled data sets
  • Backup and Restore Strategy (Save DB As)
  • Integrity check & repair
  • DB statistics (number of records, latest updates)

• Import & Export

  • XLSX import with intelligent column mapping
  • CSV import (drag & drop i menu)
  • Drag & Drop interface (Excel, CSV, DB)
  • Legacy DB Migration (old format → new)
  • Bundled datasets (USA _ intervention _ * .xlsx)
  • CSV export (complete or filtered)
  • XLSX export (formatting and formatting)
  • JSON export (for inetegration with other systems)

SECTION Filtering & Search

  • Full text search (words in title, note, players)
  • Ground filter (drop with ISO2 codes)
  • Filter by region (Africa, Asia, Europe, Caribbean, etc.)
  • Filter by year (od- to range)
  • Advanced: combined filters with AND / OR logic
  • Stored search queries (search history)
  • Real-time refresh (immediate result)

ITEM Deduplication (RapidFuzz Fuzzy Matching)

  • Token _ set _ ratio fuzzy string matching
  • Configurable thrall (50-99%)
  • Interactive dialogue with couples view
  • Merge of records (merge sources)
  • Deleting duplicit (keep one, delete others)
  • Batch deduplication (all records at once)

• Enrichment (Multi-Source Enrichment)

  • Wikipedia EN / CZ (first result, snippet)
  • Wikimedia Commons (media, photos)
  • US Government archives (state.gov, cia.gov, archives.gov)
  • Google search (optional, rate-limited)
  • DuckDuckGo search (fallback)
  • Score relevance (filtering of irrelevant results)
  • Status summary (new / supplemented / updated / unchanged / failed)
  • Background processing (non-blocking UI)
  • Progress bar with runtime / ETA

ITEM Discovery Mode (Wikidata)

  • Search for new conflicts via Wikidata API
  • Global Run (the whole world) + Regional Filter
  • Automatic detection of new conflict (udup check)
  • Insert into DB with complete metadata
  • Schedulling and automated background run

ITEM & UX

  • Splash screen with skip button + version
  • Tabular overview with column sorting
  • Single record detailed panel
  • Dynamic colour highlighting of regions
  • Rotating flags of States (WEBP / GIF / PNG formato)
  • Language buttons (8 languages switching)
  • Font size change (Shift + Wheel on table)
  • Col. visibility persistence
  • Centralized settings in the dialog with bookmarks

UI & Workflow

Main Window (MainWindow)

  • Upper bar: Menu (File, Edit, Tools, Help) + Language buttons (8 languages)
  • Left panel: Filters (countries, region, years, fulltext search)
  • Center: QTableWidget with conflict names, years, mention
  • Right panel: Record display detail + flag (state image)
  • Down: Status bar (number of records, last one was action)

Typical workflow (user)

  1. Filter: Select country, region, years
  2. Search: Enter text in search field
  3. Detailed tour: Click on table row → see detail on the right
  4. Modification: (if implemented) Edit button → dialog with form field
  5. Enrichment: Menu Tools > Enrich selected → progress bar
  6. Export: File > Export as CSV / XLSX

Dynamic highlighting of regions

The table uses color codes for uniform regions:

Rotating flags

  • Application displays the flag of state in the detail of the panel
  • Formats: WEBP (preferred), GIF, PNG
  • Fallback: He uses QTimer for animation (refresh 100ms)
  • Multi-state: If the record contains multiple countries, the flags rotate

Import XLSX / CSV

XLSX Import with column mapping

Workflow:

  1. User selects XLSX file (File > Import XLSX)
  2. App opens the first sheet and loads columns
  3. Map dialog: For each target column in DB select source from XLSX
  4. Preview: Show first N lines after mapping
  5. Duplicates: Check the udup check (fuzzy match on the nail)
  6. Entry: Insert into 'contacts' table

CSV Import

  • Drag & Drop CSV to Main Window OR File > Import CSV
  • Separator self-detection (comma, semicolone, tab)
  • Same column mapping as XLSX
  • Import into DB

Bundled datasets

On the first start of the first run, the app looks for these XLSX files in the current dir:

  • USA _ intervention _ 20251212.xlsx
  • USA _ intervention _ ALL _ REGIONS _ CZ _ DETAILED _ 20250823.xlsx
  • conflicts.xlsx
  • dataset.xlsx
  • Any * .xlsx in the directory

If found, it will offer automatic import.

Parsing of countries

Function extracts the ISO2 codes from the text:

Drag & Drop interface

The application accepts drag & drop:

  • .xlsx (Excel import)
  • .csv (CSV import)
  • .db, .sqlite, .sqlite3 (legacy DB import)

Filter & Search

Full text search (e.g. operator)

Filters in UI

  • Search field: Full text
  • Country drop: ISO2 filter (US, GB, FR,...)
  • Combox region: Africa, Asia, Europe, Caribbean, North America, South America, Oceania
  • Year range (spinbox): from _ year - to _ year
  • Advanced (if implemented): AND / OR / NOT filter combination

Combined Filter (SQL WHRE)

Real-time refresh

  • Every filter change (search, country, region, años) = > instant query
  • QTableWidget refresses with new lines
  • Status bar shows the number of matching records

Search history

(If implemented) QComboBox keeps the last 20 search queries

Keyboard Shortcuts

ShortcutFunction
F5Reload table (refresh from DB)
Shift + Wheel (on the table)Change font size (zoom)
Ctrl + ASelect all lines (select all)
Ctrl + CCopy selected text (standard)
Ctrl + FFocus on search field (if implemented)
Ctrl + EEnrich selected (Tools menu)
Ctrl + DDuplicate detection (Tools menu)
Ctrl + IImport dialog (File menu)
Ctrl + OOpen DB dialog (File menu)
Ctrl + SSave DB (if changes are made)
Alt + F4Close the application (exit)

Troubleshooting

PROBLEM: "ModuleNotFoundError: No module named ''"

Cause: not installed

Solution:

PROBLEM: "Database locked"

Cause: DB is opened in another application or process

Solution:

  1. Close App and other processes with US _ Conflicts _ DB.sqlite3
  2. Delete files: US _ Conflicts _ DB.sqlite3-shm, US _ Conflicts _ DB.sqlite3-wal (temporary)
  3. Restart Application

PROBLEMS: "Enrichment does not work, nothing in the UI"

Cause: Web request error or no internet

Solution:

  1. Check Internet connection
  2. Find IP and try ping example.com
  3. Check out the logs / content (detailed error message)
  4. Check the firewall (DuckDuckGo, Wikipedia can be blocked)

PROBLEM: "Deduplication does not work"

Cause: RapidFuzz not installed

Solution:

PROBLEM: "UI did not change after setting (settings)"

Cause: JSON persistence only reads on start

Solution: Restart Application

FAQ (Frequently Asked Questions)

Q: How many records does the application take?

A: SQLite is tested up to 100k + records without a problem. The UI table keeps all entries in the memory (QTableWidget), so I recommend a limit of 10- 50k for continuous UI. If you need more, use the filters to display only the relevant subset.

Q: Can I export to Google Sheets?

A: Not the app itself, but you export to CSV / XLSX and then upload to Google Sheets manually. Possible future integration via Google Drive API.

Q: Are the data encrypted?

A: SQLite is unencrypted (plain text). If you want encryption, use SQLCipher or encode the whole file externally (bitlocker, veracrypt).

Q: What if I have the legacy DB from the old version?

A: The app automatically detects legacy formats and offers migration. See "Import" section above.

Q: What version of Python do I need?

A: Python 3.10 +. Verified at 3.10, 3.11, 3.12.

Q: Can I transfer the application to Linux / macOS?

A: Yes, is a cross-platform. Path files (flags, GFX) may require minor modifications for Windows-specific paths.

Q: How is the backup done?

A: Menu File > Save DB As → select a new name / location. You manually copy US _ Conflicts _ DB.sqlite3 to a safe place.

Q: What if I want to contribute?

A: GitHub Issues with bugreports, feel requests. Pull requests are accepted on condition that they are tested and documented.

Release 0.2.0.11 · state 19. 9. 2026

The current profile corresponds to the 0.2.0.11 branch. The database contains 593 active records and uses SQLite3 as the main structured data layer. Configuration and other persistent status are stored in JSON where it makes sense; older descriptions of saved settings and file us_conflicts.db They're not authoritative anymore.

The standard engine 1.2 works with configurable criteria separately from actual data. TIME / FIRE visualization allows you to monitor the overlap of multiple conflicts over time. The source registers contain 65 items and the application supports eight localities. Release validation for 0.2.0.11 ended 62 / 62 PASS.

The project consistently distinguishes the source record, derived evaluation and user note. For the events at issue, provenance is to be traceable and conflicting sources are not to be "watered down" into one unverifiable claim.