Aplicação skeleton pronta para fork com autenticação LDAP/AD integrada, sistema de controle de acesso baseado em papéis (RBAC), logging de atividades e módulo de FAQ. Uma base sólida para construir aplicações web modernas no IFCE - Campus Sobral.
- Laravel 13 - Framework PHP robusto
- Laravel Sanctum - Autenticação com tokens API
- Inertia.js v3 - Adaptador para React no Laravel
- Spatie Activity Log - Registro e auditoria de ações
- Ziggy - Helpers de rotas disponíveis em JavaScript
- Laravel Pint - Padronização de código PHP
- Laravel Sail - Ambiente Docker pré-configurado
- Laravel Pail - Visualização de logs em tempo real
- LdapRecord - Integração com Active Directory/LDAP
- React 19 - Biblioteca para interfaces declarativas
- Tailwind CSS v4 - Framework de CSS utilitário
- Headless UI - Componentes UI sem estilos
- TipTap - Editor de texto rico (Rich WYSIWYG)
- Lucide React - Ícones SVG reutilizáveis
- Tailwind Merge - Tratamento inteligente de classes Tailwind
- Vite - Bundler e dev server de última geração
- MariaDB 11 - Servidor de banco de dados (via Sail)
- Redis - Cache e filas (via Sail)
- Login via Active Directory (LDAP) do IFCE — autenticação com matrícula e senha institucional
- Validação de senha via bind LDAP direto (sem necessidade de conta de serviço)
- Fallback para senha bcrypt local (admins locais)
- Usuários precisam estar cadastrados previamente no banco local para acessar
- Redirecionamento de recuperação de senha para o SUAP (
suap.ifce.edu.br) - Gerenciamento de sessões
- Autenticação baseada em tokens com Laravel Sanctum
- Usuários - Criação, edição, exclusão e gerenciamento de usuários
- Permissões - Conjunto nomeado de regras (ex: Administrador, Colaborador)
- Regras - Controles granulares (ex: users.viewAny, users.create)
- Grupos - Organização lógica de regras
- Autorização automática via Gates do Laravel
- Sincronização de autorizações para o frontend via Inertia
- Gerenciamento completo de perguntas frequentes (CRUD)
- Sistema de tags para organização
- Página pública de visualização de FAQs
- Filtro e busca de FAQs
- Interface intuitiva e responsiva
- Widgets informativos
- Sidebar com navegação contextual
- Integração de componentes reutilizáveis
- Registro automático de ações dos usuários
- Rastreamento de alterações em registros sensíveis
- Histórico de atividades consultável
- Log estruturado com timestamps
- Landing page welcomingque apresenta a aplicação
- Visualização de FAQs sem autenticação
- Design responsivo e moderno
- Docker e Docker Compose (ou Docker Desktop)
- Git
- Portas 80 e 3000 disponíveis
git clone https://github.com/CTI-Sobral-IFCE/skeleton.git meu-projeto
cd meu-projetogit remote remove origin
git remote add origin https://github.com/USER/REPO.gitcp .env.example .envEdite o arquivo .env com as configurações do seu projeto (nome da aplicação, URL, banco de dados, etc).
# Com Composer instalado
composer install
# Ou com Docker
docker run --rm \
-u "$(id -u):$(id -g)" \
-v "$(pwd):/var/www/html" \
-w /var/www/html \
laravelsail/php83-composer:latest \
composer install --ignore-platform-reqsAdicione ao seu .bashrc ou .zshrc:
alias sail='[ -f sail ] && bash sail || bash vendor/bin/sail'sail npm installsail artisan key:generatesail artisan migrate:fresh --seed# Opção 1: Iniciar tudo de uma vez (recomendado)
sail composer run dev
# Opção 2: Iniciar em terminais separados
sail up -d # Inicia containers Docker
sail npm run dev # Inicia dev server Vite
sail artisan queue:listen # Inicia worker de filas
sail artisan pail # Visualiza logs em tempo real| Tipo | URL |
|---|---|
| Página Pública | http://localhost |
| Dashboard Admin | http://localhost/admin |
| Credenciais Padrão (admin local) | Matrícula: sua matrícula |
Senha: sua senha SUAP/E-mail institucional |
# Inicia containers Docker em background
sail up -d
# Inicia containers em foreground
sail up
# Inicia Vite dev server
sail npm run dev O sistema está distribuído em duas partes do front-end.
- Página de acesso público
- Dashboard
Para acessar a dashboard:
Login LDAP: use sua matrícula institucional do IFCE e senha do SUAP/AD.
Login local: use a matrícula do admin local (1000000) com senha qwe123.
A recuperação de senha é feita exclusivamente pelo SUAP.
Nota: A permissão "Administrador" possui acesso a todas as funcionalidades por padrão, sem necessidade de atribuição individual de regras.
| Package | Versão | Descrição |
|---|---|---|
| react | ^19.2.5 | Biblioteca UI declarativa |
| @inertiajs/react | ^3.0.3 | Adaptador Inertia para React |
| tailwindcss | ^4.2.4 | Framework CSS utilitário |
| @headlessui/react | ^2.2.10 | Componentes UI headless acessíveis |
| @tiptap/react | ^3.22.5 | Editor de texto rico |
| lucide-react | ^0.511.0 | Ícones SVG reutilizáveis |
| tailwind-merge | ^3.5.0 | Merge inteligente de classes Tailwind |
| vite | ^8.0.10 | Build tool e dev server |
| laravel-vite-plugin | ^3.0.1 | Integração Laravel com Vite |
| axios | ^1.15.2 | Client HTTP |
| Package | Versão | Descrição |
|---|---|---|
| laravel/framework | ^13.0 | Framework PHP moderno |
| laravel/sanctum | ^4.0 | Autenticação com tokens |
| inertiajs/inertia-laravel | ^3.0 | Adaptador Inertia para Laravel |
| spatie/laravel-activitylog | ^4.8 | Auditoria e logging de ações |
| tightenco/ziggy | ^2.0 | Helpers de rotas em JavaScript |
| directorytree/ldaprecord-laravel | ^4.0 | Integração com Active Directory/LDAP |
| laravel/tinker | ^3.0 | Console PHP interativo |
| laravel/sail | ^1.26 | Environment Docker pré-configurado |
| laravel/pail | ^1.2.2 | Logs em tempo real |
| laravel/pint | ^1.13 | Formatação de código PHP |
| laravel/breeze | ^2.1 | Scaffolding de autenticação |
# Aplicação
APP_NAME="Skeleton IFCE"
APP_URL=http://localhost
# Banco de Dados
DB_CONNECTION=mariadb
DB_HOST=mariadb
DB_PORT=3306
DB_DATABASE=skeleton
DB_USERNAME=root
DB_PASSWORD=
# Cache
CACHE_DRIVER=redis
SESSION_DRIVER=cookie
QUEUE_CONNECTION=redis
# Mail
MAIL_MAILER=smtp
MAIL_HOST=mailhog
MAIL_PORT=1025
# Paginação
APP_PAGINATION=15
# LDAP / Active Directory
LDAP_CONNECTION=default
LDAP_CONNECTIONS=default
LDAP_DEFAULT_HOSTS=ad.ifce.edu.br
LDAP_DEFAULT_USERNAME=
LDAP_DEFAULT_PASSWORD=
LDAP_DEFAULT_PORT=389
LDAP_DEFAULT_BASE_DN="OU=DG-SOB,OU=IFCE,DC=ad,DC=ifce,DC=edu,DC=br"
LDAP_DEFAULT_TIMEOUT=5
LDAP_DEFAULT_SSL=false
LDAP_DEFAULT_TLS=falseNota LDAP: O sistema autentica via bind direto com as credenciais do usuário (matrícula@ad.ifce.edu.br), sem necessidade de conta de serviço. As credenciais
LDAP_DEFAULT_USERNAME/PASSWORDsão opcionais — se vazias, a conexão inicial é anônima.
sail artisan ldap:testPara adicionar novas regras no sistema, edite o seeder e adicione a regra:
- Crie a regra via
php artisan make:migration(se necessário) - Adicione ao
RuleSeederou via dashboard - A regra será automaticamente registrada como Gate no
AuthServiceProvider
Os modelos User, Permission, Rule, Group, Activity, Faq e Tag implementam logging automático via spatie/laravel-activitylog. Apenas mudanças reais (dirty fields) em campos especificados são registradas.
A aplicação inclui testes com PHPUnit. Para adicionar testes:
# Criar nova classe de teste
php artisan make:test UserControllerTest
# Executar testes
composer test
# Testes com coverage
php artisan test --coverage
# Teste específico
php artisan test tests/Feature/UserControllerTest.php# Build de produção
npm run build
# Otimização de Composer
composer install --optimize-autoloader --no-dev
# Gerar chave se necessário
php artisan key:generate
# Migrations
php artisan migrate --forceAPP_DEBUG=falseAPP_ENV=productionDB_PASSWORDbem protegidaSESSION_SECURE_COOKIES=true(HTTPS)SESSION_HTTP_ONLY=true
# Limpar containers e volumes
docker-compose down -v
docker system prune
# Reiniciar
sail up -dsail composer installsail npm install
sail npm run dev# Verificar containers rodando
docker ps
# Reiniciar MySQL
sail restart mysql
# Testar conexão
sail artisan tinker- Documentação Laravel
- Documentação Inertia.js
- Documentação React
- Documentação Tailwind CSS
- Documentação Spatie Activity Log
- Documentação LdapRecord
Para dúvidas, sugestões ou bugs, entre em contato com a equipe de desenvolvimento.
Projeto desenvolvido pela Coordenadoria de Tecnologia da Informação do IFCE - Campus Sobral.
Este é um software de código aberto licenciado sob a licença do MIT.










