gw-currency-wallet
gw-currency-wallet — это микросервис для управления кошельком и обмена валют, поддерживающий регистрацию и авторизацию пользователей, пополнение счета, вывод средств, получение курсов валют и их обмен. В качестве базы данных используется PostgreSQL. Для взаимодействия с внешним сервисом курсов валют используется gRPC. Микросервис также поддерживает контейнеризацию с использованием Docker и Docker Compose.
Основные функции
-Регистрация и авторизация пользователей с использованием JWT.
-Хранение и управление балансом пользователя в различных валютах (USD, RUB, EUR).
-Пополнение и вывод средств.
-Получение и кэширование курсов валют через gRPC.
-Обмен валют с автоматическим обновлением баланса.
-Поддержка RESTful API.
Стек технологий
- Go: язык программирования для разработки высокопроизводительных приложений.
- Fiber: HTTP-фреймворк для разработки REST API.
- gRPC: протокол удаленного вызова процедур.
- PostgreSQL: база данных для хранения курсов валют.
- JWT: аутентификация и авторизация.
- Docker: контейнеризация приложений.
- Docker Compose: оркестрация контейнеров.
- Logrus: логирование.
Установка и запуск
Клонирование репозитория
Создание ключей для JWT
Запуск через Docker
-
Убедитесь, что переменная DB_HOST установлена как db в .env.
-
Запустите сервисы:
docker-compose up --build
-
Проверьте, что контейнеры запущены:
docker ps
Локальный запуск
-
Установите зависимости:
go mod tidy
-
Запустите PostgreSQL локально или измените DB_HOST в .env на localhost.
-
Запустите приложение:
Копировать код
go run ./cmd/main.go
-
Приложение запустится на порту 50051 (или указанном в .env).