# HS3 Baza zasobów Dashboard Skrypt, który generuje podsumowanie [Bazy Wiedzy zasobów Hackerspace Trójmiasto](https://kb.hs3.pl/docs) w formie statycznej strony internetowej. ## Uruchomienie połączenia z drukarką etykiet Potrzebne, by działał przycisk w kolumnie `print`. Po kliknięciu, nastąpi próba połączenia się z drukarką Brother PT-E550W, pod adresem IP zdefiniowanym w `PRINTER_IT`, w celu wydruku naklejki z kodem QR. ```bash uv venv --python 3.11 source .venv.bin/activate uv sync fastapi dev --port 31337 labeler/adapter/fastapi_srv.py export PRINTER_IT=192.168.0.147 ``` W razie problemów, spróbuj alternatywnych komend: ```bash source .venv/Scripts/activate uv run -- fastapi dev --port 31337 labeler/adapter/fastapi_srv.py ``` ## Sposób działania 1. Baza Wiedzy znajduje się na Discourse Hackerspace Trójmiasto i jest dostępna publicznie. Projekt wykorzystuje Discourse REST API do pobrania listy zasobów. 1. Lista zasobów zapisana jest w pliku csv `zasoby.csv`. 1. Skrypt tworzy statyczną stronę internetową na podstawie pliku `.csv`. 1. Strona jest hostowana przy pomocy GitHub Pages. ## Możliwości generatora bazy zasobów csv - pobieranie listy wszystkich zasobów z wybranej kategorii - pobieranie ID, tagów i treści posta każdego zasobu - wyłuskanie z treści posta informacji: - nazwa przedmiotu - miejsce zamieszkania - ilość - opiekunowie - oto jak powinien wyglądać ostateczny wpis: ``` ID, nazwa, miejsce, ilość, opiekunowie, tagi ``` ## Automatyczna aktualizacja Żeby działały automatyczne aktualizacje przy użyciu GitHub Actions należy w sekretach dodać sekret o nazwie `PAT` którego wartością jest Personal Access Token z uprawnieniami do modyfikowania repozytorium. ## Możliwości dashboard'u - filtrowanie bazy zasobów po tagach - sortowanie alfabetyczne bazy zasobów po dowolnej kolumnie - linki do zasobu na Discourse w ID zasobu - łatwa zmiana ilości kolumn dashboardu ## Co chcę dodać w przyszłości - wizualizacja statystyk z bazy zasobów - generowanie drugiego pliku csv służącego do wygenerowania naklejek z kodem QR ## Dokumentacja - [Discourse REST API](https://docs.discourse.org/) - [hbrylkowski/labeling_bot](https://github.com/hbrylkowski/labeling_bot)