Делает Зиняева Екатерина, Анастасия Зиняева (придумать модификацию)
Описание:
Система продажи билетов на блокчейне разработана для революционизации способа продажи, распределения и управления билетами на мероприятиях. Традиционные системы продажи билетов часто страдают от проблем, таких как спекуляция билетами, фальсификация и недостаток прозрачности. Система продажи билетов на основе блокчейна призвана решить эти проблемы, предоставляя безопасный и прозрачный способ управления продажей и распределением билетов на мероприятия любого рода.
Задание:
Вашей задачей является разработка и внедрение системы продажи билетов на основе блокчейна с использованием языка программирования Solidity. Эта система должна позволять организаторам мероприятий создавать, продавать и управлять билетами на блокчейне. Пользователям должно быть разрешено покупать билеты, и после покупки владение билетом должно быть зафиксировано на блокчейне. Вот конкретные требования к этой задаче:
- Разработка смарт-контракта: Разработайте смарт-контракт Solidity, представляющий билеты на мероприятия. Каждый билет должен иметь уникальный идентификатор и быть связан с конкретным мероприятием.
- Создание билетов: Создайте функцию в смарт-контракте, позволяющую организаторам мероприятий создавать и размещать билеты на продажу. Эти билеты должны быть связаны с деталями мероприятия, такими как дата, время, местоположение и цена.
- Покупка билетов: Реализуйте механизм, позволяющий пользователям покупать билеты на мероприятие с использованием криптовалюты (например, Ether). Купленные билеты должны быть зафиксированы на блокчейне и показывать владение ими.
- Передача и перепродажа: Позвольте владельцам билетов передавать их другим пользователям или размещать их на перепродажу. Убедитесь, что изменения владения билетами надежно фиксируются на блокчейне.
- Предотвращение спекуляции билетами: Внедрите меры, предотвращающие спекуляцию билетами, устанавливая правила для цен перепродажи и ограничения на количество билетов, которое один пользователь может приобрести.
- Проверка мероприятия: Предоставьте метод для организаторов мероприятий, позволяющий проверить подлинность билетов на месте проведения мероприятия, например, с помощью сканирования QR-кода.
Дополнительные требования и функции:
- Система уровней билетов:
- Введите несколько категорий билетов (например, VIP, Стандарт, Эконом). Каждый уровень билета может иметь свои уникальные характеристики, такие как доступ к разным зонам мероприятия, дополнительные привилегии или услуги.
- Организаторы смогут устанавливать разные цены для каждого уровня, а пользователи смогут выбирать категорию при покупке.
- Временные скидки и акции:
- Добавьте функцию, позволяющую организаторам назначать временные скидки на билеты. Например, 10% скидка для первых 100 покупок или 15% скидка за раннее бронирование.
- В смарт-контракте можно добавить функцию, позволяющую изменять цену на определенные билеты в зависимости от времени покупки.
- Лимиты на перепродажу:
- Реализуйте временное ограничение для перепродажи билетов, чтобы предотвращать спекуляции. Например, билет можно перепродать не ранее, чем за 24 часа до мероприятия.
- Установите максимальное количество перепродаж для каждого билета (например, билет можно перепродавать не более 3 раз).
- Возврат билетов:
- Введите функцию для возврата билетов. Пользователи могут вернуть билет организаторам за вычетом небольшого сбора, а организаторы могут выставить возвращенный билет на продажу.
- Возврат средств пользователям можно осуществить частично, в зависимости от даты возврата (чем ближе к мероприятию, тем меньшая сумма возвращается).