Skip to content

shampsdev/dishdash-server

Repository files navigation

DishDash Server

Стек: Go, Gin, Socket.IO, PostgreSQL, Docker, Traefik (на сервере)

Development

Серверная часть проекта для Creative Space Hackathon
Занял первое место. Сайт

Выбирай с друзьями где поесть с помощью свайпов.
Люди в одном лобби свайпают заведения, пока не произойдет match.

dishdash-demo.mp4

Prod: https://dishdash.ru/api/v1

Development

Скопировать .env

cp .env.example .env

Есть два варианта запуска:

1. Full compose

Подойдёт, если не планируете активно изменять код

make compose-up
make db-default-data

2. Compose db + go run

Подойдёт, если занимаетесь разработкой

make db-compose-up
make db-default-data
make run

Детали


  • Рекомендуемая версия go1.22.6
  • make help выдаёт много полезной информации
  • При POSTGRES_AUTOMIGRATE=True бек поднимет миграции при подключении, если это не удастся, он упадёт с ошибкой
  • Документация rest по адресу http://localhost:8000/api/v1/swagger/index.html
  • make db-default-data добавит в базу некий сет тегов. С пустой базой тегов работать не будет. Требуется установленный psql (postgresql-client-16). Можно и другим образом занести эти данные из migrations/data/default.sql
  • на 1000 порту запускается adminer (см. docker-compose.yml). Креды для доступа (в ui adminer) при параметрах из .env.example: Engine=PostgreSQL Host=database, User=root Password=root Database=root
  • Инструменты для разработки (golangci-lint, swag, migrate) автоматически устанавливаются в bin/ папку в корне проекта. Нужен установленный go.

Документация

Протокол

База данных