Анастасия Панкратенкова
Персональный сайт преподавателя математики и физики с записью на консультацию по подготовке к ОГЭ и ЕГЭ.
О проекте
Сайт-визитка для Анастасии Викторовны Панкратенковой — преподавателя математики и физики.
На сайте можно:
- познакомиться с преподавателем, образованием и опытом;
- узнать о подготовке по математике и физике;
- понять, как проходят занятия;
- оставить заявку на консультацию;
- выбрать предмет, экзамен и формат занятий.
Заявки сохраняются в локальную базу данных SQLite. Подключение уведомлений в Telegram или по электронной почте можно добавить следующим этапом.
Технологии
| Технология | Назначение |
|---|---|
| Python 3.10+ | Основной язык приложения |
| Flask 3.x | Веб-сервер и маршрутизация |
| Jinja2 | Рендеринг HTML-шаблонов |
| SQLite | Хранение заявок на консультацию |
| HTML5 | Структура страниц |
| CSS3 | Адаптивный визуальный стиль |
| JavaScript | Небольшие интерактивные эффекты |
Структура проекта
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 папку проекта:
C:\Users\greyjoy\PycharmProjects\anastasia_viktorovna
2. Выбрать интерпретатор
В PyCharm выберите интерпретатор виртуального окружения:
.venv\Scripts\python.exe
Если виртуальное окружение ещё не создано, выполните в терминале PyCharm:
py -3.10 -m venv .venv
.venv\Scripts\Activate.ps1
3. Установить зависимости
python -m pip install -r requirements.txt
4. Запустить сайт
python app.py
После запуска откройте в браузере:
Остановить сервер можно сочетанием Ctrl+C в терминале.
Как работает форма
- Посетитель заполняет имя, контакт, предмет, экзамен и формат занятий.
- Flask проверяет обязательные поля.
- Заявка записывается в таблицу
consultation_requestsфайлаconsultations.db. - Пользователь видит страницу успешной отправки.
При обновлении существующего проекта недостающие поля базы добавляются автоматически. Старые заявки получают статус «Новая» и значение времени «Гибко».
В текущей версии заявки не отправляются автоматически преподавателю. Для рабочего сайта нужно подключить канал уведомлений и указать контактные данные Анастасии Викторовны.
Переменные окружения
Для запуска в интернете рекомендуется заменить тестовый секретный ключ Flask:
$env:SECRET_KEY = "ваш-длинный-случайный-ключ"
python app.py
Файл .env.example содержит пример необходимой переменной.
Админ-панель
Панель доступна по адресу:
По умолчанию для локальной разработки используется пароль admin123. Перед публикацией сайта обязательно задайте собственный пароль:
$env:ADMIN_PASSWORD = "ваш-приватный-пароль"
python app.py
После входа в панели отображаются:
- имя ученика или родителя;
- контакт для обратной связи;
- выбранный предмет;
- экзамен — ОГЭ или ЕГЭ;
- формат занятий;
- желаемое время занятий;
- комментарий из формы;
- дата и номер заявки.
Также в панели доступны:
- сводная статистика по всем заявкам;
- поиск по имени, контакту, комментарию и внутренней заметке;
- фильтрация по статусу и предмету;
- четыре статуса: «Новая», «Связались», «Запланирована», «Завершена»;
- внутренние заметки преподавателя по каждой заявке;
- удаление заявки с подтверждением;
- экспорт текущего списка в CSV для Excel или Google Таблиц.
Ссылка на админ-панель не показывается посетителям сайта. Доступ защищён сессионной авторизацией Flask.
Дальнейшее развитие
- уведомления о новых заявках в Telegram;
- закрытая страница для просмотра заявок;
- реальные контакты и расписание;
- отзывы учеников и результаты подготовки;
- публикация сайта на хостинге с Python.