2.7 KiB
Portal de Requisição e Reserva de Equipamentos
Portal interno para consultar, requisitar, aprovar, entregar e devolver equipamentos cuja fonte oficial de inventário é o Snipe-IT.
Estado atual
O projeto concluiu a Fase 1 — Fundação técnica, a Fase 2 — Integração de leitura Snipe-IT e a Fase 3 — Motor de reservas. A Fase 4 — Aprovações está em curso, já com fila protegida por perfil e decisões transacionais. Estão também disponíveis autenticação local, catálogo sincronizável com pesquisa temporal, pré-reservas, conflitos, cancelamento auditado, expiração automática, calendário pessoal, dashboard e diagnóstico administrativo da integração.
Consulte sempre docs/PROJECT_STATUS.md antes de alterar o projeto. Esse documento contém o ponto de situação, riscos e próxima tarefa recomendada.
Arranque rápido
Requisitos: Docker Desktop e Docker Compose.
cp .env.example .env
docker compose build
docker compose run --rm app php artisan key:generate
docker compose up -d
docker compose exec app php artisan migrate --seed
O portal fica disponível em http://localhost:8000 e o Mailpit em http://localhost:8025.
Contas de desenvolvimento:
| Perfil | Palavra-passe | |
|---|---|---|
| Requisitante | demo@escola.pt |
password |
| Administrador | admin@escola.pt |
password |
Estas credenciais existem apenas no DatabaseSeeder e nunca devem ser usadas em produção.
Comandos frequentes
docker compose exec app php artisan test
docker compose exec app composer lint
docker compose exec app composer types:check
docker compose exec node npm run types:check
docker compose exec node npm run lint:check
docker compose exec node npm run build
Para repor apenas dados de desenvolvimento:
docker compose exec app php artisan migrate:fresh --seed
Documentação
- Estado e handoff
- Arquitetura
- Requisitos e âmbito
- Decisões técnicas
- Operação local
- Registo de alterações
- Regras para agentes
Stack
- Laravel 13 / PHP 8.3+
- React 19 / TypeScript / Inertia 3
- Tailwind CSS 4 / componentes shadcn/ui
- PostgreSQL 17
- Redis 7
- Nginx, worker de filas, scheduler e Mailpit em Docker Compose
- Pest, PHPStan/Larastan, ESLint, Prettier e TypeScript
Princípio central
O portal nunca escreve diretamente na base de dados do Snipe-IT. Identificação e estado operacional do equipamento pertencem ao Snipe-IT; períodos, aprovações, conflitos, notificações, entrega/devolução e auditoria pertencem ao portal.