- Comunidades e informação
Fonte da Vida
Recursos cristãos gratuitos em línguas africanas — fui o programador principal da API e do painel Laravel.
- Período
- 2021–2022
- Estado
- Em produção
- Papel
- Programador principal da API e do painel de administração (2021–22)
- Cliente
- EQUIP Moçambique
Problema
Igrejas e pregadores precisavam de publicar pregações e recursos para a app móvel, e a equipa precisava de gerir países, línguas, organizações e licenças. O sistema anterior em Yii já não servia.
Solução
Migrei o modelo de dados do sistema Yii para Laravel 8 e construí a API v1 e o painel: pregações por pastor e organização, upload de áudio com duração, fotos e ficheiros, geolocalização da igreja, e páginas CRUD para línguas, recursos, vídeos e licenças. Os pregadores entram pela app com uma autenticação separada. O bot de WhatsApp, que envia a Bíblia em áudio pela WhatsApp Cloud API da Meta, é da equipa; o meu contributo aí foi o workflow de deploy de teste.
Decisões técnicas
01
Guard separado para pregadores na app
O painel usa sessão (`web`) e a app usa um guard `mobile` sobre a tabela de pregadores, com Sanctum — contas de pregador e de administrador nunca se misturam.
02
Logout em todos os dispositivos
Ao sair, a app revoga todas as sessões do pregador, o que simplifica o suporte quando um telemóvel se perde.
03
Migração do legado Yii em vez de recomeçar
Importei a base de dados existente para manter livros, pregações e recursos já publicados.
04
API versionada
Prefixo `v1` e rotas protegidas por token, para a app poder evoluir sem partir versões antigas.
Imagens
01 / 04 — Página inicial da Fonte da Vida: Bíblia em áudio com texto sincronizado, com um telemóvel a mostrar Mateus 1
Tecnologias
- Laravel
- PHP
- MySQL
- Livewire
- JavaScript
- Node.js
- WhatsApp Cloud API
- GitHub Actions
Resultados verificáveis
- línguas listadas na documentação da API
- 15
O que aprendi
Autenticação com vários guards para clientes móveis, e migrar dados de um sistema legado sem perder conteúdo.
