Skip to content

Latest commit

 

History

402 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Gamification Hub

Setup

Development dependencies

Ruby 3.4.8

Sugeruję zainstalowanie Ruby przez rbenv - Ruby Version Manager.

$ rbenv install 3.4.8
$ rbenv local 3.4.8

Polecam przeczytać:

Node 25

Aplikacja korzysta z paczek javascriptowych z NPM.

Sugeruję zainstalowanie przy pomocy nvm - Node Version Manager.

Polecam przeczytać:

Postgresql

Nasza baza danych.

Tu jest poradnik jak to skonfigurować na ubuntu: Install and configure PostgreSQL

W pliku config/database.yml w developmencie oraz w testach przewiduję, że nazwa użytkownika będzie postgres, a hasło puste.

Jeżeli u Was to się będzie różnić to się zamieni plik database.yml na database.yml.example i wtedy sami sobie to doprecyzujecie.

Overmind

Jest to program który pozwala na uruchomienie wielu procesów zdefiniowanych w pliku Procfile.dev.

Instalujemy poprzez:

# Uwaga - nie jest to zależność aplikacji, dlatego tak, a nie w Gemfile
$ gem install overmind

Pierwsze uruchomienie aplikacji

Jeżeli posiadasz powyższe zależności to możesz przejść do pierwszego uruchomienia appki.

Wywołaj:

$ bin/setup [--reset] [--skip-server]

Skrypt ten:

  1. Zainstaluje zależności Ruby zdefiniowane w Gemfile.
  2. Zainstaluje zależności JavaScript i CSS zdefiniowane w package.json
  3. Przygotuje bazę danych - utworzy bazy oraz puści utworzone w międzyczasie migracje. Jeżeli wywołane z --reset to od razu wykonuje reset bazy oraz ponownie uruchamia seedy.
  4. Wyczyści logi
  5. Uruchomi aplikację o ile nie podaliśmy flagi --skip-server

Tyle jeżeli chodzi o setup.

Żeby uruchomić aplikację użyj:

$ overmind start

overmind skorzysta ze zmiennych środowiskowych z pliku .overmind.env i uruchomi procesy z Procfile.dev

Logowanie się

Bez konfiguracji dostępne jest tylko logowanie przez email. Dostępne jest 27 testowych kont - 20 studenckich, 5 nauczycielskich, 1 admin organizacji i 1 admin globalny.

Studenci

Email
jan.nowak@example.com
jacek.kowalski@example.com
monika.szczepaniak@example.com
filip.jaskolka@example.com
julia.kaznodzieja@example.com
anna.wisniewska@example.com
piotr.zielinski@example.com
katarzyna.wozniak@example.com
marek.lewandowski@example.com
magdalena.dabrowska@example.com
tomasz.mazur@example.com
agnieszka.kwiatkowska@example.com
lukasz.krawczyk@example.com
barbara.kaczmarek@example.com
marcin.stepien@example.com
weronika.wojcik@example.com
michal.pajak@example.com
karolina.duda@example.com
krzysztof.adamczyk@example.com

Nauczyciele

Email
tomasz.nowakowski@example.com
barbara.kowalczyk@example.com
andrzej.wozniak@example.com
elzbieta.mazur@example.com
mariusz.kaczmarek@example.com

Admini

Email Typ
pawel.wisniewski@example.com organizacja
malgorzata.lewandowska@example.com globalny

Dostęp do skrzynki pocztowej

Na środowisku developmenckim emaila są wysyłane na testową skrzynkę pocztową. Przy logowaniu należy kliknąć w potwierdzający Magic Link. Na WSL istnieje problem przez który wysłane linki nie otwierają się automatycznie. Dlatego po próbie zalogowania się należy wejść na ścieżkę: http://localhost:3000/letter_opener , aby przejrzeć skrzynkę pocztową.

Podstawowa konfiguracja

Podstawa konfiguracja zawiera:

  • jedną grupę fabularną
  • rangi
  • odznaki
  • przedmioty
  • dwa szablony grup aktywności
  • dwóch nauczycieli wspomagających
  • jedenastu studentów

