Files
telepost/README.MD
T

5.4 KiB

TelePost Clone - MVP

Описание

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

Архитектура

┌─────────────────┐    ┌──────────────────┐    ┌─────────────────┐
│   Frontend      │◄──►│    Backend       │◄──►│  External APIs  │
│ (SvelteKit)    │    │   (FastAPI)      │    │ (Telegram, MAX) │
└─────────────────┘    └──────────────────┘    └─────────────────┘
                               │
                        ┌──────────────────┐
                        │   PostgreSQL     │
                        │                  │
                        │   Redis (queue) │
                        └──────────────────┘

Первый этап MVP

Первый этап включает в себя:

  1. Базовая аутентификация

    • Аутентификация через Telegram Login Widget
    • Проверка аутентичности данных от Telegram
    • Генерация JWT-токенов
  2. Структура приложения

    • Основная структура проекта (backend и frontend)
    • Модель пользователя в базе данных
    • Маршруты аутентификации
    • Система схем Pydantic

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

Требования

  • Docker и Docker Compose
  • Node.js (для локальной разработки)

Запуск с помощью Docker Compose

# Установите переменные окружения
cp .env.example .env
# Отредактируйте .env файл и укажите свои значения

# Запустите приложение
docker-compose up --build

Приложение будет доступно по адресу:

Локальная разработка

Для бэкенда:

cd backend
pip install -r requirements.txt
uvicorn main:app --reload

Для фронтенда:

cd frontend
npm install
npm run dev

Переменные окружения

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

  • TELEGRAM_BOT_TOKEN - токен вашего Telegram бота
  • TELEGRAM_BOT_NAME - имя вашего Telegram бота
  • SECRET_KEY - секретный ключ для подписи JWT токенов

Использование

  1. Зарегистрируйте Telegram бота через @BotFather
  2. Укажите домен вашего приложения в настройках бота для авторизации
  3. Войдите в приложение через Telegram Login Widget
  4. Начните использовать возможности планировщика постов

Структура проекта

telepost-clone/
├── backend/                 # FastAPI приложение
│   ├── app/
│   │   ├── api/            # API маршруты
│   │   ├── models/         # ORM модели
│   │   ├── schemas/        # Pydantic схемы
│   │   ├── services/       # Бизнес-логика
│   │   ├── database/       # Настройки базы данных
│   │   ├── auth/           # Аутентификация
│   │   ├── integrations/   # Интеграции с внешними сервисами
│   │   └── utils/          # Утилиты
│   ├── migrations/         # Миграции базы данных
│   ├── tests/              # Тесты
│   └── requirements.txt    # Зависимости
├── frontend/               # SvelteKit приложение
│   ├── src/
│   │   ├── routes/         # Страницы
│   │   ├── components/     # Компоненты
│   │   ├── lib/            # Библиотеки
│   │   ├── stores/         # Svelte stores
│   │   └── app.html        # Базовый шаблон
│   ├── static/             # Статические файлы
│   └── package.json        # Зависимости
├── docs/                   # Документация
└── docker-compose.yml      # Оркестрация

Дальнейшие этапы

  1. Этап 2: Создание и редактирование постов [x]
  2. Этап 3: Публикация в Telegram [x]
  3. Этап 4: Добавление интеграции с внешней платформой [x]
  4. Этап 5: Расширенные функции (планирование, история, черновики)