Aplikacja webowa do sprzedaży biletów na wydarzenia muzyczne, z panelem administracyjnym (Filament), płatnościami Przelewy24, integracją z ogłoszeniami OLX oraz obsługą wejścia (QR / skaner).
| Warstwa | Technologie |
|---|---|
| Backend | Laravel 13, PHP 8.3+ |
| Panel admina | Filament v5 (Livewire, Alpine.js, Tailwind CSS wg pakietu Filament) |
| Baza danych | MySQL (produkcja / rozwój); SQLite w pamięci w testach PHPUnit |
| ORM / sesja / kolejka | Eloquent; sesja i cache możliwe na sterowniku database (tabele z migracji Laravel) |
| Płatności | Przelewy24 (pakiet mnastalski/przelewy24-php, lokalna ścieżka przelewy24/) |
| PDF i QR | Dompdf 3.x, chillerlan/php-qrcode 5.x |
| OLX | Partner API (api_olx/, OAuth2 / bridge w packages/olx-oauth-bridge/) |
| Marketing | Facebook Conversion API (serwis w app/Services/Facebook/) |
| Frontend | Blade, szablony widoków; skaner QR: html5-qrcode (CDN na stronie Scanner) |
| Narzędzia dev | PHPUnit 12, Laravel Pint, Collision, Faker |
- PHP 8.3+
- Composer
- MySQL (główne źródło danych)
- (opcjonalnie) Node.js — tylko jeśli budujesz assety frontowe
-
Sklonuj repozytorium i przejdź do katalogu projektu.
-
Zainstaluj zależności:
composer install
-
Skopiuj plik środowiskowy i wygeneruj klucz aplikacji:
copy .env.example .env php artisan key:generate
-
W pliku
.envustaw m.in.:APP_URL— adres aplikacji (np.http://ticketreservationsystem.test)DB_CONNECTION=mysqloraz parametry połączenia:DB_HOST,DB_PORT,DB_DATABASE,DB_USERNAME,DB_PASSWORDCACHE_STOREiSESSION_DRIVER— np.database(wymagane są tabele cache/sessions z domyślnych migracji Laravel)
-
Utwórz bazę danych MySQL (np.
utf8mb4_unicode_ci), następnie:php artisan migrate php artisan db:seed
db:seedtworzy konto administratora opisane poniżej (logowanie do Filament). -
Dowiązanie publicznego storage (plakaty, pliki publiczne):
php artisan storage:link
-
(Opcjonalnie) Zamiast seedera możesz utworzyć konto ręcznie:
php artisan filament:user
- Domyślna ścieżka:
/admin - Strona główna
/przekierowuje gościa do logowania panelu; zalogowany użytkownik trafia na pulpit. - W panelu można m.in. zarządzać wydarzeniami, biletami, ogłoszeniami OLX oraz korzystać ze strony Scanner (odczyt kodów QR z kamery).
Po wykonaniu php artisan db:seed możesz zalogować się tymi danymi:
| Pole | Wartość |
|---|---|
admin@trs.local |
|
| Hasło | TRS_k9Lm#2pQxW |
Bezpieczeństwo: To konto jest przeznaczone do pracy lokalnej / deweloperskiej. Przed wdrożeniem produkcyjnym zmień hasło (np. w panelu lub przez php artisan tinker) albo usuń użytkownika i utwórz nowe konto. Nie używaj tych samych danych na publicznie dostępnym serwerze.
| Obszar | Opis |
|---|---|
| Wydarzenia | Tytuł, opis, data, liczba miejsc, cena, slug, aktywność, plakat |
| Bilety | Statusy: oczekujący, opłacony, anulowany, zrealizowany; kod biletu; powiązanie z płatnością |
| Płatności | Przelewy24 (inicjacja płatności, webhook potwierdzający transakcję) |
| PDF / e-mail | Generowanie biletu w PDF z kodem QR |
| Check-in | Ścieżka dla personelu (/koncert) — osobna autoryzacja; oznaczanie wejścia na podstawie kodu |
| Scanner (admin) | Strona w panelu z biblioteką html5-qrcode; endpoint do realizacji biletu |
| OLX | Integracja z Partner API (w katalogu api_olx); synchronizacja metadanych ogłoszeń |
- Przelewy24 — zmienne w
.envzgodnie zconfig/przelewy24.php(sandbox/produkcja). - OLX — pliki konfiguracji i tokeny zgodnie z
config/olx.phporaz dokumentacją wapi_olx. - Facebook CAPI — opcjonalnie, konfiguracja w serwisie konwersji.
php artisan testŚrodowisko testowe (phpunit.xml) domyślnie używa bazy SQLite w pamięci — nie wymaga MySQL.
Projekt oparty na szablonie Laravel; szczegóły w pliku LICENSE (jeśli jest dołączony).
