Version: 0.1.0 (Phase 1 MVP)
Status: Development - Phase 1
Python: 3.10+ required
GUI Framework: PySide6 (Qt for Python)
RadioForms is a standalone, offline-first desktop application for creating, managing, exporting, and archiving FEMA Incident Command System (ICS) forms. Built specifically for administrative staff and radio operators in emergency management.
- ICS-213 General Message form creation and editing
- Basic save/load functionality with SQLite database
- JSON export for data portability
- Simple, intuitive user interface
- Python 3.10 or higher
- Operating System: Windows, macOS, or Linux
- Minimum screen resolution: 1280x720
-
Clone or download this repository
-
Create virtual environment (recommended):
python -m venv venv # Activate virtual environment # Linux/Mac: source venv/bin/activate # Windows: venv\Scripts\activate
-
Install dependencies:
pip install -e .[dev]
-
Run the application:
python -m src.main
-
Install development dependencies:
pip install -e .[dev]
-
Set up pre-commit hooks:
pre-commit install
-
Run tests:
pytest
-
Run code quality checks:
black src tests ruff check src tests mypy src
radioforms/
├── src/ # Source code
│ ├── app/ # Application core
│ ├── ui/ # User interface components
│ ├── models/ # Data models
│ ├── database/ # Database layer
│ └── main.py # Application entry point
├── tests/ # Test suite
│ ├── unit/ # Unit tests
│ ├── integration/ # Integration tests
│ └── ui/ # UI tests
├── docs/ # Documentation
├── pyproject.toml # Project configuration
├── README.md # This file
└── CLAUDE.md # AI assistant guide
- Start the application
- The main window displays an empty ICS-213 form
- Fill in the required fields:
- To: Message recipient
- From: Message sender
- Subject: Message subject
- Message: Message content
- Date: Message date
- Time: Message time
- Use File → Save to save the form
- Use File → Open to browse for saved forms
- Select a
.jsonfile to load the form data - Edit as needed and save changes
- Use File → Export to save form as JSON
- Choose location and filename
- JSON files can be shared or archived
- SQLite database for local storage
- WAL mode for improved reliability
- Automatic initialization on first run
- Location: Same directory as application
- JSON for import/export
- ISO 8601 date/time formatting
- UTF-8 text encoding
- Schema validation for data integrity
This project follows strict development principles:
- Simple first: Start with basic functionality
- Incremental development: One feature at a time
- Test-driven: >95% code coverage required
- User-validated: Features driven by real user needs
See CLAUDE.md for detailed development guidelines.
# Run all tests
pytest
# Run with coverage
pytest --cov=src --cov-report=html
# Run specific test file
pytest tests/unit/test_models.py
# Run UI tests
pytest tests/ui/- Unit tests: >95% coverage
- Integration tests: Complete workflows
- UI tests: User interactions
- Performance tests: Speed benchmarks
Application won't start
- Check Python version:
python --version(must be 3.10+) - Check dependencies:
pip list - Check error messages in console
Database errors
- Database file may be corrupted
- Delete database file to reset (data will be lost)
- Check file permissions in application directory
Performance issues
- Check available disk space
- Close other applications to free memory
- Restart application if sluggish
- Check this README for common solutions
- Review error messages carefully
- Check logs in the application directory
- Report issues with detailed error information
This is Phase 1 of a planned 6-phase development:
- Phase 2: Add ICS-214 form and multi-form management
- Phase 3: User-requested enhancements (dark theme, search, etc.)
- Phase 4: Additional ICS forms based on user demand
- Phase 5: Advanced features (ICS-DES encoding, plugins)
- Phase 6: Enterprise-grade deployment and security
This project follows the principles in CLAUDE.md:
- Simple solutions over complex ones
- User validation before feature addition
- Comprehensive testing for all changes
- Clear documentation for all code
MIT License - See LICENSE file for details.
For support or questions about RadioForms, please refer to the project documentation or submit an issue through the appropriate channels.
RadioForms - Simplifying incident documentation for emergency responders.