--- title: Test DB emoji: 🧾 colorFrom: indigo colorTo: blue sdk: docker pinned: false --- # Generator faktur Projekt oferuje dwa sposoby tworzenia faktur: prostą aplikację CLI oraz rozbudowany panel webowy z backendem Flask i estetycznym PDF-em. ## Co w środku? - **CLI** – szybkie narzędzie terminalowe do pojedynczych dokumentów. - **Frontend + backend** – logowanie, edycja danych firmy, inteligentny formularz nabywcy, historia faktur i eleganckie PDF-y z logo. --- ## Aplikacja webowa ### Wymagania - Python 3.8+ - `pip install -r requirements.txt` - (opcjonalnie) `NEON_DATABASE_URL` – gdy ustawisz połączenie z bazą PostgreSQL/Neon, klienci i faktury są zapisywani w bazie zamiast w pliku. ### Uruchomienie ```powershell python server.py # aplikacja działa na http://localhost:5000 ``` ### Funkcje - onboarding z konfiguracją firmy i logo, - logowanie z tokenem w `sessionStorage`, - edycja sprzedawcy i zarządzanie logo (PNG/JPG do 512 KB), - formularz nabywcy z wyszukiwarką (po nazwie lub NIP-ie, wyniki tylko z konta zalogowanego użytkownika), - dynamiczna tabela pozycji licząca netto/VAT/brutto oraz obsługę stawek 23/8/5/0/ZW/NP, - sekcja zwolnienia podatkowego i automatyczna nota prawna, - dashboard z filtrami dat, wykresem i historią ostatnich 200 faktur, - eksport PDF spójny z UI (logo nad sprzedawcą, kapsułki z sumami, czytelna tabela). > PDF-y generuje [jsPDF](https://cdnjs.com/libraries/jspdf) ładowany z CDN – przeglądarka musi mieć dostęp do internetu. ### Reset danych - tryb plikowy: usuń `web_invoice_store.json`, aby przejść onboarding ponownie, - tryb Neon: wyczyść tabele w bazie lub użyj nowej bazy. --- ## Aplikacja CLI Lekki kreator w terminalu zapisujący dokumenty do katalogu `invoices/` i historię w `invoice_data.json`. ### Uruchomienie ```powershell python invoice_app.py ``` 1. Przy pierwszym starcie wpisz dane firmy i ustaw hasło. 2. Przy kolejnych startach logujesz się, uzupełniasz dane pozycji i (opcjonalnie) klienta. 3. Utworzona faktura trafia do `invoices/`, a historia do pliku JSON. ### Reset CLI Usuń katalog `invoices/` oraz plik `invoice_data.json`, aby rozpocząć od nowa (historia zostanie utracona).