164 lines
6.4 KiB
Markdown
164 lines
6.4 KiB
Markdown
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-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 |
|
||
--- |