An open API service indexing awesome lists of open source software.

https://github.com/semyon-dev/nov-legend


https://github.com/semyon-dev/nov-legend

Last synced: about 2 months ago
JSON representation

Awesome Lists containing this project

README

        

# серверная часть сервиса (backend)

## Основной реализованный функционал:

* Получение, создание и поиск меток
* Получение, создание и фильтры маршрутов
* Регистрация, авторизация, фундамент для достижений
* Расчет расстония от меток к местоположению
* Перевод контента через Yandex Translate AI при создании меток
* Фиксация посещений и начисление опыта

## Особенность проекта в следующем:

* Подбор маршрута под конкретного пользователя
* Геймификация - получение опыта за посещение мест

## Стек бэкенда

* Go 1.16
* JWT
* MongoDB
* Yandex Translate API

## ЗАПУСК

развертывание сервиса производится на любой операционной системе
требуется установленный язык Golang;

`go run app/main.go` или создать бинарник `go build app/main.go`

## Пример .env файла

```
# JWT secret:
ACCESS_SECRET=secret
MONGO_URL="mongodb://127.0.0.1:27017/?compressors=zlib&readPreference=primary&ssl=false"
PORT=8080
# для яндекс API, не обязательно:
FOLDER_ID=
IAM_TOKEN=
```

## Установка зависимостей проекта

Установка зависимостей проекта происходит автоматически при попытке собрать бинарник или `go mod download`

## Миграции

Миграции мы сделать не успели

Поэтому можно ручками создать коллекции в бд "main" и сервис успешно заработает:

achievements \
comments \
points \
routes \
users

У коллекции `points` должен быть текстовый индекс для поля name (язык русский)

## Разработчик

Новиков Семен Сергеевич - [t.me/semyon_dev](https://t.me/semyon_dev)