- Umożliwia zaimportowanie listy użytkowników z pliku CSV za pomocą formularza. Każdy wiersz pliku CSV zawiera dane użytkownika: imię, nazwisko, email.
- Weryfikuje dane podczas importu (np. poprawność formatu emaila).
- Dodaje poprawne rekordy do bazy danych.
- Proces importowania użytkowników ma działać asynchronicznie, przy użyciu kolejek Laravel (np. Redis jako driver).
- Każdy rekord powinien być przetwarzany jako osobne zadanie w kolejce.
- Po zakończeniu przetwarzania użytkownika wysyłaj powiadomienie email do administratora z podsumowaniem wyniku (np. które rekordy zostały poprawnie dodane, a które zawierały błędy).
- Obsłuż sytuację, gdy email nie zostanie wysłany (np. zapisz informację o błędzie do logów).
- Udostępnij widok w panelu administracyjnym, w którym administrator widzi historię wszystkich importów wraz ze statusem (np. zakończone, w trakcie, błędy).
- Dodaj możliwość eksportowania listy użytkowników do pliku CSV.
- Obsłuż ograniczenie ilości wierszy w pliku eksportu (np. maks. 1000 użytkowników na plik).
-
Sklonuj repozytorium oraz uzupełnij .env.example ( serwer smtp np. mailtrap)
-
Zbuduj obraz dockera:
docker compose build
-
Uruchom kontener dockera:
docker compose up
-
Aplikacja będzie dostępna pod adresem
http://localhost
. Ze względu na to że aplikacja sama się podnosi i wykonują się migracje, a mysql zamyka tymczasowy serwer po inicjalizacji do skryptu startowego dodany został sleep który sprawdza czy mysql działa konkretna ilosc czasu i wtedy odpala kolejki serwer i migracje, stad proces startu moze trwać do około minuty (tutaj to tylko kwestia wygody odpalenia aplikacji)