#
PoDrodze — aplikacjja do planowania podróży
#
Opis projektu
PoDrodze to aplikacja webowa do wspólnego tworzenia i zarządzania planem podróży. Użytkownicy mogą dodawać uczestników, określać preferencje, wybierać miejsca, głosować oraz generować plan podróży z wykorzystaniem AI i danych przestrzennych PostGIS.
#
Wymagania funkcjonalne
#
Użytkownicy i autoryzacja
- Rejestracja i logowanie
- Tokenowa autoryzacja
- Profil użytkownika
#
Plan podróży
- Tworzenie nowego planu podróży
- Edycja i usuwanie planu
- Zapraszanie uczestników do planu podróży
- Akceptacja / odrzucanie zaproszeń
- Role i statusy uczestników
#
Miejsca
- Pobieranie miejsc z Google Places API
- Przechowywanie lokalizacji w formacie PostGIS geometry
- Kategorie miejsc
- Dodawanie lub usuwanie miejsc w planie podróży
- Głosowanie uczestników na proponowane miejsca
#
Preferencje i AI
- Preferencje kategorii użytkowników
- Agregacja preferencji całej grupy
- Rekomendacje AI
- Sugestie ulepszeń planu podróży
#
Planowanie trasy
- Automatyczne generowanie planu podróży
- Podział na dni i kolejność miejsc
- Edycja planu przez użytkownika
#
Architektura
#
Backend (Laravel)
- REST API
- Warstwy:
- Controllers – obsługa żądań
- Services – logika
- Models – operacje na danych
- Integracja z Google Places
- Obliczenia geolokalizacyjne realizowane przez PostGIS
- Dokumentacja API (OpenAPI)
#
Frontend (Vue 3)
- SPA
- Widoki: logowanie, lista planów podróży, szczegóły planu, rekomendacje AI
- Integracja z API poprzez Axios
#
Baza danych
- PostgreSQL + PostGIS
- Kluczowe tabele:
userstripsplacespreferences
#
Infrastruktura
- Docker
- Kontenery: PHP-FPM, Node, PostGIS, Caddy, Mailpit.
- Gotowe środowisko dev
#
Technologie
- PHP 8.3
- Laravel
- PostgreSQL + PostGIS
- Vue 3
- Redis
- Docker
- Google Places API
#
Uruchomienie
#
1. Klonowanie repozytorium
git clone https://github.com/IlirionMK/podrodze
cd podrodze
#
2. Przygotowanie plików konfiguracyjnych
W katalogach backend i frontend skopiuj pliki .env.example do .env. backend/.env — backend (Laravel)
frontend/.env — frontend (Vite)
Backend: najważniejsze wartości
Adresy:
APP_URL=http://localhost:8081
FRONTEND_URL=http://localhost:5173
Baza:
DB_CONNECTION=pgsql,
DB_HOST=db,
DB_PORT=5432,
DB_DATABASE/DB_USERNAME/DB_PASSWORD
Redis:
CACHE_DRIVER=redis,
REDIS_HOST=redis,
REDIS_PORT=6379
QUEUE_CONNECTION=redis
Mail (dev):
MAIL_HOST=mailpit,
MAIL_PORT=1025
Integracje:
GOOGLE_MAPS_KEY
GOOGLE_CLIENT_ID/SECRET
AI_SUGGESTIONS_
#
3. Start kontenerów
docker compose up --build
#
4. Backend — migracje i seedery
docker compose exec app php artisan migrate --seed
#
5. Frontend — instalacja zależności
docker compose exec node npm install
docker compose exec node npm run dev