mirror of
https://gitverse.ru/kpa39l/telepost.git
synced 2026-09-29 09:55:09 +00:00
5.3 KiB
5.3 KiB
TelePost Clone - MVP
Описание
TelePost Clone - это приложение для управления публикациями в Telegram и других платформах. Проект реализует основной функционал планировщика постов с поддержкой различных интеграций.
Архитектура
┌─────────────────┐ ┌──────────────────┐ ┌─────────────────┐
│ Frontend │◄──►│ Backend │◄──►│ External APIs │
│ (SvelteKit) │ │ (FastAPI) │ │ (Telegram, MAX) │
└─────────────────┘ └──────────────────┘ └─────────────────┘
│
┌──────────────────┐
│ PostgreSQL │
│ │
│ Redis (queue) │
└──────────────────┘
Первый этап MVP
Первый этап включает в себя:
-
Базовая аутентификация
- Аутентификация через Telegram Login Widget
- Проверка аутентичности данных от Telegram
- Генерация JWT-токенов
-
Структура приложения
- Основная структура проекта (backend и frontend)
- Модель пользователя в базе данных
- Маршруты аутентификации
- Система схем Pydantic
Установка и запуск
Требования
- Docker и Docker Compose
- Node.js (для локальной разработки)
Запуск с помощью Docker Compose
# Установите переменные окружения
cp .env.example .env
# Отредактируйте .env файл и укажите свои значения
# Запустите приложение
docker-compose up --build
Приложение будет доступно по адресу:
- Frontend: http://localhost:3000
- Backend API: http://localhost:8000
Локальная разработка
Для бэкенда:
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 токенов
Использование
- Зарегистрируйте Telegram бота через @BotFather
- Укажите домен вашего приложения в настройках бота для авторизации
- Войдите в приложение через Telegram Login Widget
- Начните использовать возможности планировщика постов
Структура проекта
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 # Оркестрация
Дальнейшие этапы
- Этап 2: Создание и редактирование постов
- Этап 3: Публикация в Telegram
- Этап 4: Добавление интеграции с внешней платформой
- Этап 5: Расширенные функции (планирование, история, черновики)