feat: bootstrap project
This commit is contained in:
@@ -0,0 +1,40 @@
|
||||
# US09 - Interface de Registo de Entregas
|
||||
|
||||
**Como** Voluntário ou Administrador do RefoodOne
|
||||
**Quero** um ecrã com botões grandes para cada beneficiário ativo e um popup de confirmação
|
||||
**Para** registar de forma rápida e tátil as entregas de cabazes em dispositivos tablet.
|
||||
|
||||
## Descrição do Fluxo
|
||||
O voluntário acede ao menu "Entregas". O ecrã apresenta uma grelha de botões táteis correspondentes a todos os beneficiários ativos. Ao tocar no botão de um beneficiário (ex: "#124"), abre-se um popup de confirmação exibindo os dados principais do beneficiário (Nome e Nº de Pessoas do Agregado). Ao clicar em "Confirmar", o sistema grava a entrega associando o turno ativo e a data corrente, e fecha o popup.
|
||||
|
||||
## Critérios de Aceitação
|
||||
|
||||
### 1. Interface Gráfica (UI)
|
||||
- **Ecrã de Grelha (Grid)**:
|
||||
- Apresenta botões organizados em grelha (vários por linha dependendo da resolução).
|
||||
- Cada botão corresponde a um **beneficiário ativo**.
|
||||
- O rótulo (label) do botão deve ser o **número do beneficiário** em destaque.
|
||||
- Os botões devem ser dimensionados para facilitar o toque com o dedo (design tátil ideal para tablets).
|
||||
- **Popup de Confirmação (Modal)**:
|
||||
- Disparado ao clicar no botão de um beneficiário.
|
||||
- Deve mostrar em destaque:
|
||||
- **Nome do beneficiário**
|
||||
- **Nº de pessoas do agregado familiar** (do registo do beneficiário)
|
||||
- Botões de Ação no popup:
|
||||
- **Confirmar** (submete o registo de entrega, cor verde)
|
||||
- **Cancelar** (fecha o popup sem registar, cor cinzenta)
|
||||
|
||||
### 2. Comportamento e Regras de Negócio
|
||||
- Apenas beneficiários com estado **Ativo** devem ser exibidos na grelha.
|
||||
- **Prevenção de Duplicados (Desativação do Botão)**:
|
||||
- Se um beneficiário já tiver uma entrega registada na data corrente (dia de hoje), o seu respetivo botão na grelha de entregas deve estar **desativado** (disabled).
|
||||
- O botão desativado deve ter um aspeto visual distinto (ex: cor cinzenta ou verde-suave com um visto de "concluído") para indicar claramente que a entrega já foi efetuada no dia de hoje.
|
||||
- **Gravação Automática**:
|
||||
- Ao confirmar, o sistema regista a entrega na base de dados (`deliveries`).
|
||||
- A data de entrega é preenchida pelo servidor com a **data atual** (no formato YYYY-MM-DD).
|
||||
- O turno é determinado automaticamente pelo servidor com base no **dia da semana e hora atual** em que o registo está a ser submetido (se cair fora do horário de funcionamento de qualquer turno, associa-se o turno padrão ou mais próximo).
|
||||
|
||||
### 3. Integração de Dados / Segurança
|
||||
- O ecrã deve carregar os dados dos beneficiários e turnos no servidor (`+page.server.ts`).
|
||||
- A gravação deve ocorrer via SvelteKit Action (`POST` request) para garantir que a data e o turno sejam calculados e validados de forma segura no lado do servidor.
|
||||
- Apenas utilizadores autenticados podem aceder e registar entregas.
|
||||
Reference in New Issue
Block a user