Files
lista_zakupowa_live/README.md
2026-03-31 11:07:38 +02:00

3.0 KiB

Aplikacja List Zakupów

Prosta aplikacja webowa do zarządzania listami zakupów z obsługą użytkowników, OCR paragonów, statystykami i trybem współdzielenia.

Główne funkcje

  • Logowanie i zarządzanie użytkownikami (admin/user)
  • Tworzenie list zakupów z pozycjami i ilością
  • Wgrywanie paragonów (podstawowa obsługa OCR)
  • Archiwizacja i udostępnianie list (publiczne/prywatne)
  • Statystyki wydatków z podziałem na okresy, statystyki dla użytkowników
  • Panel administracyjny (statystyki, produkty, paragony, zarządzanie, użytkowmicy)
  • Tokeny API administratora i endpoint do pobierania ostatnich wydatków
  • Ujednolicony UI formularzy, tabel i przycisków oraz drobne usprawnienia UX

Wymagania

  • Python 3.9+
  • Docker (opcjonalnie dla produkcji)

Instalacja lokalna (deweloperska)

  1. Sklonuj repozytorium:

    git pull https://git.linuxiarz.pl/gru/lista_zakupowa_live.git
    cd lista_zakupowa_live
    
  2. Utwórz i uzupełnij plik .env (zobacz .env example).

  3. Utwórz środowisko i zainstaluj zależności:

    python -m venv venv
    source venv/bin/activate
    pip install -r requirements.txt
    
  4. Uruchom aplikację:

    flask --app app.py run
    

Deploy z Docker Compose - stack (zalecana)

  1. Skonfiguruj .env.

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

Aplikacja będzie dostępna pod http://localhost:8000.

Domyślne dane logowania

  • 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"'

Uwagi:

  • daty przyjmuja format YYYY-MM-DD albo YYYY-MM-DD HH:MM
  • dla samej daty aplikacja ustawia godzine 08:00 UTC
  • identyfikator uzytkownika mozna podac jako login albo ID
  • komendy copy-schedule i duplicate-many kopiują pozycje i przypisane kategorie, ale nie kopiują wydatkow ani paragonow