pearl-telegram

byмарк

Створи Telegram-бота на Python, використовуючи Aiogram 3. Усі функції повинні бути реалізовані з часом, можна по трохи з заглушками. Архітектура має бути модульною, щоб у майбутньому можна було легко додавати нові механіки. База даних повинна бути JSON-файлами. Один файл для профілю користувача, окремі файли для карт, паків, конфігурації, статистики та інших даних. Усі дані повинні автоматично зберігатися після кожної зміни. Бот призначений тільки для одного користувача, тому авторизація не потрібна. Достатньо перевірки Telegram ID, який задається в config. Основна ідея бота — мотивація до навчання через колекціонування карт Pokémon. Основний цикл: користувач навчається без бота+вводить кількість хвилин/запускає таймер ботом на навчення і по його кінцю підтверджує; отримує кристали; витрачає кристали на паки; відкриває паки; отримує карти; збирає колекцію; закриває сети; отримує нагороди; продовжує навчатися. 1 хвилина навчання дорівнює 1 кристалу. У бота повинно бути красиве меню з Inline-кнопками. Головне меню повинно містити: Профіль Навчання Магазин Відкриття паків Колекція Статистика Досягнення У профілі показувати: аватарку користувача рівень; загальну кількість хвилин; кількість кристалів; зоряний пил; кількість відкритих паків; кількість карт;(вього унікальних) відсоток зібраної колекції(їх багато різних); Система рівнів. Рівень залежить лише від загальної кількості хвилин навчання. При кожному новому рівні користувач отримує нагороду. Навчання. Після натискання кнопки "Навчання" користувач вибирає додати хв/почати таймер і відповідно вибирає кількість хвилин Після цього потрібно вибрати категорію: Англійська Французька Іспанська Географія Право Інше Після підтвердження: додаються хвилини; додаються кристали; оновлюється статистика; перевіряються досягнення; перевіряється підвищення рівня. Магазин. Повинні існувати різні типи паків. Але для початку буде доступно тільки 2 Basic Pack Summer 2026 Pack можна легко додавати нові через JSON. Система випадіння карт повинна бути універсальною. Рідкість: Common Uncommon Rare Epic Legendary Mythic Шанс випадіння задається окремим JSON-файлом, щоб його можна було легко змінювати для кожного пака окремо свій можна. Карти. У кожної карти повинні бути поля: id номер покедекса назва тип рідкість серія покоління опис зображення версія назва пака де він Підтримувати різні варіанти карт: Normal Holo Gold Rainbow Shadow Ghost Shiny ( Для початку буде мало типів, з чим не заморач) Паки. Під час відкриття пака повинна запускатися анімація відкриття повідомленнями Telegram. Анімація має бути цікава не просто 1 повідомлення. Карти показ по 1 і треба нажимати дальше щоб продовжити. Якщо карта нова — це відображається Якщо карта вже існує — це вважається дублікатом. Дублікати. Кожен дублікат автоматично додає зоряний пил. Кількість пилу залежить від рідкості. Наприклад: Common 1 Uncommon 3 Rare 10 Epic 25 Legendary 100 Mythic 250 Колекція. Показувати всі отримані карти. Можна фільтрувати: по даті отрим по рідкості; по паку; по улюбленим;. Для кожної карти показувати: зображення; назву; номер; рідкість; версію; кількість копій отриманих Статистика. Показувати: сьогоднішні хвилини; цього тижня; цього місяця; загалом; кількість відкритих паків; кількість нових карт/всього наявних кількість дублікатів; найчастіше відкриваний пак. Досягнення. Автоматично перевіряти. Наприклад: 50 хвилин 100 хвилин 500 хвилин 1000 хвилин 10000 хвилин 10 паків 100 паків 250 паків 10 легендарок 50 легендарок 100 легендарок 50% колекції пака 75% колекції пака 100% колекції пака За кожне досягнення видавати нагороду. 50 ХВ право ... ( і т.д з іншими) Серія входу. Зображення. Кожна карта повинна показувати красиве PNG-зображення. Бот повинен автоматично відправляти фотографію карти з підписом. Підпис містить: назву; номер; тип; рідкість; версію; опис. нове/повторка Структура проєкту повинна бути професійною. Весь код має бути чистим, сучасним, добре документованим та розбитим на логічні модулі. Усі налаштування повинні зберігатися в JSON, без хардкоду. Усі шанси випадіння, ціни паків, нагороди, досвід, рівні, сети, рідкість карт, варіанти карт та інші параметри повинні легко редагуватися. Продумай економіку так, щоб прогрес був поступовим і цікавим навіть після кількох місяців використання. Картинки я згенерую сам і зміст паків ти зроби там заглушку. Почнемо з основ і структури

MenuShopCollectionAchievements
Menu

Comments (0)

No comments yet. Be the first!

Architecture

No Services Diagrams Yet

Architecture diagrams will be automatically generated when the Project Manager creates tasks for your project.

Menu design preview
Menu: Open Main Menu
Profile: View Profile
Learning: Start Session
Learning: Select Category
Learning: Confirm Session
Shop: Browse Packs
Shop: Purchase Pack
PackOpening: Open Pack
PackOpening: View Cards
Collection: View Collection
Collection: Filter Cards
Statistics: View Stats
Achievements: View Achievements
Menu design preview
Menu: Open Main Menu
Profile: View Profile
Learning: Start Session
Learning: Select Category
Learning: Confirm Session
Shop: Browse Packs
Shop: Purchase Pack
PackOpening: Open Pack
PackOpening: View Cards
Collection: View Collection
Collection: Filter Cards
Statistics: View Stats
Achievements: View Achievements