Aplikacja List Zakupów
Aplikacja webowa do zarządzania listami zakupów z obsługą użytkowników, OCR paragonów, statystykami i trybem współdzielenia.
Wymagania
- Docker
Instalacja
-
Sklonuj repozytorium:
git pull https://git.linuxiarz.pl/gru/lista_zakupowa_live.git cd lista_zakupowa_live -
Skonfiguruj
.envz pliku.env.example
2.1 Uruchom: (pgsql)
bash deploy_docker.sh pgsql
2.2 Uruchom: (mysql)
bash deploy_docker.sh mysql
2.3 Uruchom: (sqlite)
bash deploy_docker.sh sqlite
2.3 Restart:
bash deploy_docker.sh pgsql restart
lub
bash deploy_docker.sh sqlite restart
Aplikacja będzie dostępna pod http://localhost:8000.
Domyślne dane logowania - konfigurowane z pliku .env
- Główne hasło systemowe:
admin - Admin:
admin/admin123
Konfiguracja bazy danych
Obsługiwane silniki: sqlite, pgsql, mysql.
Ustaw DB_ENGINE oraz odpowiednie zmienne w .env:
Przykład dla PostgreSQL:
DB_ENGINE=pgsql
DB_HOST=db
DB_PORT=5432
DB_NAME=myapp
DB_USER=user
DB_PASSWORD=pass
CLI
Opis komend administracyjnych znajduje sie w pliku KOMENDY_CLI.txt.
Komendy CLI uruchamiamy wewnatrz kontenera aplikacji. Najwygodniej wejsc do katalogu projektu i wykonac polecenie przez docker compose exec app.
Przykladowe:
cd /opt/lista_zakupowa_live
docker compose -f docker/compose.yml exec app sh -c 'flask lists copy-schedule --source-list-id 393 --when "2026-03-22 11:30" --owner admin'
Dodatkowe przyklady:
docker compose -f docker/compose.yml exec app sh -c 'flask lists move --list-id 393 --when "2026-03-23 08:00"'
docker compose -f docker/compose.yml exec app sh -c 'flask lists rename --list-id 393 --title "Zakupy na poniedzialek"'
docker compose -f docker/compose.yml exec app sh -c 'flask lists create-from-template --template-id 7 --owner admin --when "2026-03-24 09:15" --title "Poranna lista"'
Uproszczenie UI i skalowanie
Interfejs korzysta z jednokolorowych, konturowych ikon SVG zapisanych lokalnie
w shopping_app/static/icons/tabler/. Ikony są wykorzystywane także przez
JavaScript (shopping_app/static/js/ui_icons.js). Nie wymagają CDN.
W .env można ustawić:
UI_SCALE=100
Obsługiwane wartości: 100 (domyślnie), 90, 80, 70. Pozostałe wartości
są traktowane jako 100. Zmiana wymaga ponownego uruchomienia procesu Flask
(np. odtworzenia kontenera aplikacji). Przy 100 globalne skalowanie nie jest
włączane. Niższe wartości pomniejszają również tekst i obszary dotykowe,
dlatego na telefonach rekomendowane jest 100.
Opcjonalnie: aby zastąpić dołączone konturowe SVG oryginalnymi plikami projektu Tabler Icons (licencja MIT), wykonaj przy dostępie do Internetu:
python _tools/sync_tabler_icons.py
Skrypt pobierze komplet oryginalnych ikon z repozytorium Tabler, odtworzy
lokalny sprite.svg, bez wprowadzania zależności sieciowej w czasie działania
aplikacji. Dołączone SVG mają spójny styl Tabler, ale bez uruchomienia tego
skryptu nie należy traktować ich jako zweryfikowanych oryginalnych plików
Tabler Icons.
Aktualizacja istniejącej instalacji: skopiuj zmodyfikowane pliki do katalogu
projektu, zachowaj lokalne .env, a następnie odtwórz kontener app np.:
docker compose --env-file .env -f docker/compose.yml up -d --force-recreate app
Nie używaj trybu deploy skryptu deploy_docker.sh do wdrażania zmian tylko
z rozpakowanego ZIP-a, ponieważ uruchamia on git pull i może nadpisać lokalny
kod. Skalowanie przetestowano w Chromium; na innych silnikach oraz na
fizycznych telefonach należy dodatkowo zweryfikować działanie modali i układ.