Repozytorium to szablon umożliwiający tworzenie rozwiązań do zestawów zadań w różnych motywach.
Przykładowe repozytorium wykorzystujące ten szablon: Rosnotes Dyskretna.
Użycie szablonu polega na wycięciu treści zadań, nazwaniu ich desc_{numer zadania}.png i umieszczeniu w folderach Zestaw {numer zestawu} {nazwa zestawu} w folderze Solutions.
Wypełniony w ten sposób folder Solutions jest gotowy do tworzenia zeszytów oraz dalszego rozwijania projektu. Wystarczy jeszcze tylko podać nazwę przedmiotu w skrypcie Organize/Organize.py w klasie configu i uruchomić ten skrypt.
Ustawianie repozytorium GitHub
Projekt w dużej mierze korzysta z GitHub Actions (link do tego, co to jest). Informacje o użytych akcjach znajdują się w pliku README w katalogu .github/workflows.
- Wygenerowanie tokena GitHub
Na początku wygeneruj token GitHub (link jak to zrobić (30s)). Token trzeba wygenerować z odpowiednimi ustawieniami.
- Ustawienie sekretów
Następnie, w sekretach GitHub, w ustawieniach repozytorium, w zakładce Secrets and variables > Actions, ustaw token oraz hasła do zeszytów, które znasz (nie trzeba podawać wszystkich, README będzie zawierać tylko te zeszyty, do których hasło zostało podane lub te, które nie zawierają hasła).
Wszystkie sekrety muszą być nazwane dokładnie tak samo.
- Udzielenie zgody workflow
Na sam koniec udziel workflowowi zgody na zmiany w repozytorium. Robi się to w ustawieniach repozytorium w zakładce Actions > General.
Tak ustawiony projekt jest gotowy do testowania i dodawania zadań. Każde nowe zadanie będzie automatycznie dodawane do linków w wydaniach (releases) oraz do README, a także do mechanizmu testowania.
Uwaga: Projekt posiada workflow, który aktualizuje każdy projekt Rosnotes utworzony na podstawie szablonu. Dzięki temu mogę pracować tylko na repozytorium głównym, a zmiany są codziennie o 24:00 synchronizowane z każdym repozytorium potomnym Rosnotes. Prowadzi to jednak do sytuacji, w której edycja plików w repozytoriach potomnych skutkuje przywracaniem ich pierwotnej zawartości, chyba że wykluczymy dany plik z mechanizmu aktualizacji, dodając go do listy plików wykluczonych w .github/workflows/exclude-list.txt. Należy jednak pamiętać, że wykluczenie pliku spowoduje, że nie będzie on wspierany przez zmiany w głównym repozytorium Rosnotes.
Projekt składa się z 4 głównych folderów:
Solutions– folder z rozwiązaniami zadań.Notebooks– zeszyty do pobrania w różnych motywach zawierające szablony oraz rozwiązania.Organize– skrypt do przenoszenia rozwiązań z zeszytów do folderuSolutionsi synchronizacji między motywami.github/workflow- aktualizacja Release po każdej zmianie, zapewniając, że zeszyty wNotebookssą aktualne.
W zeszycie każde zadanie ma szablon, a rozwiązane zadanie będzie mieć dodatkowo rozwiązanie na następnej stronie.
Aby pobrać zeszyt, przejdź do Notebooks i kliknij nazwę motywu.
Po dodaniu klucza API do ChatGPT w zmiennych środowiskowych (secret variables), można wygenerować rozwiązania do każdego zadania bez potrzeby ich samodzielnego rozwiązywania, dzięki czemu od początku ma się dostęp do kompletnych odpowiedzi.
4 motywy publiczne oraz 7 motywów encrypted. W motywach publicznych ukryte są podpowiedzi do haseł motywów encrypted. Hasło zawsze będzie także nazwą danego motywu, który odblokowujesz.
Każdy zeszyt ogranicza się do trzech kolorów: Głównego do pisania, Dodatkowego do zaznaczania, podkreślania itp., oraz Trzeciego do wyników. Na początku zeszytu znajduje się informacja, który kolor pełni jaką funkcję, aby łatwo można było znaleźć odpowiedzi na zadania.
Wystarczy wypełnić szablon, dodać plik PDF Twojego zeszytu do folderu Organize i uruchomić skrypt znajdujący się w tym folderze. Wszystkie motywy zostaną automatycznie zaktualizowane o Twoje rozwiązania.
W folderze startery znajdują się startery zeszytów. Możesz edytować i zastąpić istniejącą stronę własną, tworząc wersję zeszytu z innymi stronami, kolorami lub czcionką.
Motyw rozwiązania w pliku README jest losowy, przy czym istnieje 92% szans na motyw publiczny oraz 8% na motyw Encrypted!
Błędy w rozwiązaniach lub w skrypcie zgłaszaj na Issues lub prywatnie.
Szczegóły projektu znajdują się w odpowiednich folderach. Wystarczy przejść do interesującej części projektu i zapoznać się z jej README.
- Organize – korzystanie z projektu i dodawanie zadań,
- Notebooks – linki do pobrania zeszytów,
- .github/workflows – automatyzacja i testy,
- Solutions – statystyki dotyczące częstości występowania motywów w rozwiązaniach,
- Organize/src – mechanizm projektu oraz wyjaśnienie kodu,
- Organize/src/starters – pliki pdf, na podstawie których są generowane motywy.