É um sistema de gerenciamento de conteúdo e portfólio profissional desenvolvido com Laravel + Vue. Ela serve a um propósito duplo: fornecer uma vitrine pública de projetos e habilidades para os visitantes, e um painel administrativo seguro para gerenciar conteúdos, arquivos e comunicações.
A aplicação facilita o gerenciamento de uma presença digital profissional. Ela permite ao proprietário:
Exibir uma lista selecionada de projetos técnicos e habilidades
Tratar mensagens de contato recebidas com notificações automáticas por e-mail.
Gerenciar arquivos de mídia (imagens e documentos) por meio de um repositório centralizado.
O projeto utiliza um ecossistema moderno de PHP:
Framework: Laravel 11 (Estrutura da aplicação e API).
Frontend: Blade Templates (Site público) e Alpine.js (Interatividade).
Banco de Dados: Suportado por Eloquent ORM, configurado para MySql.
Autenticação: Laravel Sanctum para sessões de API seguras e persistentes.
Pipeline de Assets: Vite para compilação de SCSS e JavaScript.
Vue: Vite para contrução do Painel de Controle
A aplicação segue uma arquitetura de interface dupla, onde uma única instância do Laravel atende a dois tipos distintos de consumidores através de camadas de rotas separadas.
A interface pública é servida por meio de rotas web padrão. Ela utiliza o escopo personalizados do Eloquent public() para garantir que apenas conteúdos publicados fiquem visíveis para os visitantes. O ponto de entrada principal é a view welcome, que reúne os projetos e habilidades. Fornece accesso apenas de leitura (escopos públicos).
Tegnologías:
Blade
Tailwindcs e SCSS
Javascript e Alpine
O backend administrativo é acessível por meio de uma API versionada (/api/v1). Esta camada é protegida pelos middlewares Sanctum + AdminMiddleware ( Middelware Personalizado). Ela fornece endpoints padrão do tipo apiResource para gerenciar as entidades do portfólio.
Tegnologías:
Laravel API REST
Vue / Pinia / PrimeVue
Tailwind
O sistema gerencia imagens e documentos com foco específico na acessibilidade pública por meio de UUIDs. As imagens são salvas localmente e servidas através de um controller dedicado para abstrair o caminho do arquivo.