/vtb

Voting service backend for VTB's /more.tech hackaton. September 14-15, 2019. This got the 1st place :)

Primary LanguageElixir

Команда web 31: backend

Реализованные фичи:

  • GraphQL API
  • Состояния голосвания
  • Определение конфликтов
  • Нотифкации по email
  • Аутентификация по JWT
  • Прозрачная модель данных
  • Валидация входных данных
  • Отработвка бизнес-логики для двух роле
  • Взвешенные голоса в зависимости от должности

Архитектура

  • Разделение на слои бизнес-логи (lib/vtb) и веб-приложения (lib/vtb_web)
  • Разделение GraphQL-слоя на схему и резолверы
  • Слой абстракции БД

Стек

  • Платформа: BEAM, OTP
  • Язык: Elixir
  • Фреймворк: Phoenix
  • БД: Postgres
  • ORM: библиотека Ecto
  • GraphQL: библиотека Absinthe
  • JWT: библиотека Guardian
  • Email: бибилотека Bamboo
  • Загрузка файлов: Arc