feat: bootstrap project

This commit is contained in:
Duarte
2026-05-31 20:22:50 +01:00
commit 66581ef584
65 changed files with 7915 additions and 0 deletions
@@ -0,0 +1,32 @@
# US14 - Homepage com Botões de Atalho (Tablet-Optimized)
**Como** Utilizador do RefoodOne
**Quero** ter uma página inicial simples com botões táteis de grande dimensão e ícones ilustrativos
**Para** aceder de forma rápida e intuitiva às funcionalidades autorizadas a partir de um tablet.
## Descrição do Fluxo
Ao iniciar a aplicação e fazer login:
1. O utilizador é direcionado para a Homepage (`/`).
2. Dependendo do seu perfil de utilizador, são apresentados botões táteis grandes organizados numa grelha responsiva:
- **Voluntário** e **Gestor de Turno**: Visualizam apenas o botão **Entregas** (com ícone de cabaz/cesto de compras).
- **Administrador**: Visualiza três botões: **Entregas** (ícone de cabaz), **Utilizadores** (ícone de pessoas/contas) e **Beneficiários** (ícone de grupo/lista).
3. Ao clicar num dos botões grandes, o utilizador é encaminhado para a respetiva secção do sistema.
## Critérios de Aceitação
### 1. Interface Gráfica (UI)
- **Design para Tablet**:
- Grelha centrada no ecrã com botões de tamanho generoso (ex: cartões táteis com pelo menos 140x140px), facilmente clicáveis com um dedo.
- Efeitos visuais modernos ao passar o rato (hover) ou tocar no ecrã.
- **Botões e Ícones**:
- **Entregas**: Rótulo "Entregas", com um ícone representativo de cabaz/cesto (SVG).
- **Beneficiários**: Rótulo "Beneficiários", com um ícone representativo de lista/pessoas (SVG).
- **Utilizadores**: Rótulo "Utilizadores", com um ícone representativo de utilizadores/chaves (SVG).
- **Idioma**: Todos os rótulos e textos em PT-PT.
### 2. Comportamento e Regras de Negócio
- A visualização dos botões deve respeitar rigorosamente o perfil do utilizador autenticado (`data.user.role`).
- Utilizadores sem o perfil `admin` (ex: `volunteer` e `shift_manager`) não devem ver os botões de administração (Beneficiários e Utilizadores) no ecrã inicial.
### 3. Integração de Dados
- A página lê a informação do utilizador a partir dos dados locais carregados (`data.user`) na rota raiz (`/`).