📥 Pobierz najnowszą wersję
Aktualna wersja: 0.3.21 (2025-10-26)
Pobierz APK (63 MB)API Version: 1.4.1 | Backend: Laravel 8
Wersja 0.3.21 NAJNOWSZA MAJOR
📅 2025-10-26
💳 Główny cel: Pełna integracja płatności PayU!
Użytkownicy mogą teraz kupować książki bezpośrednio w aplikacji przez bramkę płatniczą PayU (karty, BLIK, przelewy).
💳 System Płatności PayU:
- Pełna integracja z PayU Payment Gateway (sandbox i produkcja)
- WebView do bezpiecznej obsługi płatności w aplikacji
- Wsparcie dla kart (VISA, Mastercard), BLIK, przelewów bankowych
- Automatyczna weryfikacja statusu płatności przez webhook
- Generowanie unikalnych kluczy licencyjnych po udanej transakcji
🛒 Nowe Funkcje Zakupowe:
- Przycisk "KUP TERAZ" w katalogu książek
- Historia zakupów z statusami (oczekuje/przetwarzanie/opłacone/anulowane)
- Sprawdzanie statusu płatności w czasie rzeczywistym
- Automatyczna aktywacja dostępu po potwierdzeniu płatności
- Klucze licencyjne w formacie XXXX-XXXX-XXXX-XXXX
🔒 Bezpieczeństwo Płatności:
- Weryfikacja podpisu PayU (OpenPayu-Signature header)
- Autoryzacja API przez Bearer token
- Walidacja kwoty z bazy danych (bez manipulacji ceny)
- HTTPS dla wszystkich transakcji
- Audit logging każdej transakcji (user, IP, timestamp)
🔧 Backend API v1.4.1:
- Nowy endpoint: POST /api/mobile/purchase (inicjacja zakupu)
- Nowy endpoint: GET /api/mobile/purchase/{id}/status (sprawdzenie statusu)
- Nowy endpoint: POST /api/payu/notify (webhook PayU)
- Rozszerzona tabela mobile_purchases o 4 kolumny PayU
- Integracja OpenPayU PHP SDK 2.3.6
📱 Frontend (Flutter):
- Nowa zależność: webview_flutter ^4.4.2
- Ekran inicjacji zakupu z wyborem książki
- WebView PayU z obsługą redirectów (sukces/anulowanie)
- Widget statusu zakupu (pending/processing/completed)
- Integracja z API service (purchaseBook, getPurchaseStatus)
🧪 Środowisko Testowe (Sandbox):
- Karta testowa VISA: 4444 4444 4444 4441 (CVV: 123)
- Karta testowa Mastercard: 5555 5555 5555 4444
- Kod BLIK testowy: 777777
- Środowisko PayU: https://secure.snd.payu.com/
📊 Statystyki Wdrożenia:
- Fazy implementacji: 3 (Database + Controllers + Deployment)
- Pliki zmodyfikowane: 20+ (backend + frontend)
- Linie kodu: +1,200 dodane, -50 usuniętych
- Nowe kolumny bazy: 4 (payu_order_id, payu_ext_order_id, payment_method, payment_status)
- Czas implementacji: ~24 godziny robocze
📚 Dokumentacja:
- GRAPHITI_PayU_Complete.md (15 KB, 3 fazy integracji)
- CHANGELOG_v0.3.21.md (szczegółowy opis integracji)
- API_DOCUMENTATION.md (zaktualizowane endpointy)
- Branch: feature/payu-integration
🚀 Planowane Ulepszenia (v0.3.22+):
- Subskrypcje okresowe (miesięczne/roczne)
- Kody promocyjne i kupony rabatowe
- Historia transakcji z exportem do PDF
- Apple Pay & Google Pay
- System zwrotów i reklamacji (14 dni)
- Automatyczne generowanie faktur VAT
Wersja 0.3.20
📅 2025-10-21
🎨 Główny cel: Usprawnienia UI oraz nowy dedykowany ekran szczegółów książki w Czytelni!
Aplikacja teraz ma osobny widok do czytania (Reading Room Detail) i komercyjny widok (Shop Detail).
📖 Nowy Ekran Szczegółów Czytelni:
- Utworzono
ReadingBookDetailScreen- dedykowany widok dla Czytelni - Fokus na doświadczenie czytania: przeglądarka PDF, postęp, info DRM
- Oddzielony od komercyjnego
BookDetailScreen(Sklep) - Funkcje: postęp czytania (35% placeholder), statystyki, zakładki
- SliverAppBar z tłem okładki książki
- Konwersja modelu Book → Publication dla czytnika PDF
🛒 Usprawnienia UI Sklepu (Biblioteki):
- Zmieniono "Polecane" na "Książki" (biały kolor)
- Usunięto przycisk "Zobacz wszystkie"
- Całkowicie usunięto sekcję Kategorii
- Zmniejszono odstępy między tytułem a karuzelą (8px → 4px)
- Czystszy, minimalny układ
📚 Usprawnienia UI Czytelni:
- Cały tekst zmieniony na biały (poza "Czytelnia" w AppBar)
- Zwiększona wysokość kontenera okładek (childAspectRatio: 0.65 → 0.55)
- Lepsze wyświetlanie pełnych okładek PNG
- Dodano AppBackground z gradientem (spójność ze Sklepem)
- Dodano logo sygnet.png w AppBar
👤 Usprawnienia UI Profilu:
- Dodano AppBackground z gradientem
- Dodano logo sygnet.png w AppBar
- Format tytułu: "Profil [Imię]" (gotowy pod nowe API)
- Spójna stylistyka ze Sklepem i Czytelnią
- Usunięto stary widget AppBarWithLogo
⚙️ Aktualizacje Techniczne:
- Implementacja serwisu pobierania książek (API v1.4)
- Wsparcie dla pobierania pełnych książek
- myBooksProvider wyciąga purchasedAt z obiektów purchase
- Dodano CachedNetworkImage dla wszystkich wyświetleń logo
- Gotowość pod API v1.4.1 (rozszerzone dane profilu)
🎯 Architektura:
- Shop (Sklep): Komercyjny widok, ceny, przycisk zakupu
- Reading Room (Czytelnia): Widok czytania, postęp, PDF viewer
- Separacja: Dwa osobne ekrany szczegółów dla różnych celów
- UX: Użytkownik wie gdzie jest (kupowanie vs czytanie)
📊 Statystyki:
- Nowych ekranów: +1 (ReadingBookDetailScreen)
- Zmodyfikowanych widoków: 4 (Shop, Reading Room, Profile, AppBar)
- Usunięte elementy UI: 3 (Categories, "Zobacz wszystkie", stary AppBarWithLogo)
- Spójna stylistyka: gradient + sygnet.png w całej aplikacji
Wersja 0.3.18 + API v1.4 MAJOR
📅 2025-10-21
🎉 Główna funkcja: Pobieranie pełnych książek jako pojedynczy plik PDF!
Teraz możesz pobrać całą książkę (11-15 MB) zamiast pobierać dziesiątki rozdziałów osobno.
📚 Pobieranie Pełnych Książek:
- 📘 AUTYZM w praktyce pediatrycznej (12 MB, 11 rozdziałów)
- 📗 Pediatria w praktyce lekarza POZ (15 MB, 139 rozdziałów)
- 📙 Poradnik Dyzuranta (11 MB, 81 rozdziałów)
- 📕 Gastroenterologia dziecięca (11 MB, 3 rozdziały)
🔐 Bezpieczeństwo i Weryfikacja:
- Autoryzacja przez token API
- Weryfikacja typu zakupu (tylko pełna książka, nie pojedyncze rozdziały)
- Sprawdzanie statusu licencji (aktywna/wygasła)
- Audit logging - rejestracja każdego pobrania (user ID, IP, data, czas)
- Pliki PDF przechowywane poza katalogiem publicznym
🔧 Backend API v1.4:
- Nowy endpoint: GET /api/mobile/book/{bookId}/download?token=...
- 4 nowe pełne książki PDF w storage (49 MB razem)
- Zaktualizowana tabela mobile_books (pdf_full_url, pdf_full_size_mb)
- Rozszerzone audit logging w mobile_downloads
- Dokumentacja API zaktualizowana do v1.4
✅ Testy i Weryfikacja:
- 7/7 testów lokalnych zakończonych sukcesem (100%)
- Test bez autoryzacji → HTTP 401 ✅
- Test z autoryzacją i zakupem → HTTP 200 + PDF ✅
- Test bez zakupu → HTTP 403 ✅
- Test z zakupem rozdziału → HTTP 403 (wymaga pełnej książki) ✅
- Wszystkie 4 książki pobrane poprawnie ✅
- Audit logging zweryfikowany ✅
- Endpoint działający na produkcji ✅
📊 Statystyki:
- Endpointów API: 18 → 19 (+1 nowy)
- Wersja API: 1.3 → 1.4
- Plików PDF w storage: 234 → 238 (+4 pełne książki)
- Rozmiar storage: +49 MB
- Czas wdrożenia: 45 minut (testy + deployment)
📦 Do Zaimplementowania w Aplikacji:
- Przycisk "Pobierz Pełną Książkę" w bibliotece
- Progress bar dla dużych plików (11-15 MB)
- Walidacja dostępnego miejsca na urządzeniu
- Ostrzeżenie o rozmiarze pliku przed pobraniem
- Możliwość anulowania pobierania
📝 Dokumentacja:
- API_DOCUMENTATION.md zaktualizowana do v1.4
- API_INVENTORY.md zaktualizowana (238 plików PDF)
- 2 nowe epizody Graphiti (implementation + deployment)
- Kompletna dokumentacja testów
- CHANGELOG_v0.3.18.md utworzony
Wersja 0.3.17
📅 2025-10-21
🎨 Usprawnienia graficzne:
- Splash screen: logo_white_aura.png (3x większy rozmiar, bez tła)
- Menu boczne (Drawer): logo_white.png (bez tła)
- Ekrany aplikacji: logo.png poprzez widget AppBarWithLogo
- Zsynchronizowane gradienty tła we wszystkich ekranach
🔐 Krytyczne poprawki autentykacji:
- Naprawiono autentykację API - zmiana z nagłówka X-API-Token na parametr zapytania ?token=...
- Dodano kontrolę autentykacji z monitem o logowanie dla niezalogowanych użytkowników
🐛 Poprawki błędów:
- Naprawiono parsowanie JSON w Czytelni (Reading Room)
- Rozwiązano problemy z crashami aplikacji
✨ Nowe funkcje:
- Dodano przycisk testowy Splash Screen w menu
📦 Parametry techniczne:
- Rozmiar APK: 65.0 MB
- Build number: 17
- Czas kompilacji web: 26.2s
Wersja 0.3.16
📅 2025-10-20
🔥 Krytyczne poprawki:
- Naprawiono autentykację API - zmiana z X-API-Token header na query parameter ?token=...
- Naprawiono crash w Czytelni - utworzono model MyBookPurchase
- Dodano kontrolę autentykacji z przyjaznym komunikatem
✨ Nowe funkcje:
- Przycisk testowy Splash Screen w menu hamburger
- Synchronizacja gradientów - spójny wygląd wizualny
🌐 API v1.3:
- Zaktualizowano okładki wszystkich 4 książek (PNG 525x750 px)
- Dodano endpoint do logo aplikacji - 4 warianty dostępne
- Rozszerzone testy API o weryfikację wszystkich plików graficznych
API v1.2 API
📅 2025-10-18
🐛 Naprawione błędy pobierania PDF:
- Bug #1: Poprawiono lookup książki - używanie book_id zamiast primary key
- Bug #2: Poprawiono lookup rozdziału - prawidłowe FK do mobile_books.id
- Bug #3: Zmieniono typ storage z book_name_folders na database
- Bug #4: Naprawiono 17 nazw plików w książce Poradnik Dyzuranta
✅ Status testów:
- POZ (book_id=56): Rozdział 1 działa (776 KB)
- Autyzm (book_id=80): Rozdział 1 działa (114 KB)
- Poradnik (book_id=53): Rozdział 1 działa (142 KB)
- Kontrola dostępu: HTTP 403 dla niepupionych rozdziałów
API v1.1 API
📅 2025-10-16
📱 Mobile Books API:
- 7 nowych tabel w bazie danych
- Endpoint /mobile-books - lista książek z rozdziałami
- Endpoint /mobile/my-books - zakupione książki użytkownika
- Endpoint /mobile/chapter/{id}/download - pobieranie PDF rozdziału
- Weryfikacja zakupu i audyt pobierań
- Wsparcie dla preview chapters (darmowe)
📊 Statystyki:
- 234 pliki PDF wgrane do storage
- Autyzm: 11 plików | POZ: 139 plików | Poradnik: 81 plików | Gastro: 3 pliki
API v1.0 API
📅 2025-10-15
🎉 Inicjalna wersja:
- Implementacja własnego systemu tokenów (api_token)
- Kompatybilność wsteczna z hasłami SHA1
- Pełne wsparcie dla produkcyjnej bazy danych
- Endpointy: auth, books, purchases, my-books
- Custom middleware ApiTokenAuth
- 18 endpointów API