first commit

This commit is contained in:
2026-05-04 09:43:36 +01:00
commit dfae1b5335
37 changed files with 10343 additions and 0 deletions

73
docs/02-requisitos.md Normal file
View File

@@ -0,0 +1,73 @@
# 2. Requisitos do Sistema
## 2.1 Requisitos Funcionais
### 2.1.1 Autenticação e Conta
- O sistema deve permitir o registo de novos utilizadores com nome, email, palavra-passe, data de nascimento e localidade (distrito)
- O sistema deve impedir o registo de utilizadores com menos de 18 anos, verificando a data de nascimento no servidor
- O sistema deve permitir login por email e palavra-passe
- O sistema deve disponibilizar recuperação de palavra-passe por email
- O utilizador deve poder alterar os seus dados, palavra-passe e preferências de tema (modo claro/escuro)
- O utilizador deve poder consultar o seu histórico de adopções e doações
- O utilizador deve poder eliminar a sua conta (direito ao apagamento — RGPD)
### 2.1.2 Módulo de Adopção
- A página inicial deve apresentar todos os animais disponíveis para adopção
- O utilizador deve poder filtrar animais por: distrito, espécie (cão, gato, outro), raça, sexo (macho/fêmea), estado de esterilização e faixa etária
- Cada animal deve ter ficha detalhada com: nome, espécie, raça (cães e gatos), idade, sexo, estado de esterilização, fotografias e canil onde se encontra
- Ao clicar no canil na ficha do animal, deve aparecer informação com horário de funcionamento, morada e contacto
- Para iniciar uma adopção, o utilizador deve ter sessão activa ou ser redirecionado para login/registo
- O utilizador deve poder seleccionar uma data disponível para levantar o animal no canil
- Após confirmação da reserva, o animal fica com estado **"Reservado"** e o utilizador recebe email de confirmação com data e detalhes do canil
- Animais com urgência de adopção devem ter destaque visual na listagem
### 2.1.3 Módulo de Doação
- Para efectuar qualquer doação, o sistema deve confirmar que o utilizador tem sessão activa e +18 anos
- O utilizador deve poder escolher entre três tipos de doação: **Monetária**, **Ração** e **Brinquedos**
- **Doação Monetária:** selecção de método de pagamento (Cartão de Crédito, MBWay), escolha de canil (da localidade do utilizador ou de outra localidade) e montante
- **Doação de Ração:** listagem de canis que aceitam ração, tipos disponíveis (seca/húmida, para cão/gato, adulto/filhote), opção de entrega em casa ou levar pessoalmente ao canil
- **Doação de Brinquedos:** listagem de canis que aceitam brinquedos, categorias disponíveis, opção de entrega em casa ou levar pessoalmente ao canil
- O utilizador deve receber recibo de doação por email após confirmação
### 2.1.4 Gestão de Canis (Painel Privado)
- Canis registados devem ter acesso a painel próprio para gerir animais, reservas e necessidades actuais
- Canis devem poder actualizar horários de funcionamento, morada e informações de contacto
- Canis devem receber notificação de novas reservas e doações
- Canis devem poder indicar que necessidades têm actualmente (ex: ração seca para cão adulto, mantas)
- Canis devem poder marcar animais como adoptados após levantamento
### 2.1.5 Painel de Administração
- O administrador deve poder visualizar estatísticas gerais (adopções, doações, utilizadores activos)
- O administrador deve poder moderar canis e utilizadores
- O administrador deve ter acesso a logs de actividade relevantes
---
## 2.2 Requisitos Não-Funcionais
| Categoria | Requisito | Critério de Aceitação |
|---|---|---|
| Desempenho | Tempo de carregamento da página inicial | < 2 segundos em ligação 4G |
| Segurança | Autenticação e protecção de dados | HTTPS obrigatório, hash bcrypt (custo 12), tokens JWT assinados |
| Acessibilidade | Conformidade com directrizes de acessibilidade | WCAG 2.1 Nível AA mínimo |
| Responsividade | Compatibilidade mobile e desktop | Funcional em viewports a partir de 320px de largura |
| Disponibilidade | Uptime da plataforma | ≥ 99,5% mensal (acordo de nível de serviço) |
| RGPD | Protecção de dados pessoais | Consentimento explícito, direito ao apagamento, exportação de dados |
| Escalabilidade | Crescimento de utilizadores | Suporte a 10.000 utilizadores activos simultâneos sem degradação |
| Email | Entrega de emails transaccionais | Taxa de entrega superior a 98% |
| Internacionalização | Idioma da interface | Português de Portugal (pt-PT) como idioma principal |
| SEO | Indexação por motores de busca | Páginas públicas com SSR e metadados correctos |
---
## 2.3 Restrições
- A plataforma deve estar em conformidade com o **RGPD** (Regulamento Geral sobre a Protecção de Dados) e legislação portuguesa
- Os pagamentos devem ser processados por um fornecedor certificado **PCI DSS** (Stripe)
- O registo é **exclusivo para maiores de 18 anos** — validação obrigatória no servidor
- Apenas canis registados e verificados pela equipa PawLink podem listar animais para adopção