npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

dnevnik-praktiki-pgtu

v1.0.4

Published

ИИ-помощник для оформления «Дневника практики» ПГТУ: из свободного описания студента генерирует готовый .docx по шаблону вуза. Работает с Claude, ChatGPT, Gemini, DeepSeek.

Readme

📔 Дневник практики — ИИ-помощник для оформления

Наговори данные в свободной форме — получи готовый «Дневник практики» ПГТУ в .docx. Работает с любым популярным ИИ.

ИИ npm version Publish GitHub license Формат Вуз python-docx


Что это?

Помощник, который оформляет официальный «Дневник практики» Поволжского государственного технологического университета (ПГТУ).

Студент просто рассказывает о себе и месте практики — голосом или текстом, в свободной форме. ИИ понимает, что речь о дневнике практики, вытаскивает из рассказа нужные поля, уточняет недостающее коротким вопросом и выдаёт заполненный .docx строго по шаблону вуза.

Под капотом — обычный Python-скрипт и шаблон .docx, поэтому проект не привязан к одному ассистенту и работает с любым ИИ, который умеет выполнять код.

Зачем

Заполнять дневник руками — нудно: одни и те же ФИО, кафедра, сроки, план из 8 пунктов с датами. Помощник делает это за секунды и не ошибается в формате.

Поддержка ИИ

| Ассистент | Как использовать | |-----------|------------------| | Claude (Cowork / Claude Code) | Установить как skill (skills/dnevnik-praktiki) — ИИ сам спросит данные и пришлёт документ | | ChatGPT (с Code Interpreter / Data Analysis) | Загрузить fill_diary.py и template.docx, вставить промпт ниже | | Gemini (с выполнением кода) | То же: загрузить файлы скрипта и шаблона, вставить промпт | | DeepSeek и другие с запуском кода | То же — загрузить файлы и дать промпт | | GigaChat (через API) | Установить зависимости, задать ключи в .env, вызвать providers/gigachat_client.py | | Яндекс GPT (через API) | Установить зависимости, задать ключи в .env, вызвать providers/yandex_gpt_client.py | | Любой ИИ без запуска кода | Может заполнить шаблон вручную, но это менее надёжно — рекомендуется ассистент с выполнением кода |

Как пользоваться

Вариант 1 — Claude (нативно, как skill)

  1. Установите скилл из папки skills/dnevnik-praktiki.

  2. Напишите в свободной форме:

    Оформи дневник практики. Я Иванов Иван Иванович, группа ИСТ-31, 3 курс, кафедра информационных систем, практика в ООО «ТехноСофт» с 29 июня по 12 июля, тема — разработка модуля учёта заявок.

  3. Claude уточнит, чего не хватает, и пришлёт готовый документ.

Вариант 2 — ChatGPT, Gemini, DeepSeek и др.

  1. Загрузите в чат два файла: skills/dnevnik-praktiki/scripts/fill_diary.py и skills/dnevnik-praktiki/assets/template.docx.
  2. Вставьте универсальный промпт из AI_PROMPT.md и добавьте свои данные в свободной форме.
  3. ИИ соберёт данные в JSON, запустит скрипт и вернёт готовый .docx.

Вариант 3 — GigaChat (через API)

  1. Получите client_id и client_secret на developers.sber.ru.

  2. Скопируйте .env.example в .env и заполните GIGACHAT_CREDENTIALS и GIGACHAT_SCOPE.

  3. Установите зависимости и запустите:

    pip install -r requirements.txt
    python providers/gigachat_client.py
  4. Импортируйте в свой скрипт:

    from providers.gigachat_client import ask
    reply = ask("Оформи дневник практики. Я Иванов Иван...")

Вариант 4 — Яндекс GPT (через API)

  1. Создайте сервисный аккаунт в Yandex Cloud с ролью ai.languageModels.user.

  2. Скопируйте .env.example в .env и заполните YANDEX_FOLDER_ID и YANDEX_API_KEY.

  3. Установите зависимости и запустите:

    pip install -r requirements.txt
    python providers/yandex_gpt_client.py
  4. Импортируйте в свой скрипт:

    from providers.yandex_gpt_client import ask
    reply = ask("Оформи дневник практики. Я Иванов Иван...")

