# TelePost Clone - MVP ## Описание TelePost Clone - это приложение для управления публикациями в Telegram и других платформах. Проект реализует основной функционал планировщика постов с поддержкой различных интеграций. ## Архитектура ```text ┌─────────────────┐ ┌──────────────────┐ ┌─────────────────┐ │ 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 ```bash # Установите переменные окружения cp .env.example .env # Отредактируйте .env файл и укажите свои значения # Запустите приложение docker-compose up --build ``` Приложение будет доступно по адресу: - Frontend: - Backend API: ### Локальная разработка Для бэкенда: ```bash cd backend pip install -r requirements.txt uvicorn main:app --reload ``` Для фронтенда: ```bash 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. Начните использовать возможности планировщика постов ## Структура проекта ```text 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**: Расширенные функции (планирование, история, черновики)