Skip to content
Y-devaPublic

About

Официальный сайт проекта

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

7 Commits

Folders and files

Repository files navigation

YFG — Your Furry Group

License Python Flask SQLite

YFG — это универсальная платформа для организации мероприятий, продажи билетов, блокчейн-гарантии подлинности и маркетплейса мастеров. Проект создан для сообщества, которое ценит удобство, безопасность и современные технологии.

🌐 Сайт: yfg.su (в разработке)
🐦 Telegram: @yfg_ing
💬 Discord: Присоединиться
📺 YouTube: @yfg_ing
🐙 GitHub: YFG-CodeBase


📋 Оглавление


🚀 Возможности

Организация мероприятий

  • ✅ Создание, редактирование и управление мероприятиями
  • ✅ Категории, локации, даты, цены
  • ✅ Статусы: черновик, опубликовано, отменено, завершено
  • ✅ Фильтрация по категории и городу

Билетная система

  • ✅ Покупка билетов с выбором количества
  • ✅ Уникальные 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

Шаги

  1. Клонировать репозиторий
git clone https://github.com/YFG-CodeBase/yfg.su.git
cd yfg.su
  1. Создать и активировать виртуальное окружение
python -m venv venv
# Windows:
venv\Scripts\activate
# Linux / macOS:
source venv/bin/activate
  1. Установить зависимости
pip install -r requirements.txt
  1. Инициализировать базу данных
python init_db.py
  1. (Опционально) Наполнить базу тестовыми данными
python injector.py

Это создаст 24 пользователя, 20 мероприятий, билеты, мастеров, отзывы и блокчейн-записи.

  1. Запустить приложение
python app.py
  1. Открыть в браузере
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           # Ошибка сервера

🔗 API Endpoints

Маршрут Метод Описание
/ 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


⭐️ Если проект вам полезен, поставьте звезду на GitHub!

About

Официальный сайт проекта

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages