BG
SchoolPython

School Bell

An automatic school bell with a GUI for bell schedules and custom bell songs.

README

Училищен Звънец v2.5/БЕТА/

Училищен Звънец е автоматизирана система за училищен звънец, разработена на Python. Приложението предоставя удобен графичен потребителски интерфейс (GUI) за управление и възпроизвеждане на планирани аудио известия, съобразени с учебния график. То позволява лесно конфигуриране на часовете за звънене и използването на персонализирани звуци.

Функционалности

  • Графичен потребителски интерфейс (GUI): Интуитивен интерфейс, изграден с customtkinter, който осигурява лесно управление на приложението.
  • Персонализиран график: Дефинирайте часовете за звънене чрез файла schedule.csv. Приложението автоматично презарежда графика, ако засече външна промяна във файла.
  • Аудио възпроизвеждане: Възпроизвежда MP3, WAV или OGG файлове за сигнали на звънеца, използвайки pygame.mixer. Поддържа регулиране на силата на звука.
  • Ръчно звънене: Възможност за ръчно задействане на звънец по всяко време.
  • Редактор на график: Вграден GUI за лесно добавяне, редактиране и изтриване на записи в графика за звънене.
  • Визуализация на днешния график: Показва предстоящите звънци за текущия ден директно в интерфейса.
  • Цифров часовник: Вграден цифров часовник, който показва текущото време.
  • Гъвкава конфигурация: Основните настройки на приложението се управляват от config.py.
  • Многоезична поддръжка: Интерфейсът и съобщенията са на български език.

Инсталация

За да стартирате приложението, трябва да имате инсталиран Python (препоръчително 3.7+).

  1. Клонирайте хранилището:
    git clone https://github.com/Krumqnkata/School-Bell.git
    cd School-Bell
  2. Инсталирайте зависимости: Приложението разчита на няколко Python библиотеки. Инсталирайте ги с pip:
    pip install customtkinter pygame
    (Препоръчително е да използвате виртуална среда за инсталиране на зависимостите.)

Използване

  1. Подгответе звуковите файлове: Поставете вашите MP3, WAV или OGG звукови файлове (напр. begin.mp3, end.mp3) в директорията songs/ (дефинирана като RESOURCES_DIR в config.py).

  2. Конфигурирайте графика за звънене: Редактирайте файла schedule.csv. Всеки ред трябва да представлява едно събитие на звънеца. Примерeн формат на schedule.csv:

    Понеделник,08:00,begin
    Понеделник,08:45,end
    Вторник,08:00,begin
    # ... и така нататък
    • Ден от седмицата: Използвайте пълното име на деня на български (напр. "Понеделник", "Вторник").
    • Час: Формат ЧЧ:ММ (напр. 08:00).
    • Звуков файл: Името на звуковия файл без разширението (напр. "begin" за begin.mp3). Ако оставите празно, ще се възпроизведе случаен звук от директорията songs/.

    Можете също да използвате вградения "Редактор на график" от менюто на приложението за по-лесно управление.

  3. Стартирайте приложението:

    python app.py

    Това ще стартира главния прозорец на приложението. Натиснете бутона "СТАРТ", за да активирате автоматичното звънене.

Конфигурация

Файлът config.py съдържа основните настройки на приложението, които можете да промените:

  • APP_NAME: Името на приложението, показано в заглавната лента.
  • WIDTH, HEIGHT: Първоначалните размери на прозореца на приложението.
  • RESOURCES_DIR: Директорията, където се съхраняват звуковите файлове (по подразбиране songs).
  • SCHEDULE_FILE: Името на файла, съдържащ графика за звънене (по подразбиране schedule.csv).

Структура на проекта

.
├── about_dialog.py         # Диалогов прозорец "За мен"
├── app.py                  # Дефиниция на основния клас SchoolBellApp и GUI
├── audio_handler.py        # Функции за управление и възпроизвеждане на аудио
├── config.py               # Конфигурационни константи на приложението
├── main.py                 # Входна точка на приложението (стартира SchoolBellApp)
├── manual_handler.py       # Логика за ръчно задействане на звънец
├── schedule_editor.py      # Прозорец за редактиране на графика за звънене
├── schedule.csv            # Файл с графика за звънене (формат CSV)
├── scheduler.py            # Основна логика за планиране и задействане на събития
├── ui_components.py        # Помощни функции за изграждане на елементи на потребителския интерфейс
├── utils.py                # Общи помощни функции (напр. зареждане/запис на график, логване)
├── visual_notification.py  # Функции за визуални известия (ако има таким)
├── songs/                  # Директория за звукови файлове на звънеца
│   ├── begin.mp3           # Примерен звук за начало на час
│   └── end.mp3             # Примерен звук за край на час
└── ... други системни файлове (.git, .idea, __pycache__, dist)

Лиценз

Този проект е лицензиран съгласно условията, посочени във файла LICENSE.