/test_clubox

Primary LanguagePythonMIT LicenseMIT

Веб-приложение для Telegram — Профиль пользователя

Описание

Это веб-приложение взаимодействует с Telegram-ботом и предоставляет пользователям возможность вводить дату рождения и делиться своими профилями. Пользователь получает сообщение от бота с кнопкой, которая открывает WebApp. На веб-приложении пользователь вводит дату рождения и видит данные о своем профиле, включая время до следующего дня рождения. Приложение также позволяет пользователю делиться своими данными с другими пользователями.

Стек технологий

Backend

  • Python 3.10-11
  • FastAPI - для создания REST API.
  • Aiogram - для создания Telegram-бота.
  • Tortoise ORM - для взаимодействия с базой данных.
  • PostgreSQL - реляционная база данных.

Frontend

  • Vue 3 - современный фронтенд-фреймворк.
  • Pinia - для управления состоянием.
  • TypeScript - для типизированного кода.
  • TailwindCSS - для стилизации пользовательского интерфейса.

Задание

  1. Интеракция с ботом:
    • Пользователь пишет боту в Telegram.
    • Бот отвечает сообщением с кнопкой, которая ведет на WebApp.
  2. Первый экран WebApp:
    • Пользователь заходит в WebApp и видит первый экран с формой для ввода даты рождения.
  3. Второй экран WebApp:
    • После ввода даты рождения пользователь переходит на следующий экран, где отображаются следующие данные:
      • Фото пользователя.
      • Имя пользователя.
      • Фамилия пользователя.
      • Юзернейм пользователя.
      • Дата рождения.
      • Сколько дней, часов и минут осталось до его дня рождения.
    • А так же 2 кнопки:
      • Изменить дату рождения (доступна только владельцу карточки)
      • Поделиться данными
  4. Поделиться данными:
    • На втором экране пользователь (далее "пользователь 1") может нажать на кнопку"Поделиться" и отправить ссылку на свои данные другому пользователю (далее "пользователь 2"). Пользователь 2, перейдя по ссылке, должен видеть те же данные, что ипользователь 1.

Установка и запуск

Требования

Для запуска потребуются следующие приложения:

  • Docker и Docker Compose
  • ngrok

Шаги по установке

  1. Клонируйте репозиторий и перейдите в папку:
    git clone https://github.com/mikholand/test_clubox.git
    cd test_clubox
  2. Запустите ngrok и получите адрес https, выполнив команду:
    ngrok http 80
  3. Переименуйте файл example.env в корневой директории на .env и измените его:
    TELEGRAM_BOT_TOKEN=<your_telegram_bot_token>
    DATABASE_URL=postgres://user:password@db:5432/profiles
    NGROK_URL=<your_ngrok_url>
  4. Запустите Docker Compose:
    docker-compose up --build
  5. Получите доступ к веб-приложению:
    • Откройте своего бота и введите команду "/start".

Лицензия

Этот скрипт распространяется на условиях лицензии MIT. Подробности смотрите в файле LICENSE.

Контакты

Михно Олег - Telegram - mikholand@gmail.com

GitHub: https://github.com/mikholand

LinkedIn: https://www.linkedin.com/in/mikholand/