When you switch sections (e.g., from Exam Mode to Practice or Study), the exam timer continues running in the background. This behavior mirrors the official FCC exam.
This is a Streamlit-based web application designed to help users study, practice, and simulate the FCC Technician exam (2022–2026 question pool). The app supports images in questions, dynamic practice settings, and pass/fail thresholds for the exam simulation.
- Study Mode: Review all questions from the question pool with correct answers visible.
- Practice Mode: Flexible number of questions, weak area reports.
- Exam Mode: Timed official-like 35-question exam simulation.
Ensure you have Python 3.11.14 installed on your system. You can check your Python version by running:
python --versionIf you don't have Python installed, visit: Python Downloads
To run the FCC Technician Exam Simulator on your machine:
-
Clone this repository:
git clone https://github.com/yourname/HamTest.git cd HamTest -
Create a virtual environment (recommended):
python -m venv env source env/bin/activate # On Windows, use `env\Scripts\activate`
-
Install the required dependencies:
pip install -r requirements.txt
-
Run the app:
streamlit run ham_test.py
-
The interface will open in your browser. Enjoy the simulator!
HamTest/
├── ham_test.py # Main Streamlit app file
├── Elemento-2-2022-2026.json # Question pool (Spanish, under CC-BY 4.0)
├── images/ # Images for the questions
├── LICENSE # Licensing of the repository
├── README.md # Documentation for the project
└── requirements.txt # Python dependencies for the application
└── .gitignore # Git ignore rules
Contributions are welcome! Please adhere to the following guidelines:
- Ensure all questions added or changed follow the JSON format strictly.
- Add new images to the
imagesfolder and reference them using relative paths. - Test your contributions in all modes: Study, Practice, and Exam.
To contribute:
- Fork the repository and clone it locally.
- Create a new branch (
git checkout -b feature-name). - Commit and push your changes.
- Open a pull request for review.
The exam timer continues counting if sections are switched, mimicking the official exam. To pause the timer when switching sections, proper state management logic is needed to prevent freezes.
The FCC Technician question pool (Spanish translation) and JSON file are distributed under the Creative Commons CC-BY 4.0 License:
View License.
Original English content is in the public domain as provided by the FCC.
Try out the app here: https://ham-test.streamlit.app/
- Unified behavior between Study and Practice Modes.
- Improved filtering and dynamic selection across all modes.
- Enhanced clarity in the user interface.