Files
telepost/README.MD
T

129 lines
5.4 KiB
Markdown

# 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: <http://localhost:3000>
- Backend API: <http://localhost:8000>
### Локальная разработка
Для бэкенда:
```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**: Расширенные функции (планирование, история, черновики)