# Анастасия Панкратенкова > Персональный сайт преподавателя математики с записью на консультацию по подготовке к ОГЭ и ЕГЭ. ![Статус проекта](https://img.shields.io/badge/status-MVP-e77862?style=flat-square) ![Python](https://img.shields.io/badge/Python-3.10%2B-10211d?style=flat-square&logo=python&logoColor=white) ![Flask](https://img.shields.io/badge/Flask-3.x-10211d?style=flat-square&logo=flask&logoColor=white) ![SQLite](https://img.shields.io/badge/SQLite-local%20database-bdd3ba?style=flat-square&logo=sqlite&logoColor=10211d) ## О проекте Сайт-визитка для Анастасии Викторовны Панкратенковой — преподавателя математики. На сайте можно: - познакомиться с преподавателем, образованием и опытом; - узнать о подготовке по математике; - понять, как проходят занятия; - оставить заявку на консультацию; - выбрать предмет, экзамен и формат занятий. Заявки сохраняются в локальную базу данных SQLite. Подключение уведомлений в Telegram или по электронной почте можно добавить следующим этапом. ## Технологии | Технология | Назначение | | --- | --- | | Python 3.10+ | Основной язык приложения | | Flask 3.x | Веб-сервер и маршрутизация | | Jinja2 | Рендеринг HTML-шаблонов | | SQLite | Хранение заявок на консультацию | | HTML5 | Структура страниц | | CSS3 | Адаптивный визуальный стиль | | JavaScript | Небольшие интерактивные эффекты | ## Структура проекта ```text anastasia_viktorovna/ ├── app.py # Flask-приложение и обработка заявок ├── requirements.txt # Зависимости проекта ├── .env.example # Пример переменных окружения ├── templates/ │ ├── index.html # Главная страница │ ├── success.html # Страница успешной отправки │ ├── admin_login.html # Вход в админ-панель │ └── admin.html # Список заявок ├── static/ │ ├── css/styles.css # Стили и адаптивная вёрстка │ ├── js/main.js # Клиентские эффекты │ └── images/teacher.jpg # Фотография преподавателя └── consultations.db # Создаётся автоматически при запуске ``` ## Запуск в PyCharm ### 1. Открыть проект Откройте в PyCharm папку проекта: ```text C:\Users\greyjoy\PycharmProjects\anastasia_viktorovna ``` ### 2. Выбрать интерпретатор В PyCharm выберите интерпретатор виртуального окружения: ```text .venv\Scripts\python.exe ``` Если виртуальное окружение ещё не создано, выполните в терминале PyCharm: ```powershell py -3.10 -m venv .venv .venv\Scripts\Activate.ps1 ``` ### 3. Установить зависимости ```powershell python -m pip install -r requirements.txt ``` ### 4. Запустить сайт ```powershell python app.py ``` После запуска откройте в браузере: Остановить сервер можно сочетанием `Ctrl+C` в терминале. ## Как работает форма 1. Посетитель заполняет имя, контакт, предмет, экзамен и формат занятий. 2. Flask проверяет обязательные поля. 3. Заявка записывается в таблицу `consultation_requests` файла `consultations.db`. 4. Пользователь видит страницу успешной отправки. При обновлении существующего проекта недостающие поля базы добавляются автоматически. Старые заявки получают статус «Новая» и значение времени «Гибко». В текущей версии заявки не отправляются автоматически преподавателю. Для рабочего сайта нужно подключить канал уведомлений и указать контактные данные Анастасии Викторовны. ## Переменные окружения Для запуска в интернете рекомендуется заменить тестовый секретный ключ Flask: ```powershell $env:SECRET_KEY = "ваш-длинный-случайный-ключ" python app.py ``` Файл `.env.example` содержит пример необходимой переменной. ## Админ-панель Панель доступна по адресу: По умолчанию для локальной разработки используется пароль `admin123`. Перед публикацией сайта обязательно задайте собственный пароль: ```powershell $env:ADMIN_PASSWORD = "ваш-приватный-пароль" python app.py ``` После входа в панели отображаются: - имя ученика или родителя; - контакт для обратной связи; - выбранный предмет; - экзамен — ОГЭ или ЕГЭ; - формат занятий; - желаемое время занятий; - комментарий из формы; - дата и номер заявки. Также в панели доступны: - сводная статистика по всем заявкам; - поиск по имени, контакту, комментарию и внутренней заметке; - фильтрация по статусу и предмету; - четыре статуса: «Новая», «Связались», «Запланирована», «Завершена»; - внутренние заметки преподавателя по каждой заявке; - удаление заявки с подтверждением; - экспорт текущего списка в CSV для Excel или Google Таблиц. Ссылка на админ-панель не показывается посетителям сайта. Доступ защищён сессионной авторизацией Flask. ## Дальнейшее развитие - уведомления о новых заявках в Telegram; - закрытая страница для просмотра заявок; - реальные контакты и расписание; - отзывы учеников и результаты подготовки; - публикация сайта на хостинге с Python.