Stage 3.4

This commit is contained in:
2026-04-20 16:40:44 +03:00
parent 42a047a938
commit b24cbc97f3
25 changed files with 2520 additions and 123 deletions

155
README.md
View File

@@ -7,3 +7,158 @@ 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 |
---