Skip to content
crypiehef edited this page Oct 10, 2025 · 3 revisions

Net Control System for Amateur Radio Operations

Overview

The Net Control System is a modern, web-based application designed specifically for Amateur Radio Net Control Operators to manage net operations, track check-ins, and generate comprehensive reports. Built with security-first principles, it provides enterprise-grade functionality for radio clubs and emergency communications teams.

Table of Contents


Quick Start Guide

Prerequisites

  • Docker and Docker Compose
  • Git
  • Modern web browser
  • Ham Radio License (for QRZ.com integration)

5-Minute Setup

git clone https://github.com/crypiehef/NetControlAPP.git
cd NetControlAPP
docker-compose up -d

Access the application:

Default Admin Access:

  • First registered user automatically becomes admin
  • Subsequent users require admin approval

Features

🎙️ Net Control Operations

  • Real-time Net Management

    • Start and manage active net operations
    • Real-time check-in tracking and display
    • Automatic callsign lookup via QRZ.com API
    • Complete net operations with automatic archiving
  • Advanced Check-in System

    • Callsign auto-uppercase and validation
    • Name auto-population from QRZ database
    • License class display and tracking
    • Location field (city, state)
    • "Staying for Comments" tracking
    • Individual notes for each check-in
    • Real-time check-in editing and management

📅 Scheduling & Planning

  • Future Net Scheduling

    • Schedule nets days, weeks, or months in advance
    • Flexible recurrence patterns:
      • Daily (365 days ahead)
      • Weekly (52 weeks ahead)
      • Bi-weekly (26 occurrences)
      • Monthly (12 months ahead)
    • One-click net activation from Dashboard or Schedule
  • Calendar Management

    • Visual calendar interface with color-coded status
    • Multiple nets per day support
    • Operation status tracking (Active, Scheduled, Completed)
    • Delete and edit capabilities for past operations

📊 Advanced Reporting

  • Comprehensive PDF Reports

    • Multi-filter system (Operator, Date Range, All Operators)
    • Professional formatting with custom logos
    • Complete check-in data with comments status
    • Summary statistics and analytics
    • Operation notes and check-in notes included
  • Report Features

    • Filter by specific operators or all operators
    • Date range filtering (start date, end date, or both)
    • Clear filters functionality
    • Automatic PDF generation and download

👨‍💼 Admin Panel

  • User Management

    • Add/remove net operators
    • Edit user information (username, callsign, email)
    • Reset user passwords
    • Role management (Operator/Admin)
    • First user auto-admin assignment
  • System Administration

    • Advanced reporting with comprehensive filters
    • System settings management
    • Logo upload and management
    • QRZ.com API configuration

⚙️ Settings & Customization

  • Theme Management

    • Light/Dark mode toggle
    • Persistent theme selection (localStorage)
    • Responsive design for all screen sizes
  • Branding & Integration

    • Custom logo upload (JPEG, PNG, GIF, SVG, WebP)
    • Logo appears in navbar and PDF exports
    • QRZ.com API integration for callsign lookups
    • Professional PDF generation with branding

🔐 Security Features

  • Enterprise-Grade Security
    • Rate limiting on all endpoints
    • Input validation and sanitization
    • Database injection prevention
    • JWT authentication with 30-day expiration
    • Role-based access control (RBAC)

Installation

Docker Installation (Recommended)

  1. Clone the Repository

    git clone https://github.com/crypiehef/NetControlAPP.git
    cd NetControlAPP
  2. Start the Application

    docker-compose up -d
  3. Verify Installation

    docker ps
    # Should show three containers: frontend, backend, mongodb
  4. Access the Application

    • Open your browser to http://localhost
    • Register your first account (automatically becomes admin)

Manual Installation

  1. Backend Setup

    cd backend
    npm install
    npm start
  2. Frontend Setup

    cd frontend
    npm install
    npm start
  3. MongoDB Setup

    • Install MongoDB locally
    • Create database: netcontrol
    • Update connection string in backend configuration

Updating the Application

