Files
av_Site_repetitor/README.md
T
2026-08-04 00:14:40 +04:00

164 lines
7.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Анастасия Панкратенкова
> Персональный сайт преподавателя математики и физики с записью на консультацию по подготовке к ОГЭ и ЕГЭ.
![Статус проекта](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
```
После запуска откройте в браузере:
<http://127.0.0.1:5000>
Остановить сервер можно сочетанием `Ctrl+C` в терминале.
## Как работает форма
1. Посетитель заполняет имя, контакт, предмет, экзамен и формат занятий.
2. Flask проверяет обязательные поля.
3. Заявка записывается в таблицу `consultation_requests` файла `consultations.db`.
4. Пользователь видит страницу успешной отправки.
При обновлении существующего проекта недостающие поля базы добавляются автоматически. Старые заявки получают статус «Новая» и значение времени «Гибко».
В текущей версии заявки не отправляются автоматически преподавателю. Для рабочего сайта нужно подключить канал уведомлений и указать контактные данные Анастасии Викторовны.
## Переменные окружения
Для запуска в интернете рекомендуется заменить тестовый секретный ключ Flask:
```powershell
$env:SECRET_KEY = "ваш-длинный-случайный-ключ"
python app.py
```
Файл `.env.example` содержит пример необходимой переменной.
## Админ-панель
Панель доступна по адресу:
<http://127.0.0.1:5000/admin>
По умолчанию для локальной разработки используется пароль `admin123`. Перед публикацией сайта обязательно задайте собственный пароль:
```powershell
$env:ADMIN_PASSWORD = "ваш-приватный-пароль"
python app.py
```
После входа в панели отображаются:
- имя ученика или родителя;
- контакт для обратной связи;
- выбранный предмет;
- экзамен — ОГЭ или ЕГЭ;
- формат занятий;
- желаемое время занятий;
- комментарий из формы;
- дата и номер заявки.
Также в панели доступны:
- сводная статистика по всем заявкам;
- поиск по имени, контакту, комментарию и внутренней заметке;
- фильтрация по статусу и предмету;
- четыре статуса: «Новая», «Связались», «Запланирована», «Завершена»;
- внутренние заметки преподавателя по каждой заявке;
- удаление заявки с подтверждением;
- экспорт текущего списка в CSV для Excel или Google Таблиц.
Ссылка на админ-панель не показывается посетителям сайта. Доступ защищён сессионной авторизацией Flask.
## Дальнейшее развитие
- уведомления о новых заявках в Telegram;
- закрытая страница для просмотра заявок;
- реальные контакты и расписание;
- отзывы учеников и результаты подготовки;
- публикация сайта на хостинге с Python.
# test 1785788080