Модуль 4.2 Фінальні проєкти

ПРОЄКТ: АВТОМАТИЗАЦІЯ ЩОДЕННИХ ЗВІТІВ

Курс: Python для аналітиків з нуля

1. ПОСТАНОВКА ЗАДАЧІ

Щоденний звіт за 5 секунд замість 30 хвилин ручної роботи.

Вхід: щоденний CSV з подіями (час, тип, статус, відповідальний)

Вихід: Word документ з підсумком, таблицями, графіками

Інтеграція: pandas, matplotlib, python-docx, шаблони

2. СТРУКТУРА ПРОЄКТУ

Файли:

  • template.docx — шаблон звіту з плейсхолдерами
  • daily_events.csv — дані за день
  • generate_report.py — скрипт генерації
graphs/ — папка для графіків (автостворення)

Етапи:

  • 1. Завантажити дані
  • 2. Розрахувати статистику
  • 3. Згенерувати графіки
  • 4. Заповнити шаблон
  • 5. Зберегти звіт

3. КОД: ЧАСТИНА 1

Завантаження та аналіз:

import pandas as pd

4. КОД: ЧАСТИНА 2

Генерація графіків:

# === КРОК 3: ГРАФІКИ ===

5. КОД: ЧАСТИНА 3

Заповнення шаблону:

# === КРОК 4: ЗАПОВНИТИ ШАБЛОН ===

6. ШАБЛОН TEMPLATE.DOCX

Створи template.docx з таким текстом:

ЩОДЕННИЙ ЗВІТ

Дата: {DATE}

ПІДСУМОК

Всього подій: {TOTAL_EVENTS}
Виконано: {COMPLETED}
В очікуванні: {PENDING}
Не виконано: {FAILED}

Процент виконання: {COMPLETION_RATE}%

АКТИВНІСТЬ ПО ГОДИНАХ

{GRAPH_HOURLY}

РОЗПОДІЛ ЗА СТАТУСАМИ

{GRAPH_STATUS}

ТОП ТИПІВ ПОДІЙ

{GRAPH_TYPES}

7. АВТОМАТИЗАЦІЯ ЧЕРЕЗ CRON

Linux (запуск о 23:00 щодня):

0 23 * * * cd /path/to/project && python3 generate_report.py

Windows (Task Scheduler):

Створити задачу: щодня о 23:00 запускати python generate_report.py

8. РОЗШИРЕННЯ

Ідея 1: надсилання email

import smtplib

Ідея 2: архівування

Зберігати звіти по місяцях: reports/2024-01/, reports/2024-02/

9. РЕФЛЕКСІЯ

Я автоматизував рутинну задачу

Я працював з шаблонами документів

Я генерував графіки програмно

Я інтегрував matplotlib + python-docx

Я налаштував автозапуск

10. ЩО ДАЛІ

Проєкт 4.3: Аналіз радіоперехоплень (повний цикл радіорозвідки)
Головна думка: Шаблон + дані + скрипт = автоматизація. 30 хвилин ручної роботи → 5 секунд виконання скрипту.

Рефлексія

Прогрес модуля 0%