RHEL Learning Script

This project provides a script to manage RHEL learning sessions, including a timer, random questions, and XP tracking.

Directory Structure

rhel_learning
├── src
│   ├── main.py
│   ├── assets
│   │   ├── xp.txt
│   │   ├── level.txt
│   │   ├── session.log
│   │   ├── questions.txt
│   │   └── total_time.txt

# RHEL Learning Quiz App

This is a Python-based quiz application for learning Red Hat Enterprise Linux (RHEL) concepts, including scenario-based RHCSA questions. The app tracks your XP, level, and total study time, and provides explanations for each answer to help you learn more effectively.

## Features

- Scenario-based RHCSA questions (imported from `assets/questions.txt`)
- XP and level tracking (XP: +10 for correct, -5 for incorrect; level up every 100 XP)
- Total study time tracking
- Explanations shown after each answer (7th field in questions)
- SQLite database for persistent stats, session logs, and questions
- GUI built with Tkinter
- Automatic migration from legacy text files to SQLite
- All questions shown in each session, in random order

## Getting Started

1. **Install dependencies:**
   ```sh
   pip install -r requirements.txt
  1. Add your questions:

    • Edit assets/questions.txt with your questions in the format:
      Category|Question|Answer1|Answer2|Answer3|CorrectIndex|Explanation
      
      • CorrectIndex is 1-based (1, 2, or 3)
      • Explanation is a short explanation shown after each answer
  2. Run the app:

    python main.py
    

How It Works

  • On first run, the app migrates your XP, level, and total time from text files to SQLite (if present).
  • Questions are imported from assets/questions.txt into the SQLite database, including explanations.
  • All questions are shuffled and presented in a random order each session.
  • After each answer, an explanation is shown to help you learn.
  • XP and level are updated based on your answers (correct: +10 XP, incorrect: -5 XP, level up every 100 XP).
  • Your total study time and session logs are tracked in the database.
  • At the end of the session, a summary of your score by category is shown.

File Structure

  • main.py - Main application logic
  • assets/questions.txt - Source of all questions (with explanations)
  • assets/questions_shuffled.txt - Shuffled questions for each session
  • rhel_learning.db - SQLite database for stats, session logs, and questions
  • requirements.txt - Python dependencies

Question Format

Each line in assets/questions.txt should be:

Category|Question|Answer1|Answer2|Answer3|CorrectIndex|Explanation
  • Category: e.g., "User Management", "Networking", etc.
  • Question: The question text
  • Answer1, Answer2, Answer3: Multiple choice answers
  • CorrectIndex: 1-based index of the correct answer (1, 2, or 3)
  • Explanation: Shown after each answer for learning

Troubleshooting

  • Make sure your assets/questions.txt includes explanations as the 7th field for each question.
  • The app requires Python 3 and Tkinter.
  • If you encounter errors, check that your questions file is formatted correctly and all dependencies are installed.
  • The app will automatically migrate your old XP, level, and time files to SQLite on first run.

License

MIT License

Description
No description provided
Readme 47 MiB
Languages
Python 98.3%
C 1%
Cython 0.3%
C++ 0.2%