feat: bootstrap project
This commit is contained in:
@@ -0,0 +1,29 @@
|
||||
# US07 - Agrupamento do Menu de Navegação (Menu Gestão)
|
||||
|
||||
**Como** Utilizador autenticado do RefoodOne
|
||||
**Quero** que as opções "Beneficiários", "Turnos" e "Entregas" sejam agrupadas num submenu sob um menu principal chamado "Gestão"
|
||||
**Para** melhorar a organização do cabeçalho de navegação e tornar a interface mais limpa e intuitiva.
|
||||
|
||||
## Descrição do Fluxo
|
||||
Ao fazer login na aplicação, o utilizador visualiza um cabeçalho de navegação (navbar) simplificado. Em vez de ter os links principais expostos diretamente, é exibido um item de menu interativo chamado **Gestão**. Ao clicar ou passar o cursor sobre este menu, abre-se um dropdown contendo as opções autorizadas para o perfil do utilizador.
|
||||
|
||||
## Critérios de Aceitação
|
||||
|
||||
### 1. Interface Gráfica (UI)
|
||||
- **Menu Gestão**: Deve ser exibido como um menu dropdown na barra de navegação superior, com a etiqueta "Gestão" em PT-PT.
|
||||
- **Opções do Submenu**: O dropdown deve conter as seguintes opções (quando aplicável ao perfil):
|
||||
- **Beneficiários**
|
||||
- **Turnos**
|
||||
- **Entregas**
|
||||
- **Estilo**: O dropdown deve seguir a estética Bootstrap 5, com comportamento responsivo (fechamento automático ao clicar fora e suporte a ecrãs táteis/mobile).
|
||||
|
||||
### 2. Comportamento e Regras de Negócio
|
||||
- As opções visíveis no submenu devem respeitar rigorosamente as permissões de cada perfil de utilizador:
|
||||
- **Administrador (Admin)**: Visualiza todas as opções no submenu (**Beneficiários**, **Turnos**, **Entregas**).
|
||||
- **Gestor de Turno (Shift Manager)**: Visualiza as opções permitidas (**Turnos**, **Entregas** e **Beneficiários** conforme permissões de gestão).
|
||||
- **Voluntário (Volunteer)**: Visualiza apenas a opção **Entregas** (ou redirecionado diretamente).
|
||||
- O submenu só deve ser visível se o utilizador estiver autenticado.
|
||||
|
||||
### 3. Integração de Dados / Segurança
|
||||
- O controlo de visibilidade dos links do submenu deve basear-se no objeto `data.user` carregado pelo layout principal (`+layout.svelte`).
|
||||
- A proteção de rotas no servidor (`hooks.server.ts`) deve continuar a validar e bloquear acessos diretos caso o utilizador digite o URL manualmente.
|
||||
Reference in New Issue
Block a user