2.7 KiB
2.7 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)
-
Sklonuj repozytorium:
git pull https://git.linuxiarz.pl/gru/lista_zakupowa_live.git cd lista_zakupowa_live -
Utwórz i uzupełnij plik
.env(zobacz.env example). -
Utwórz środowisko i zainstaluj zależności:
python -m venv venv source venv/bin/activate pip install -r requirements.txt -
Uruchom aplikację:
flask --app app.py run
Deploy z Docker Compose - stack (zalecana)
- 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"'