cd NetControlAPP
docker-compose down
git pull origin main
docker-compose up -d --build

Configuration

QRZ.com API Setup

  1. Navigate to Settings page
  2. Enter QRZ.com credentials:
    • Format: username:password
    • For QRZ subscribers: Username only
    • For free accounts: Username and password

Logo Upload

  1. Go to Settings → Logo Upload
  2. Supported formats: JPEG, PNG, GIF, SVG, WebP
  3. Logo will appear in navbar and PDF reports

User Roles

  • Admin: Full system access, user management, advanced reporting
  • Operator: Net control operations, check-ins, basic reporting

Usage Guide

Starting a Net Operation

  1. From Dashboard:

    • Click "Start New Net Operation"
    • Enter net details (name, description)
    • Click "Start Net"
  2. From Schedule:

    • Find scheduled net on calendar
    • Click "▶️ Start Net" button
    • Automatically redirected to Net Control page

Managing Check-ins

  1. Adding Check-ins:

    • Enter callsign (auto-triggers QRZ lookup)
    • Verify auto-populated information
    • Check "Staying for Comments" if applicable
    • Add optional notes
    • Click "Add Check-in"
  2. Editing Check-ins:

    • Click ✏️ button next to any check-in
    • Modify notes in real-time
    • Changes saved automatically

Generating Reports

  1. Access Admin Panel (Admin users only)
  2. Advanced Reporting Section:
    • Select operator filter (All Operators or specific operator)
    • Set date range (optional)
    • Click "📄 Generate PDF Report"
  3. Report includes:
    • Summary statistics
    • Complete operation details
    • All check-in information
    • Custom branding

API Documentation

Authentication Endpoints

  • POST /api/auth/register - User registration
  • POST /api/auth/login - User login
  • GET /api/auth/me - Get current user

Net Operations Endpoints

  • POST /api/net-operations - Create new operation
  • POST /api/net-operations/schedule - Schedule future operations
  • GET /api/net-operations - Get operations (with filters)
  • PUT /api/net-operations/:id - Update operation
  • PUT /api/net-operations/:id/start - Start scheduled net
  • PUT /api/net-operations/:id/complete - Complete operation
  • POST /api/net-operations/:id/checkins - Add check-in
  • GET /api/net-operations/:id/pdf - Export to PDF

Admin Endpoints

  • GET /api/users - Get all users (Admin only)
  • POST /api/users - Create user (Admin only)
  • PUT /api/users/:id - Update user (Admin only)
  • POST /api/users/reports/generate - Generate reports (Admin only)

Security

Security Features

  • Rate Limiting: Prevents brute force attacks
  • Input Validation: All user inputs sanitized and validated
  • Database Security: Parameterized queries prevent injection
  • Authentication: JWT tokens with secure expiration
  • Authorization: Role-based access control

Security Status

  • ✅ All 69+ GitHub CodeQL vulnerabilities resolved
  • ✅ Zero database injection vulnerabilities
  • ✅ Enterprise-grade security implementation
  • ✅ Production-ready security standards

Security Updates

The application includes automatic security monitoring and regular updates to address any newly discovered vulnerabilities.


Roadmap & Future Features

🔄 Automatic Internal App Patching Mechanism

Planned for v2.2.0

  • Automated Security Updates

    • Automatic detection of security vulnerabilities
    • Background patching without user intervention
    • Zero-downtime updates for security fixes
    • Rollback capability for failed updates
  • Smart Update System

    • Dependency vulnerability scanning
    • Automatic package updates for security patches
    • Configuration preservation during updates
    • Update notification system
  • Implementation Details

    • Docker-based update mechanism
    • Health checks before/after updates
    • Backup and restore functionality
    • Update scheduling and monitoring

🖥️ Server Appliance for Multi-Operator Sync

