How marsels-str/ai-pieturas works
This Laravel application manages Latvian stop information and its multilingual text and audio. Administrators and users work through web screens to maintain stops, languages, translations, history, and accounts; synchronization queues translation and MP3-generation work. A separate access workflow collects API requests, lets administrators approve or block access, and serves stop data to key-holders. The README documents OpenAI translation and ElevenLabs speech, though sampled source does not show the jobs’ complete service wiring or all route connections.
Main entry points: ApiAccessController.php API access workflow · ValodasController.php Translation management · OpenAITranslator.php OpenAI translator · Mp3Controller.php MP3 management
Components 28
Web management
- Stop management
app/Http/Controllers/PieturasController.php - User management
app/Http/Controllers/UserController.php - Authentication
app/Http/Controllers/Auth/AuthenticatedSessionController.php - Profile
app/Http/Controllers/ProfileController.php
Language workflows
- Translation management
app/Http/Controllers/ValodasController.php - Translation job
app/Jobs/TranslateOriginalJob.php - OpenAI translator
app/Services/OpenAITranslator.php - Locale commands
app/Console/Commands/PrepareLangFiles.php - Locale translation command
app/Console/Commands/TranslateLangFiles.php
Audio generation
- MP3 management
app/Http/Controllers/Mp3Controller.php - MP3 generation job
app/Jobs/GenerateMp3Job.php - Text-to-speech service
app/Services/TextToSpeechService.php
API access
- API access workflow
app/Http/Controllers/ApiAccessController.php - API key check
app/Http/Middleware/CheckApiKey.php
Application data
- Stops
app/Models/Pieturas.php - Language and text
app/Models/Valodas.php - Original texts
app/Models/Originals.php - Translations
app/Models/Tulkojums.php - Stop history
app/Models/Vesture.php - API requests
app/Models/ApiRequest.php - API keys
app/Models/ApiKey.php - Pending keys
app/Models/PendingKey.php - Users
app/Models/User.php
Other components
- Administrator
- Web user
- API client
- ElevenLabs
- OpenAI
Connections 28
- Web user → Authentication: signs in
- Web user → Profile: updates profile
- Administrator → Stop management: manages stops
- Administrator → User management: manages users
- Administrator → Translation management: manages languages
- Administrator → MP3 management: starts sync
- Authentication → Users: authenticates
- User management → Users: manages
- Stop management → Stops: reads and writes
- Translation management → Language and text: reads and writes
- Translation management → Original texts: reads
- Translation management → Translation job: dispatches batch
- Locale commands → Locale translation command: prepares locales
- Translation job → OpenAI translator: invokes
- OpenAI translator → Translations: stores translations
- OpenAI translator → OpenAI: requests translation
- Administrator → Locale commands: prepares locale files
- MP3 management → Stop history: reads versions
- MP3 management → MP3 generation job: dispatches batch
- MP3 generation job → Text-to-speech service: invokes
- Text-to-speech service → ElevenLabs: requests speech
- API client → API access workflow: requests stops
- Administrator → API access workflow: reviews requests
- API access workflow → API requests: reads and writes
- API access workflow → API keys: creates and deletes
- API access workflow → Pending keys: creates and checks
- API access workflow → Stops: reads stops
- API key check → API keys: checks key