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 | ---