Files
EventHubBack/README.md
2026-04-20 21:04:16 +03:00

167 lines
7.5 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
eventhub
=====
An OTP application
Build
-----
$ rebar3 compile
# EventHub - Шпаргалка по Makefile командам
## 🚀 Разработка
| Команда | Описание |
|---------|----------|
| `make compile` | Скомпилировать проект |
| `make shell` | Запустить интерактивную Erlang оболочку |
| `make run` | Запустить приложение в foreground |
| `make start` | Запустить приложение в фоне |
| `make stop` | Остановить приложение |
| `make restart` | Перезапустить приложение |
| `make logs` | Показать логи |
| `make console` | Подключиться к запущенной ноде |
| `make clean` | Очистить проект |
| `make deps` | Установить зависимости |
| `make update-deps` | Обновить зависимости |
---
## 🧪 Тестирование
| Команда | Описание |
|---------|-------------------------------------------------------------------------|
| `make test` | Алиас для `make eunit` |
| `make eunit` | Запустить все EUnit тесты |
| `make eunit-verbose` | EUnit тесты с подробным выводом |
| `make eunit-module MODULE=имя` | Тесты для конкретного модуля |
| `make test-api` | Запустить все API тесты (сервер запустится и остановится автоматически) |
| `make test-quick` | Запустить API тесты с существующим сервером |
| `make test-runner PATTERN=booking` | Запустить API тесты бронирований |
| `cd test/scripts && ./test_runner.sh -v auth` | Запустить тесты в verbose режиме |
| `make test-auth` | Только тесты аутентификации |
| `make test-calendar` | Только тесты календарей |
| `make test-event` | Только тесты событий |
| `make test-booking` | Только тесты бронирований |
| `make test-all` | Все тесты (EUnit + API) |
| `make cover` | Тесты с отчётом о покрытии кода |
---
## 🔍 Качество кода
| Команда | Описание |
|---------|----------|
| `make dialyzer` | Статический анализ кода |
| `make xref` | Проверка кросс-ссылок |
| `make lint` | Проверка стиля кода |
| `make format` | Форматирование кода (требуется erlfmt) |
| `make docs` | Генерация документации EDoc |
---
## 📦 Релиз и Docker
| Команда | Описание |
|---------|----------|
| `make release` | Собрать production релиз |
| `make tar` | Создать tar.gz архив релиза |
| `make docker-build` | Собрать Docker образ |
| `make docker-run` | Запустить Docker контейнер |
| `make docker-stop` | Остановить Docker контейнер |
---
## 🛠 Утилиты
| Команда | Описание |
|---------|----------|
| `make status` | Проверить статус сервера (healthcheck) |
| `make tree` | Показать структуру проекта |
| `make info` | Показать информацию о проекте и API |
| `make help` | Показать все доступные команды |
---
## 👨‍💻 Рабочий процесс разработки
| Команда | Описание |
|---------|----------|
| `make dev-setup` | Настройка окружения (deps + compile) |
| `make dev-test` | Быстрый цикл: compile + eunit |
| `make dev-watch` | Автокомпиляция при изменениях (требуется entr) |
---
## 📋 Git хелперы
| Команда | Описание |
|---------|----------|
| `make git-status` | Показать статус Git |
| `make git-log` | Показать лог (последние 10 коммитов) |
| `make git-save` | Commit + push (запросит сообщение) |
---
## 🔧 Примеры использования
```bash
# Запустить тесты для конкретного модуля
make eunit-module MODULE=core_booking_tests
# Запустить приложение, затем API тесты
make run & make test-api
# Полный цикл: очистка, компиляция, тесты
make clean compile eunit
# Проверить статус сервера
make status
# Собрать Docker образ и запустить
make docker-build && make docker-run
```
## 🎯 Полезные сочетания
```bash
# Остановить всё, очистить, собрать заново, запустить тесты
make stop && make clean && make compile && make eunit
# Запустить сервер в фоне и проверить статус
make start && sleep 3 && make status
# Посмотреть структуру проекта
make tree
# Показать информацию о проекте
make info
```
📡 API Эндпоинты (порт 8080)
| Метод | Путь | Описание |
|-------|----------|----------|
| POST | /v1/register | Регистрация пользователя |
| POST | /v1/login | Логин (получение JWT) |
| POST | /v1/refresh | Обновление токена |
| GET | /v1/user/me | Профиль текущего пользователя |
| GET | /v1/user/bookings | Бронирования пользователя |
| POST | /v1/calendars | Создание календаря |
| GET | /v1/calendars | Список календарей |
| GET | /v1/calendars/:id | Получение календаря |
| PUT | /v1/calendars/:id | Обновление календаря |
| DELETE | /v1/calendars/:id | Удаление календаря |
| POST | /v1/calendars/:id/events | Создание события |
| GET | /v1/calendars/:id/events | Список событий календаря |
| GET | /v1/events/:id | Получение события |
| PUT | /v1/events/:id | Обновление события |
| DELETE | /v1/events/:id | Удаление события |
| GET | /v1/events/:id/occurrences | Вхождения повторяющегося | события
| DELETE | /v1/events/:id/occurrences/:time | Отмена вхождения |
| POST | /v1/events/:id/bookings | Запись на событие |
| GET | /v1/events/:id/bookings | Список бронирований события |
| GET | /v1/bookings/:id | Получение бронирования |
| PUT | /v1/bookings/:id | Подтверждение/отклонение |
| DELETE | /v1/bookings/:id | Отмена бронирования |
| GET | /health | Healthcheck |
---