Właścicielem grupy fabularnej jest tomasz.nowakowski@example.com. Nauczycielami w grupie są:

  • barbara.kowalczyk@example.com
  • andrzej.wozniak@example.com Studentami w grupie są:
  • jan.nowak@example.com
  • jacek.kowalski@example.com
  • monika.szczepaniak@example.com
  • filip.jaskolka@example.com
  • julia.kaznodzieja@example.com
  • anna.wisniewska@example.com
  • piotr.zielinski@example.com
  • katarzyna.wozniak@example.com
  • marek.lewandowski@example.com
  • mariusz.kaczmarek@example.com
  • magdalena.dabrowska@example.com
  • tomasz.mazur@example.com
  • agnieszka.kwiatkowska@example.com
  • lukasz.krawczyk@example.com
  • barbara.kaczmarek@example.com

Konfiguracja credentiali

Credentiale służą do tego, aby w bezpieczny sposób przechowywać ukryte dane w formacie YAML w plikach konfiguracyjnych. Wszystkie wrażliwe dane, klucze itd. zarówno testowe jak i produkcyjne powinny właśnie tam być umieszczane.

W repo istnieją pliki credentials/<env>.yml.enc.example. Należy je skopiować (albo zrobi to skrypt bin/setup) i edytować w nich dane jeżeli będzie taka potrzeba.

Jeżeli w Waszym featurze zostaną dodane nowe dane do plików credentials to proszę o aktualizowanie plików .example o jakieś domyślne wartości. Nie commitujcie faktycznych kluczy API itp. do repo.

Aby edytować credentiale należy wklepać:

$ EDITOR="<nazwa-edytora>" bin/rails credentials:edit --environment <nazwa-środowiska>

Przykłady:

# musi być z flagą --wait, aby VSCode czekał aż sami zamkniemy edytowany plik
$ EDITOR="code --wait" bin/rails credentials:edit --environment development

lub

$ EDITOR="nvim" bin/rails credentials:edit --environment test

Credentiale do Usosa

Świeżo po postawieniu aplikacji nie będzie mogli skorzystać z logowania przez usos. Musicie do credentiali dopisać:

usos_uam:
  consumer_key: ...
  consumer_secret: ...
  base_url: https://usosapps.amu.edu.pl
  callback_url: http://localhost:3000/auth/uam_usos/callback

Ponieważ kluczy i secretsów nie trzymamy w repo to piszcie do Jeremiego, aby Wam wysłał :)

Testy

Unit i Integration testy

Testy są pisane w railsowych minitestach. Można uruchomić je wszystkie skryptem:

$ bundle exec rails t

lub po po prostu

$ rails t

Ogólnie to bundle exec jest raczej rekomendowane, ponieważ wtedy wywołane przez nas skrypty zawsze są uruchamiane w kontekście projektu, a nie w kontekście globalnym.

Pojedyncze testy można uruchomić mając rozszerzenie Ruby LSP do VSCode:

Run and Run in terminal

Niestety nie wiem jak w Neovimie to zrobić, @ewez43 możesz sobie dopisać jak będziesz wiedziała :D

Testy E2E

Uwaga! Jeszcze niedodane! Testy Playwright dodam nam i skonfiguruję jak będziemy zaczynać stylizować naszą appkę.

Testy end to end pisane są w Playwright. Można go uruchomić skryptem:

$ bin/playwright

Lintery

W projekcie skonfigurowane są lintery do Ruby oraz JavaScript/TypeScript:

  • Rubocop - Ruby
  • ESLint - JavaScript/TypeScript

Postarałem się o to, abyście mieli już gotowe automatyczne formatowanie, ale prawdopodobnie będziecie musieli trochę rzeczy dokonfigurować.

Na pewno potrzebujecie rozszerzeń:

Rubocop

Zasady zdefiniowane są w .rubocop.yml

Możecie w konsoli sprawdzić ile naruszeń jest w naszej aplikacji:

bundle exec rubocop

Jeżeli chcecie automatycznie poprawiać błędy to musi być z flagą -A:

bundle exec rubocop -A

ESLint

Zasady zdefiniowane są w eslint.config.mjs.

Deployment

TBD - jeszcze nie robiliśmy

About

Aplikacja utworzona w ramach projektu inżynierskiego.

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages