Detta dokument beskriver den tekniska arkitekturen och komponenterna i TextTV.nu, ett modernt webbgränssnitt för SVT:s Text TV-tjänst.
TextTV.nu är byggd med en hybridarkitektur som består av två huvudkomponenter:
- Frontend-applikation (CodeIgniter)
- Dataimporttjänst (Laravel)
Frontend-delen är byggd med PHP-ramverket CodeIgniter och fungerar som det huvudsakliga webbgränssnittet som användarna interagerar med. Den innehåller:
- Webbgränssnitt: Visar Text TV-sidor i ett modernt, mobilanpassat format
- Progressive Web App (PWA)-funktioner:
- Service worker för offline-funktionalitet
- Manifest för installationsbar webbapp
- Mobiloptimerat gränssnitt
- Resursstruktur:
css/- Stilmallarjs/- JavaScript-filerimages/- Bildresursercodeigniter/- Kärnapplikationsfilerfonts/- Typsnitt
En Laravel-baserad applikation som hanterar dataimport och databehandling. Denna tjänst:
- Hämtar Text TV-data från SVT:s tjänster
- Bearbetar och lagrar data
- Hanterar historisk data och arkiv
- Utför städning för att upprätthålla databasernas effektivitet
Huvudkomponenter:
- Databasmigrationer och modeller
- Konsolkommandon för dataimport och underhåll
- API-endpoints för interna tjänster
- Schemalagda uppgifter för automatiserad datauppdatering
Projektet använder Laravel Valet för lokal utveckling. För att sätta upp utvecklingsmiljön:
- Installera PHP 8.x och nödvändiga tillägg
- Installera Composer för PHP-pakethantering
- Installera Node.js och npm för frontend-resurshantering
- Konfigurera Laravel Valet
- Ställ in lokala miljövariabler med
.env-filer
Applikationen använder flera databaser:
- Huvuddatabas för innehållsvisning
- Statistikdatabas för användningsanalys
- Arkivdatabas för historiskt innehåll
Projektet innehåller driftsättningsskript (server_deploy.sh) för automatiserad driftsättning.
-
Frontend:
- CodeIgniter PHP-ramverk
- JavaScript
- Progressive Web App-teknologier
- Responsiv CSS
-
Backend:
- Laravel 8+
- MySQL
- PHP 8.x
- Composer för beroendehantering
-
Utvecklingsverktyg:
- Laravel Valet
- npm för frontend-resurshantering
- Git för versionshantering
API-dokumentation finns i Bruno API-filkatalogen, som innehåller API-specifikationer och exempel.
Regelbundna underhållsuppgifter inkluderar:
- Databasrensning (se
CleanupPageActions-kommandot) - Loggrotering
- Prestandaövervakning
- Säkerhetsuppdateringar för beroenden