Planned for v3.0.0

  • Dedicated Server Appliance

    • Pre-configured hardware/software solution
    • Optimized for amateur radio operations
    • Local network deployment capability
    • Redundant power and network connectivity
  • Multi-Operator Synchronization

    • Real-time data sync between multiple net control operators
    • Shared check-in database across operators
    • Conflict resolution for simultaneous operations
    • Operator role management and permissions
  • Advanced Features

    • Offline operation capability
    • Automatic backup and disaster recovery
    • Network monitoring and health checks
    • Integration with existing radio infrastructure
  • Deployment Options

    • Standalone appliance for single locations
    • Distributed deployment for multiple sites
    • Cloud integration for hybrid deployments
    • Emergency communications integration

📱 Mobile Application

Planned for v2.5.0

  • Mobile Net Control
    • Native iOS/Android applications
    • Offline capability for emergency situations
    • Push notifications for net alerts
    • GPS integration for location services

🌐 Web-based Emergency Communications Integration

Planned for v3.5.0

  • ARES/RACES Integration
    • Integration with emergency communications networks
    • Multi-agency coordination features
    • Incident management capabilities
    • Emergency contact database integration

📊 Advanced Analytics & Reporting

Planned for v2.3.0

  • Enhanced Reporting

    • Custom report templates
    • Scheduled report generation
    • Email delivery of reports
    • Statistical analysis and trends
  • Performance Monitoring

    • Net operation metrics
    • Operator performance tracking
    • System usage analytics
    • Capacity planning tools

🔗 API Enhancements

Planned for v2.4.0

  • RESTful API Improvements
    • GraphQL API for advanced queries
    • Webhook support for external integrations
    • API rate limiting and authentication
    • Third-party application support

Contributing

We welcome contributions from the amateur radio community!

How to Contribute

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Add tests for new functionality
  5. Submit a pull request

Development Guidelines

  • Follow security best practices
  • Include comprehensive documentation
  • Test all changes thoroughly
  • Maintain backward compatibility

Bug Reports

  • Use GitHub Issues for bug reports
  • Include detailed reproduction steps
  • Provide system information
  • Include relevant logs

Support

Community Support

  • GitHub Issues: For bug reports and feature requests
  • GitHub Discussions: For community questions and support
  • Email: Contact the maintainers for urgent issues

Documentation

  • Wiki: Comprehensive documentation and guides
  • API Docs: Detailed API documentation
  • Video Tutorials: Step-by-step usage guides

Emergency Support

For emergency communications or critical issues:

  • Use GitHub Issues with "emergency" label
  • Include contact information for urgent matters
  • Describe the impact on net operations

License

This project is licensed under the MIT License - see the LICENSE file for details.

Acknowledgments

  • York County Amateur Radio Society - Sponsoring organization
  • QRZ.com - Callsign lookup API
  • Amateur Radio Community - Feedback and testing
  • Contributors - Code contributions and improvements

Version History

v2.1.6 - Perfect Security (Current)

  • ✅ All 69+ GitHub CodeQL vulnerabilities resolved
  • ✅ Perfect database security with zero vulnerabilities
  • ✅ Enterprise-grade production-ready security

v2.1.5 - Absolute Security

  • ✅ Absolute database security achieved
  • ✅ Secure query construction implemented

v2.1.4 - Ultimate Security

  • ✅ All database injection vulnerabilities eliminated
  • ✅ Parameterized queries with validated ObjectId instances

v2.1.3 - Final Database Security

  • ✅ Final 2 database query injection issues resolved
  • ✅ ObjectId validation and sanitization

v2.1.2 - Enhanced Security

  • ✅ All regex vulnerabilities eliminated
  • ✅ Complete rate limiting coverage

v2.1.1 - Security Updates

  • ✅ Fixed all multer vulnerabilities
  • ✅ Enhanced input validation

v2.1 - Advanced Reporting

  • ✅ Advanced reporting system with PDF filters
  • ✅ Edit operation and check-in notes
  • ✅ Staying for Comments tracking
  • ✅ Schedule future nets with recurrence

v1.0 - Initial Release

  • ✅ Core net control functionality
  • ✅ Basic reporting and user management
  • ✅ QRZ integration and theme support

73 de K4HEF! 📻

Built with ❤️ for the Amateur Radio Community

Clone this wiki locally