Monday, September 15, 2025

Software – ScannerFreakDB

Project Specification and Outline for ScannerFreakDB – By VK7AAL

1. Overview and Purpose

ScannerFreakDB is a Python-based database application built to log, organize, and manage radio scanning information. Most off-the-shelf logging tools are either too generic or too rigid, making it difficult for hobbyists and professionals to track detailed frequency data. ScannerFreakDB is designed to fix this by providing a customizable and easy-to-use solution for radio enthusiasts—whether focused on ultralight DXing, UHF monitoring, or general scanning.

With ScannerFreakDB, users can quickly store, search, and categorize frequency data, making it a long-term, flexible tool for anyone serious about scanning.


2. Objectives

  • Customizable Fields – Include frequency-specific details while supporting further expansion.

  • User-Friendly Interface – Simple, intuitive entry and search options for all users. Android compatiable.

  • Efficient Data Retrieval – Fast, flexible search and filtering functions.

  • Long-Term Usability – Scalable design with no unnecessary complexity.


3. Scope

ScannerFreakDB covers:

  • A lightweight, local database for managing radio frequency logs.

  • Input fields designed specifically for monitoring and scanning.

  • A simple GUI for data entry, search, and filtering (time/resources permitting).

  • Export functionality for backups, analysis, or sharing.


4. Key Features and Functional Requirements

1. Data Entry Fields

  • Covers all required information, such as:
    Frequency
    Name
    Mode (drop down)
    CTCSS/DCS,
    Group (drop down)
    Date,
    Notes
    Programmed (drop down)

2. User Interface

  • Search & Filter – By frequency, date, user, or log type.

  • Quick Entry & Edit – Fast adding and updating of records.

  • Sorting – By frequency, date, or user for streamlined review.

3. Data Management

  • Local Database – Lightweight SQLite (or equivalent) for portability and speed. This syncs between Windows and Android versions automatically.

  • Export Options – CSV/JSON for archiving, analysis, or sharing.

  • Data Integrity – Validation to reduce errors and duplicates


4. Database Schema

id
Type: INTEGER PRIMARY KEY AUTOINCREMENT
Use: Unique identifier for each record in the database.
Notes: Automatically increments with every new entry.

frequency
Type: REAL
Use: Stores the radio frequency in MHz (e.g., 145.025, 477.425).
Notes: The core field for logging what frequency was observed.

name
Type: TEXT
Use: The name or identifier associated with the frequency.
Examples: Station name, amateur radio callsign, service type (“Police Dispatch”, “Airband”).

mode
Type: TEXT
Use: The modulation mode used on this frequency.
Examples: FM, NFM, AM, SSB.

ctcss_dcs
Type: REAL
Use: Stores sub-audible tone information for squelch access.
Examples: CTCSS tone in Hz (e.g., 123.0), DCS code (sometimes represented as a number like 023).

group_name
Type: TEXT
Use: Logical grouping or category for the frequency.
Examples: Airband, Amateur, Emergency Services, Business.

date
Type: TEXT
Use: Date when the entry was logged or last updated.
Format: Typically stored as a string (e.g., 2025-09-15).

notes
Type: TEXT
Use: Free-text field for extra details.
Examples: Signal strength, language, call signs heard, activity type.

programmed
Type: TEXT
Use: Indicates whether this frequency has been programmed into a scanner or radio.
Examples: Yes, No, Pending.

-----------------------------------------------------------------------------------
Updates:
15/09/2025
- Added button to access web site
- Added database backup on load

16/09/2025
- Added button to load ACMA website search.
- Added filter buttons.
Show programmed only (Shows where programmed = yes).
Show Recent Unprogrammed (Shows frequencies logged in past 30 days where programmed = no, useful for knowing what frequencies need to be programmed in).
-----------------------------------------------------------------------------------


Data Entry Screen


Records Screen



No comments:

Post a Comment