mirror of
https://gitverse.ru/kpa39l/telepost.git
synced 2026-09-29 18:05:08 +00:00
128 lines
5.3 KiB
Markdown
128 lines
5.3 KiB
Markdown
# 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
|
|
|
|
```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. Начните использовать возможности планировщика постов
|
|
|
|
## Структура проекта
|
|
|
|
```
|
|
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. **Этап 2**: Создание и редактирование постов
|
|
3. **Этап 3**: Публикация в Telegram
|
|
4. **Этап 4**: Добавление интеграции с внешней платформой
|
|
5. **Этап 5**: Расширенные функции (планирование, история, черновики)
|