Sable D'Egypt Tours
Sable D'Egypt Tours | Premium plattform för rundturer En högpresterande, flerspråkig Laravel-plattform för att hantera och boka kurerade reseupplevelser – byggd för konvertering, skalbarhet och operativ tillförlitlighet.
Sable D'Egypt Tours — Premium plattform för rundturer
En högpresterande, flerspråkig Laravel-plattform för att hantera och boka kurerade reseupplevelser – byggd för konvertering, skalbarhet och operativ tillförlitlighet.
Översikt
Sable D'Egypt Tours är en produktionsklar reseplattform som driver en flerspråkig katalog av premiumturer, upptäckt av resmål och skräddarsydda researbetsflöden. Den kombinerar en modern frontend (Vite + Tailwind) med en skalbar Laravel 12-backend, optimerade frågor och robusta administrativa verktyg (Filament), så att researrangörer kan konvertera kunder med högt värde samtidigt som de håller driftskostnaderna nere.
Varför detta är viktigt
- Omvandlar komplexa resekrav till ett smidigt arbetsflöde i flera steg för mer kvalificerade leads.
- Lokaliserat innehåll och SEO-vänlig routing för tillväxt på flera marknader.
- Byggd för att skala: effektiva databasmönster, cachningsstrategier och tydlig separation mellan den publika webbplatsen och administrativa funktioner.
Kärnvärde & Marknadshöjdpunkter
- Prestanda & Skalbarhet: Laravel 12 med mönster för "eager-loading", målinriktade index, aggregering av frågor för listfilter och Redis-klar cachningskonfiguration minskar TTFB och möjliggör hög belastning. Kodbasen levereras med Vite-driven frontend-buntning och Tailwind för effektiv CSS-generering.
- UX/UI-excellens: Mobilanpassade Blade-mallar, Tailwind v4-design och klientbaserade förbättringar via Axios och Swiper levererar en snabb, polerad upplevelse vid sökning och bokning.
- Säkerhet & Tillförlitlighet: Defensiv validering, "honeypot"-mönster i formulär mot spam, lokalanpassad förfrågningshantering och separation av publika rutter och administratörsrutter stärker skyddet mot attacker.
Teknisk arkitektur & stack
-
Frontend
- Verktyg: Vite (
package.json-skript) ochlaravel-vite-pluginför resurshantering. Se package.json. - Styling: Tailwind CSS v4 för responsivt gränssnitt.
- Klient: Vanilla JS + Axios för progressiv förbättring; Swiper för reklambandspelare.
- Verktyg: Vite (
-
Backend / API
- Ramverk: Laravel 12 (PHP ^8.2). Se composer.json.
- Mönster: Klassiska MVC-kontrollers, modeller anpassade för repository-mönster, "eager-loading" av relationer och översättningsscoping för att minska N+1-frågor (exempel:
app/Http/Controllers/ToursController.phpvisar lokalanpassad eager-loading). - Admin: Filament-adminpaketet för snabb backoffice-CRUD och användarhantering.
- Databas: Flexibla anslutningar (SQLite som standard för lokal utveckling, MySQL/MariaDB/Postgres stöds). Se config/database.php.
- Cachning: Redis-klar konfiguration med separata
default- ochcache-databaser iconfig/database.phpför att stödja sessioner/cachning och jobbköer.
-
DevOps & Infrastruktur
- Lokala containrar: Laravel Sail finns tillgängligt som utvecklingsmiljö (
composer.jsonrequire-dev). Produktion kan använda Docker, hanterade värdar eller serverlösa alternativ.
- Lokala containrar: Laravel Sail finns tillgängligt som utvecklingsmiljö (
-
CI/CD: Repositoriet är konfigurerat för automatiserad testning via
artisan test/ Pest och byggskript; rekommenderar GitHub Actions för automatiserade pipelines (bygg, lint, test, deploy).- Bakgrundsjobb & köer: Bakgrundsarbetare stöds (se
composer.jsondev-skript som körphp artisan queue:listen).
- Bakgrundsjobb & köer: Bakgrundsarbetare stöds (se
Nyckelfunktioner & teknisk fördjupning
- Lokalisering & SEO-medveten routing
- Utmaningen: servera samma innehåll på flera språk samtidigt som SEO-vänliga permalänkar behålls och frågebelastningen minimeras.
- Lösningen: Rutter grupperas i lokaliserade prefix med middleware
LocaleFromUrlsom sätter applikationens språk baserat på URL-prefixet. Kontrollers begränsar konsekvent översättningsfrågor tillapp()->getLocale()och använder översättningstabeller (t.ex.*Translation-modeller) för att undvika duplicering av stora datamängder. Se routinguppsättning i routes/web.php och konfiguration för lokalisering i config/localization.php.
- Anpassad reseförfrågan i flera steg (Lead-kvalificering)
- Utmaningen: bevara formulärtillstånd i flera steg över förfrågningar, validera heltäckande, förhindra spam och utlösa transaktionella meddelanden utan att blockera användaren.
- Lösningen:
CustomTripRequestControllersparar stegdata i sessionen fram till inlämning, tillämpar stark validering på serversidan, inkluderar ett "honeypot"-fält (website) för att fånga upp bottar, och skickar både administratörs- och kund-e-postmeddelanden inom ett try/catch-block för att undvika att användarflödet avbryts. Lokalanpassning bevaras vid sändning av notifieringar. Seapp/Http/Controllers/CustomTripRequestController.phpför validering, sessionsflöde och e-postkomposition.
- Filtrerad sökning & aggregering av rundturer
- Utmaningen: tillhandahålla avancerad filtrering (prisintervall, varaktighet, destination, kategorier) och rankning samtidigt som frågor hålls effektiva för stora dataset.
- Lösningen:
ToursController@indexbygger ett ID-baserat, språk-agnostiskt filterpipelinemönster som använderwhereHasför relationsfilter, aggregat på serversidan (selectRaw) för pris/varaktighetsintervall, och paginerar resultaten. Populära destinationer använder ettjoin+groupBy-mönster för att beräkna antal på serversidan, vilket minimerar minnesanvändning och undviker dyra samlingsoperationer. Se app/Http/Controllers/ToursController.php.