📱 Standardy Medyczne

Historia Wersji Aplikacji i API

📥 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