Skip to content
Snippets Groups Projects
Select Git revision
  • renovate/ruby
  • renovate/bootsnap-1.x-lockfile
  • renovate/selenium-webdriver-4.x-lockfile
  • main default protected
  • eh22 protected
  • update-readme
  • update-rubocop
7 results

rescheduled

  • Clone with SSH
  • Clone with HTTPS
  • Felix Eckhofer's avatar
    tribut authored
    afb3324c
    History

    C3Lingo rescheduled

    Rapid assignment of shifts for chaos events

    Overview

    Technologies:

    Dev environment

    The project comes with a devcontainer for VSCode and compatible editors. Simply open the project folder in Code (or using devcontainer open <path>) and after a few seconds, a suitable container should be ready.

    Run bin/dev in the integrated terminal to start the dev webserver and the tailwind watch job (see Procfile.dev for details). Access your local rescheduled at http://127.0.0.1:3000.

    Secrets

    The application requires some secrets, as of writing these include:

    • filedrop_user
    • filedrop_password
    • heartbeat_deen
    • heartbeat_more
    • telegram_bot_token

    You can supply the secrets by running rails credentials:edit or pass them as environment variable in upper case (e.g. FILEDROP_USER).

    Preparation for an event

    tbd.

    • talks about seeds
    • set "relevant stages"
      relevant = ["Saal 1", "Saal ZIGZAG", "Saal GLITCH", "Stage HUFF", "Stage YELL", "Canceled talk"]
      conf=Conference.find_by(slug: "38c3")
      conf.relevant_stages=conf.stages.select { |val| relevant.include?(val[:name]) }
    • sort stages
      Stage.where(name: "Saal 1").update(weight: 10)
      Stage.where(name: "Saal GLITCH").update(weight: 20)
      Stage.where(name: "Saal ZIGZAG").update(weight: 30)
      Stage.where(name: "Stage HUFF").update(weight: 40)
      Stage.where(name: "Stage YELL").update(weight: 50)

    In production

    See rescheduled-deploy for a full docker-compose stack and more explanations.

    Colors (darkmode)

    • text: text-slate-300

    • text (overlay): text-slate-200

    • text light: text-slate-400

    • logo: text-white

    • highlight: text-red-500

    • dark background: bg-zinc-700

    • light background: bg-gray-900

    • overlay: bg-gray-600

    • input: bg-zinc-900

    • shadow: gray-400

    Tips and Tricks

    Helpful rails tasks

    By running bin/rails <command> you can trigger some helpful actions, such as

    • rails c[onsole]: Start interactive ruby shell
    • rails db: Start sqlite shell with the currently used DB
    • rails db:migrate: Run pending DB migrations, automatically done by docker image on start
    • rails db:seed (Re-)import DB seeds from db/seeds.rb
    • rails secret generate a random secret, e.g. for secret_key_base
    • rails generate Powerful tool to generate boilerplate, run it to see list of options

    In rails console

    • Manually trigger sync job

      FetchConferenceDataJob.perform_now("38c3")
    • Reset user password

      pw = SecureRandom.alphanumeric(12)
      u = User.find_by(name:"username_here")
      u.update(password: pw, password_confirmation: pw)
      u.save!
    • Send a test message to Telegram

      TelegramGroupChatNotificationJob.perform_now(text: "der habicht sieht die gegenwart")
    • List all notes angels put in their candidacies:

      Candidate.includes(:user, :session).where.not(note: [nil, ""]).pluck('sessions.title','users.name', :note)