No description
  • Python 99.6%
  • Makefile 0.4%
Find a file
2026-07-28 12:46:17 +03:00
docs Small name change and inline comments 2026-05-05 19:46:21 +03:00
egesoll onboarding update 2026-07-28 12:40:13 +03:00
.gitignore small update 2026-06-11 22:09:24 +03:00
.python-version small update 2026-06-11 22:09:24 +03:00
LICENSE add procedural instruction + txt support 2026-07-28 12:23:46 +03:00
Makefile clarify building from source 2026-07-28 12:44:40 +03:00
pyproject.toml Transition to OOP finished 2026-07-26 21:20:22 +03:00
README.md clarify building from source 2026-07-28 12:44:40 +03:00
requirements.txt QoL fixes 2026-03-23 08:09:17 +03:00
uv.lock Transition to OOP finished 2026-07-26 21:20:22 +03:00

EGEsoll

ЕГЭсоль

Сайт для публикации решений ЕГЭ. или же замудренный файловый сервер

Использование ИИ

Дисклеймер:

  • Во время написания проекта были использованы большие языковые модели (LLM).
  • Код от LLM был проверен человеком.
  • Ответственность за использование LLM лежит на использующих их соавторах.

Где использовались LLM:

  • FRONT_PAGE_HTML из файла templates.py был написан Deepseek`ом, а позже вручную изменён.
  • Для дискуссий по поводу качества кода и как его можно улучшить.
  • Для поиска оптимального решения по внедрению редактора Python в стандартный шаблон.

В проекте разрешается использование больших языковых моделей (LLM) при условии проверки кода человеком, принятии на себя ответственности и явном указании, где они использовались.

Основные возможности

  • Отсутствие баз данных
  • Решения, объяснения можно писать в удобном Markdown или HTML!
  • Легкий и быстрый aiohttp сервер
  • Кэширование страниц для снижения нагрузки на процессор
  • Возможность полностью поменять внешний вид
  • Гибкая конфигурация
  • Автоматический каталог
  • Публикация картинок
  • Интеграция с гит репозиторием (если сервер запущен на GNU/Linux)

Как использовать?

Установка и первоначальная настройка

Для запуска сервера лучше всего использовать компьютер на базе ОС GNU/Linux. Однако запустить сервер возможно на любой платформе, где есть интерпретатор Python3.11 Приведённая инструкция является общей для всех платформ.

  1. Скачать доступную стабильную версию и Python3.11
  2. Установить egesoll командой python3 -m pip install egesoll-*.whl
  3. После установки будет доступна команда egesoll-serve. Вызовем её.
  4. В текущей рабочей директории появится файл config.toml и папка data.
  5. Ознакомтесь с параметрами по умолчанию в config.toml
  6. Вы успешно запустили сервер.

Повседневное использование

  • Сервер индексирует указанную в config.toml папку по пути root_path.
  • Сервер может работать с любым количеством вложенных папок.

Сервер принимает 6 видов расширений:

  • *.md - Язык разметки Markdown
  • *.txt - Текстовые файлы (обрабатываются как .md)
  • *.html - Язык гипертекстовой разметки
  • *.png - Формат для картинок
  • *.jpg, .jpeg - Формат для картинок

Сервер принимает 3 вида файлов, они должны иметь определённое название:

  • Файл для публикации, содержащий задачу, решение и объяснение: puzzle (можно сменить название в настройках).
    • Файл читается сверху вниз, первым идёт задача, потом решение, потом объяснение.
    • Блоки должны быть разделены тремя символами собачки: @@@ .
  • Вложенные файлы: embed (может быть несколько штук и любого расширения)
  • Вложенные картинки (могут быть с любым названием, главное с поддерживаемым расширением.)

Для папки, содержащей хотя бы один из приведённых сверху файлов, создаётся веб-страница. К ней можно получить доступ в браузере по относительному к root_path пути. Например, localhost:8100/data/infa/n1 - покажет веб-страницу для пути data/infa/n1 (по умолчанию)

Автоматический каталог создаётся для тех папок, в которых присутствует файл .catalog-this. Например, по пути localhost:8100/data/infa пользователь увидит каталог всех вложенных в data/infa папок.

За примером повседневной работы можно обратиться к этому репозиторию.

Конфигурация/Настройка

  • Для изменений параметров сервера используйте файл config.toml
  • Для изменения шаблонов перейдите по пути root_path из config_toml. Там вы обнаружите 3 html файла, они и есть шаблоны, используемые для создания страниц.

ВНИМАНИЕ! Если вы поменяли шаблон и не заметили изменений - не пугайтесь! Сервер кеширует страницы. Когда кеш будет обновлен, ваши изменения будут использованы. Вы можете ускорить этот процесс, удалив папку .cache (будет произведена переиндексация всей базы).

Локальная сборка из исходников

Python кросс-платформенный язык, но если у вас есть острая необходимость сборки статичного исполняемого файла, то:

  1. Клонируйте репозиторий.
  2. Запустите make build в терминале.

Планы на будущее

  • Улучшение внешнего вида сайта
  • Улучшение документации
  • Распутывание кода :)
  • Настройка через бразуер
  • MOTD для администраторов инстанций

Как помочь в разработке?

Помочь разработке может каждый! Вы можете ознакомиться с подробной документацией, как работает код в папке docs/ Если вы чувствуете себя неуверенно при использовании гита, то ознакомьтесь с кратким курсом.

  1. Определитесь с проблемой, которую вы хотите решить, или с новой функцией.
  2. Создайте ветку в этом репозитории по типу feature/new-feature или fix/bug. git checkout -b fix/bug
  3. Клонируйте репозиторий. git pull https://codeberg.org/dixevskiy/egesoll.git
  4. Внесите изменения.
  5. Cоздайте коммит git add . | git commit -m "fixed annoying bug"
  6. Создайте пул реквест.

После этого пул реквест будет проверен основными мейнтейнерами и добавлен в основную ветку.

Благодарности

Благодарю IdealniyAriets за создание и ведение первоначального банка решений. Хоть мы и обособились, твой репозиторий вдохновил меня.

Благодарю анонимного спонсора, который ежемесячно проплачивал мне VPN.