YFG — это универсальная платформа для организации мероприятий, продажи билетов, блокчейн-гарантии подлинности и маркетплейса мастеров. Проект создан для сообщества, которое ценит удобство, безопасность и современные технологии.
🌐 Сайт: yfg.su (в разработке)
🐦 Telegram: @yfg_ing
💬 Discord: Присоединиться
📺 YouTube: @yfg_ing
🐙 GitHub: YFG-CodeBase
- Возможности
- Технологии
- Установка и запуск
- Структура проекта
- API Endpoints
- Скриншоты
- Планы по развитию
- Лицензия
- Автор
- ✅ Создание, редактирование и управление мероприятиями
- ✅ Категории, локации, даты, цены
- ✅ Статусы: черновик, опубликовано, отменено, завершено
- ✅ Фильтрация по категории и городу
- ✅ Покупка билетов с выбором количества
- ✅ Уникальные QR-коды для каждого билета
- ✅ Передача билетов между пользователями (с запросом и подтверждением)
- ✅ Проверка билетов организаторами через сканирование QR (камера смартфона)
- ✅ Отметка билетов как использованных
- ✅ Криптографический хеш для каждого билета
- ✅ Запись хешей в блокчейн-сеть (эмуляция, с возможностью перехода на реальную сеть)
- ✅ Проверка подлинности билетов и референсов
- ✅ Загрузка референсов (изображений) с фиксацией в блокчейне
- ✅ Профили мастеров с описанием, портфолио, рейтингом
- ✅ Отзывы и оценки (от 1 до 5 звёзд)
- ✅ Возможность оставлять отзывы только авторизованным пользователям
- ✅ Поиск мастеров, сортировка по рейтингу
- ✅ Регистрация и авторизация (email/никнейм + пароль)
- ✅ Хеширование паролей (Werkzeug)
- ✅ Профиль пользователя с аватаркой, биографией, статистикой
- ✅ Редактирование профиля (никнейм, аватар, описание)
- ✅ Просмотр своих билетов, мероприятий и отзывов
- ✅ Две цветовые темы: светлая и тёмная (переключение с сохранением в localStorage)
- ✅ Адаптивный дизайн (мобильные устройства)
- ✅ Бургер-меню для навигации
- ✅ Тосты (уведомления) с автоматическим исчезновением
- ✅ Градиентная палитра (оранжевый → фиолетовый)
- ✅ Анимированный граф на главной странице (частицы с линиями)
- ✅ Typing-эффект для заголовка
- ✅ «О проекте» – миссия, ценности, команда
- ✅ «Помощь» – подробное руководство
- ✅ «Правила сообщества» – правила и санкции
- ✅ «Контакты» – все способы связи
- ✅ Страница 404 с интерактивной игрой «Змейка» (градиентная линия, управление мышью)
| Компонент | Технология |
|---|---|
| Backend | Python 3.10+, Flask 2.3.x |
| Database | SQLite (по умолчанию), возможен переход на PostgreSQL |
| ORM | SQLAlchemy 2.x + Flask-Migrate |
| Frontend | HTML5, CSS3 (чистый CSS, без фреймворков) |
| QR-коды | qrcode + Pillow |
| Markdown | markdown, bleach (санитизация) |
| Аутентификация | Werkzeug (хеширование паролей) |
| Локализация | Flask-Babel (сервер), JSON (клиент) — в будущем |
| Блокчейн | эмуляция через хеши и транзакции (web3.py в планах) |
| Визуализация | Canvas (граф, змейка) |
- Python 3.10 или выше
- pip
- Клонировать репозиторий
git clone https://github.com/YFG-CodeBase/yfg.su.git
cd yfg.su- Создать и активировать виртуальное окружение
python -m venv venv
# Windows:
venv\Scripts\activate
# Linux / macOS:
source venv/bin/activate- Установить зависимости
pip install -r requirements.txt- Инициализировать базу данных
python init_db.py- (Опционально) Наполнить базу тестовыми данными
python injector.pyЭто создаст 24 пользователя, 20 мероприятий, билеты, мастеров, отзывы и блокчейн-записи.
- Запустить приложение
python app.py- Открыть в браузере
http://127.0.0.1:5000
yfg.su/
├── app.py # Основное приложение Flask (маршруты, логика)
├── config.py # Конфигурация (переменные окружения, БД)
├── extensions.py # Расширения Flask (SQLAlchemy, Migrate)
├── models.py # Модели данных (SQLAlchemy)
├── init_db.py # Создание таблиц в БД
├── injector.py # Наполнение БД тестовыми данными
├── requirements.txt # Зависимости проекта
├── .env # Переменные окружения (секретный ключ и т.п.)
├── README.md # Этот файл
├── instance/ # Папка с базой данных (SQLite)
│ └── yfg.db
├── static/ # Статические файлы
│ ├── style.css # Стили (светлая/тёмная темы)
│ ├── images/ # Логотипы, иконки, изображения
│ ├── avatars/ # Аватарки пользователей
│ ├── uploads/ # Файлы, загруженные пользователями
│ └── js/ # JavaScript (бургер-меню, etc.)
└── templates/ # Шаблоны Jinja2
├── base.html # Базовый шаблон (шапка, футер, тосты)
├── index.html # Главная страница
├── events.html # Список мероприятий
├── event_detail.html # Детальная страница мероприятия
├── tickets.html # Мои билеты
├── ticket_qr.html # QR-код билета
├── transfer_ticket.html# Передача билета
├── masters.html # Список мастеров
├── master_profile.html# Профиль мастера
├── blockchain.html # Блокчейн-гарантия
├── profile.html # Профиль пользователя
├── edit_profile.html # Редактирование профиля
├── login.html # Вход
├── register.html # Регистрация
├── about.html # О проекте
├── help.html # Помощь
├── rules.html # Правила
├── contacts.html # Контакты
├── 404.html # Страница ошибки с игрой «Змейка»
└── 500.html # Ошибка сервера
| Маршрут | Метод | Описание |
|---|---|---|
/ |
GET | Главная страница |
/events |
GET | Список мероприятий (с фильтрацией) |
/event/<id> |
GET | Детальная страница мероприятия |
/event/<id>/buy |
POST | Покупка билетов |
/tickets |
GET | Мои билеты |
/ticket/<id>/qr |
GET | QR-код билета |
/ticket/<id>/transfer |
GET, POST | Передача билета |
/transfer/<id>/<action> |
POST | Принять/отклонить передачу |
/ticket/<id>/use |
POST | Отметить билет как использованный |
/masters |
GET | Список мастеров |
/master/<id> |
GET | Профиль мастера |
/master/<id>/review |
POST | Добавить отзыв |
/blockchain |
GET | Блокчейн-записи пользователя |
/blockchain/upload |
POST | Загрузить референс |
/profile |
GET | Профиль пользователя |
/profile/edit |
GET, POST | Редактирование профиля |
/login |
GET, POST | Вход |
/register |
GET, POST | Регистрация |
/logout |
GET | Выход |
/about, /help, /rules, /contacts |
GET | Статические страницы |
Здесь будут скриншоты
- Главная страница с графовой анимацией
- Страница мероприятия с покупкой билетов
- Личный кабинет с билетами
- Профиль мастера с отзывами
- Блокчейн-гарантия с записями
- Игра «Змейка» на странице 404
- Интеграция с реальным блокчейном (Ethereum, Polygon)
- Онлайн-платежи (YooKassa, Stripe)
- Мобильное приложение (React Native)
- Telegram-бот для уведомлений
- Система промокодов и скидок
- Расширенная аналитика для организаторов
- Импорт/экспорт участников
- API для сторонних интеграций
- Многоязычность (RU/EN)
- Роли: администратор, модератор
Проект распространяется под лицензией MIT. Подробнее см. файл LICENSE.
⭐️ Если проект вам полезен, поставьте звезду на GitHub!