Go to file
Daniel Schädler 9f1807ab4b Test timer_end is in show tournament 2025-03-14 12:47:06 +01:00
app Include timer_end in TournamentSerializer 2025-03-14 12:44:22 +01:00
bin Update to rails 7.0.3 2022-05-19 09:08:36 +02:00
chart Add simple health check 2022-06-10 19:18:08 +02:00
config add timer_end to tournaments model 2025-03-08 17:08:48 +01:00
db Add migration for timer 2025-03-09 21:27:38 +01:00
doc Regenerate SVGs 2018-11-30 14:20:57 +01:00
docker Add openssl 2024-04-12 01:52:48 +02:00
public Initial commit 2018-10-30 15:52:46 +01:00
spec Test timer_end is in show tournament 2025-03-14 12:47:06 +01:00
.dockerignore Update to rails 7.0.3 2022-05-19 09:08:36 +02:00
.gitignore Ignore Database schema and coverage folder 2018-11-29 10:41:55 +01:00
.gitlab-ci.yml Always run tests 2024-04-10 23:23:02 +02:00
.rspec Initialize RSpec setup 2018-11-13 16:56:16 +01:00
.rubocop.yml Readd current version of rubocop 2021-08-15 14:29:11 +02:00
.ruby-version Update to ruby 3.1.2 2022-05-19 21:59:14 +02:00
Gemfile Use devise_token_auth fork to fix authentication 2022-05-22 14:25:38 +02:00
Gemfile.lock REVERT ME run only focused tests 2025-03-08 16:12:01 +01:00
README.md Add idea list 2024-04-13 18:37:01 +02:00
Rakefile Apply rubocop formatting 2018-11-10 15:50:27 +01:00
config.ru Apply rubocop formatting 2018-11-10 15:50:27 +01:00
docker-compose.yml Use production env (defined in Dockerfile) 2019-04-17 09:15:39 +02:00

README.md

turniere-backend

Build Status pipeline status Coverage Status Codacy Badge Quality Gate Status Maintainability

Ruby on Rails application serving as backend for turnie.re

Quick install with Docker

turnie.re - Quickstart

Installation

# install dependencies
$ bundle config set with "development test"
$ bundle install
# run migrations
$ rails db:migrate

Running

Development (without mail confirmation and separate database):

$ RAILS_ENV=development rails server

Testing

Running tests works as follows:

bundle exec rspec

Docker

Registry

You can find all our Dockerfiles in the docker directory. They depend on each other in the following order: productiondevelopmenttest This means, to build the development image, you have to build the production image first and tag it with the corresponding tag that is mentioned in the FROM line in the development Dockerfile. To build all images do:

cd turniere-backend
docker build -t registry.gitlab.com/turniere/turniere-backend/production -f docker/production/Dockerfile .
docker build -t registry.gitlab.com/turniere/turniere-backend/development -f docker/development/Dockerfile .
docker build -t registry.gitlab.com/turniere/turniere-backend/test -f docker/test/Dockerfile .

This is done to leave test and development dependencies out of the production container. Also we have a dedicated test container which runs the tests reproducible when you start it, but can also run the normal rails server to somewhat debug problems occuring in the test suite if needed.

While developing, if you want to use the development docker container, it should™ be sufficient to mount the root of this repository into the /app folder within the docker container to avoid building it over and over again. Only rebuilding the development container is not sufficient, as the development Dockerfile does not have a COPY Statement

Generate diagrams

$ rails diagram:all_with_engines

Ideen

  • backend könnte "advancing" an ein team mit dranschreiben; das könnte das frontend anzeigen
  • alle funktionen der beamer ansichten müssen per query param gehen; beamer dann headless möglich (raspberry ohne maus/tastatur)
  • feature im frontend für "team merken" damit man automatisch zur eigenen gruppe/aktuellstes game scrollt
  • timer auf dem beamer anzeigen für aktuelle runde
  • filter für "aktuelle runde" für den beamer
  • beamer modus (vollbild ohne cursor)
  • qr codes drucken für ergebnisausgabe und auf allen beamern anzeigen
  • admin frontend automatisch aktualisieren
  • admin frontend anzeigen wie "alt" die daten sind, also wann wurde die seite zuletzt aktualisiert
  • näcshte spiele sollten anzeigen wer da spielt (team a / team b) wenns direkt drunter ist und ansonsten "gewinner achtelfinale 3"
  • erste playoff spiele sollten "1. gruppe 15 vs 2. gruppe 16" anzeigen
  • admin frontend muss tische auch anzeigen
  • WICHTIG UND EZ: gruppenphase in der gleichen gruppe sollten erst finale gegeneinander spielen (dazu nicht aus der nächsten gruppe sondern einmal advancing teams von vorne und einmal von hinten, oder offset von hälfte der weiterkommenden teams)
  • beim eintragen einer runde direkt den nächsten tisch anzeigen
  • spiel um platz 3