MCP-сервер (для Claude Desktop)

mcp_server.py реализует Model Context Protocol через stdio — подключается напрямую к Claude Desktop и даёт ему три инструмента:

| Инструмент | Что делает | |---|---| | fill_diary | Заполняет шаблон .docx по данным студента и возвращает путь к файлу | | ask_gigachat | Отправляет запрос в GigaChat и возвращает ответ | | ask_yandexgpt | Отправляет запрос в Яндекс GPT и возвращает ответ |

Подключение к Claude Desktop

  1. Установите зависимости:

    pip install -r requirements.txt
  2. Заполните .env (скопируйте из .env.example и добавьте ключи).

  3. Добавьте сервер в конфиг Claude Desktop (~/.config/claude/claude_desktop_config.json на Linux/Mac, %APPDATA%\Claude\claude_desktop_config.json на Windows):

    {
      "mcpServers": {
        "dnevnik-praktiki": {
          "command": "python",
          "args": ["/полный/путь/до/mcp_server.py"]
        }
      }
    }
  4. Перезапустите Claude Desktop — в интерфейсе появятся инструменты fill_diary, ask_gigachat, ask_yandexgpt.

Пример использования

После подключения можно написать Claude:

Оформи дневник практики. Я Иванов Иван Иванович, группа ИСТ-31, 3 курс, кафедра информационных систем, практика в ООО «ТехноСофт» с 2026-06-29 по 2026-07-12, задание — разработка модуля учёта заявок.

Claude сам вызовет fill_diary и вернёт путь к готовому .docx.

Что внутри

skills/dnevnik-praktiki/
├── SKILL.md                  # инструкции для Claude: что спрашивать и как собирать
├── scripts/
│   └── fill_diary.py         # подстановка данных в шаблон + расчёт дат плана
└── assets/
    ├── template.docx         # шаблон ПГТУ с плейсхолдерами {{...}}
    └── data_example.json     # пример входных данных
AI_PROMPT.md                  # универсальный промпт для любого ИИ
requirements.txt              # зависимости (python-docx)
tests/
└── test_fill_diary.py        # автотест: генерация из примера + нет {{...}}
tools/
├── build_template.py         # как из исходного дневника собран шаблон
└── template_src.docx         # исходный документ-образец

Запуск скрипта вручную

pip install -r requirements.txt
python3 skills/dnevnik-praktiki/scripts/fill_diary.py data.json "Дневник_Иванов.docx"

На некоторых Linux pip требует флаг --break-system-packages. На Windows и в виртуальном окружении (venv) он не нужен.

Тесты

pip install -r requirements.txt
python3 tests/test_fill_diary.py     # или: pytest

Поля

| Поле | Обязательно | Описание | |------|:----------:|----------| | fio | да | ФИО студента полностью | | kafedra | да | кафедра / факультет | | spec | да | специальность с кодом | | kurs, gruppa | да | курс и группа | | mesto | да | место прохождения практики | | start_date, end_date | да | сроки, формат ГГГГ-ММ-ДД | | zadanie | да | индивидуальное задание / содержание отчёта | | vid, tip, forma | нет | вид/тип практики, форма обучения | | prikaz_n/date, dog_n/date, instr_vuz, instr_org | нет | если нет — в документе остаются прочерки |

План работ из 8 пунктов и распределение дат по срокам считаются автоматически — отдельно вводить не нужно.

Автопубликация на npm

При пуше git-тега вида vX.Y.Z GitHub Actions сам публикует пакет на npm (версия берётся из тега). Workflow: .github/workflows/publish.yml.

Разовая настройка: добавь npm-токен в Secrets репозитория — Settings → Secrets and variables → Actions → New repository secret, имя NPM_TOKEN, значение — npm-токен с обходом 2FA (Automation или Granular с Bypass 2FA).

Дальше цикл такой:

# поправил код, затем:
git tag v1.0.3
git push origin v1.0.3      # Actions опубликует 1.0.3 на npm

Лицензия

MIT — см. LICENSE.