mirror of
https://gitverse.ru/kpa39l/telepost.git
synced 2026-09-29 09:55:09 +00:00
Initial commit
This commit is contained in:
@@ -0,0 +1,127 @@
|
||||
# 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**: Расширенные функции (планирование, история, черновики)
|
||||
Reference in New Issue
Block a user