add dockerfile

This commit is contained in:
Maxim
2025-12-11 20:22:16 +03:00
parent 87f3d0a36c
commit e50b183d07
4 changed files with 205 additions and 0 deletions

171
API.md Normal file
View File

@@ -0,0 +1,171 @@
# API документация eng_bot_metrics
## Базовый URL
```
http://localhost:8000
```
---
## Эндпоинты
### 1. Дашборд статистики
```
GET /
```
**Описание:** Главная страница с визуальной статистикой кликов.
**Отображает:**
- Общее количество переходов в бота и канал
- Статистика за сегодня
- Статистика за последнюю неделю
- График переходов за последние 30 дней
- Последние 20 событий
**Ответ:** HTML страница
---
### 2. Трекинг перехода в бота
```
POST /api/track/bot/
```
**Описание:** Записывает событие перехода пользователя в Telegram бота.
**Метод:** `POST`
**Заголовки:**
```
Content-Type: application/json
```
**Тело запроса:** Не требуется (можно отправить пустой POST)
**Автоматически сохраняет:**
- IP адрес пользователя
- User-Agent браузера
- Referrer (откуда пришёл пользователь)
- Временная метка
**Успешный ответ:**
```json
{
"status": "ok",
"event": "bot"
}
```
**Пример использования (JavaScript):**
```javascript
fetch('/api/track/bot/', {
method: 'POST',
headers: {
'Content-Type': 'application/json'
}
});
```
**Пример использования (curl):**
```bash
curl -X POST http://localhost:8000/api/track/bot/
```
---
### 3. Трекинг перехода в канал
```
POST /api/track/channel/
```
**Описание:** Записывает событие перехода пользователя в Telegram канал.
**Метод:** `POST`
**Заголовки:**
```
Content-Type: application/json
```
**Тело запроса:** Не требуется (можно отправить пустой POST)
**Автоматически сохраняет:**
- IP адрес пользователя
- User-Agent браузера
- Referrer (откуда пришёл пользователь)
- Временная метка
**Успешный ответ:**
```json
{
"status": "ok",
"event": "channel"
}
```
**Пример использования (JavaScript):**
```javascript
fetch('/api/track/channel/', {
method: 'POST',
headers: {
'Content-Type': 'application/json'
}
});
```
**Пример использования (curl):**
```bash
curl -X POST http://localhost:8000/api/track/channel/
```
---
### 4. Админ-панель Django
```
GET /admin/
```
**Описание:** Стандартная админ-панель Django для управления данными.
**Требует:** Авторизация суперпользователя
**Создание суперпользователя:**
```bash
./deploy.sh createsuperuser
```
---
## Пример интеграции на лендинге
```html
<a href="https://t.me/your_bot" onclick="trackBot()">Перейти в бота</a>
<a href="https://t.me/your_channel" onclick="trackChannel()">Перейти в канал</a>
<script>
function trackBot() {
fetch('/api/track/bot/', { method: 'POST' });
}
function trackChannel() {
fetch('/api/track/channel/', { method: 'POST' });
}
</script>
```
---
## Сводная таблица
| URL | Метод | Описание |
|-----|-------|----------|
| `/` | GET | Дашборд со статистикой |
| `/api/track/bot/` | POST | Трекинг клика по боту |
| `/api/track/channel/` | POST | Трекинг клика по каналу |
| `/admin/` | GET | Админ-панель Django |