-
Notifications
You must be signed in to change notification settings - Fork 0
Home
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.
- Quick Start Guide
- Features
- Installation
- Configuration
- Usage Guide
- API Documentation
- Security
- Roadmap & Future Features
- Contributing
- Support
- Docker and Docker Compose
- Git
- Modern web browser
- Ham Radio License (for QRZ.com integration)
git clone https://github.com/crypiehef/NetControlAPP.git
cd NetControlAPP
docker-compose up -dAccess the application:
- Web Interface: http://localhost
- Admin Panel: http://localhost (after login with admin privileges)
Default Admin Access:
- First registered user automatically becomes admin
- Subsequent users require admin approval
-
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
-
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
-
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
-
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
-
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
-
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)
-
Clone the Repository
git clone https://github.com/crypiehef/NetControlAPP.git cd NetControlAPP -
Start the Application
docker-compose up -d
-
Verify Installation
docker ps # Should show three containers: frontend, backend, mongodb -
Access the Application
- Open your browser to http://localhost
- Register your first account (automatically becomes admin)
-
Backend Setup
cd backend npm install npm start -
Frontend Setup
cd frontend npm install npm start -
MongoDB Setup
- Install MongoDB locally
- Create database:
netcontrol - Update connection string in backend configuration
cd NetControlAPP
docker-compose down
git pull origin main
docker-compose up -d --build- Navigate to Settings page
- Enter QRZ.com credentials:
-
Format:
username:password - For QRZ subscribers: Username only
- For free accounts: Username and password
-
Format:
- Go to Settings → Logo Upload
- Supported formats: JPEG, PNG, GIF, SVG, WebP
- Logo will appear in navbar and PDF reports
- Admin: Full system access, user management, advanced reporting
- Operator: Net control operations, check-ins, basic reporting
-
From Dashboard:
- Click "Start New Net Operation"
- Enter net details (name, description)
- Click "Start Net"
-
From Schedule:
- Find scheduled net on calendar
- Click "
▶️ Start Net" button - Automatically redirected to Net Control page
-
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"
-
Editing Check-ins:
- Click ✏️ button next to any check-in
- Modify notes in real-time
- Changes saved automatically
- Access Admin Panel (Admin users only)
-
Advanced Reporting Section:
- Select operator filter (All Operators or specific operator)
- Set date range (optional)
- Click "📄 Generate PDF Report"
-
Report includes:
- Summary statistics
- Complete operation details
- All check-in information
- Custom branding
-
POST /api/auth/register- User registration -
POST /api/auth/login- User login -
GET /api/auth/me- Get current user
-
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
-
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)
- 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
- ✅ All 69+ GitHub CodeQL vulnerabilities resolved
- ✅ Zero database injection vulnerabilities
- ✅ Enterprise-grade security implementation
- ✅ Production-ready security standards
The application includes automatic security monitoring and regular updates to address any newly discovered vulnerabilities.
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
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
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
Planned for v3.5.0
-
ARES/RACES Integration
- Integration with emergency communications networks
- Multi-agency coordination features
- Incident management capabilities
- Emergency contact database integration
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
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
We welcome contributions from the amateur radio community!
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests for new functionality
- Submit a pull request
- Follow security best practices
- Include comprehensive documentation
- Test all changes thoroughly
- Maintain backward compatibility
- Use GitHub Issues for bug reports
- Include detailed reproduction steps
- Provide system information
- Include relevant logs
- GitHub Issues: For bug reports and feature requests
- GitHub Discussions: For community questions and support
- Email: Contact the maintainers for urgent issues
- Wiki: Comprehensive documentation and guides
- API Docs: Detailed API documentation
- Video Tutorials: Step-by-step usage guides
For emergency communications or critical issues:
- Use GitHub Issues with "emergency" label
- Include contact information for urgent matters
- Describe the impact on net operations
This project is licensed under the MIT License - see the LICENSE file for details.
- York County Amateur Radio Society - Sponsoring organization
- QRZ.com - Callsign lookup API
- Amateur Radio Community - Feedback and testing
- Contributors - Code contributions and improvements
- ✅ All 69+ GitHub CodeQL vulnerabilities resolved
- ✅ Perfect database security with zero vulnerabilities
- ✅ Enterprise-grade production-ready security
- ✅ Absolute database security achieved
- ✅ Secure query construction implemented
- ✅ All database injection vulnerabilities eliminated
- ✅ Parameterized queries with validated ObjectId instances
- ✅ Final 2 database query injection issues resolved
- ✅ ObjectId validation and sanitization
- ✅ All regex vulnerabilities eliminated
- ✅ Complete rate limiting coverage
- ✅ Fixed all multer vulnerabilities
- ✅ Enhanced input validation
- ✅ Advanced reporting system with PDF filters
- ✅ Edit operation and check-in notes
- ✅ Staying for Comments tracking
- ✅ Schedule future nets with recurrence
- ✅ Core net control functionality
- ✅ Basic reporting and user management
- ✅ QRZ integration and theme support
73 de K4HEF! 📻
Built with ❤️ for the Amateur Radio Community