Skip to content

GitLab

  • Menu
Projects Groups Snippets
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
  • W Wiki
  • Project information
    • Project information
    • Activity
    • Labels
    • Planning hierarchy
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 0
    • Issues 0
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 0
    • Merge requests 0
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Monitor
    • Monitor
    • Incidents
  • Packages & Registries
    • Packages & Registries
    • Package Registry
    • Infrastructure Registry
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • Lobo-guará
  • Wiki
  • Wiki
  • Escopo e Cronograma

Escopo e Cronograma · Changes

Page history
Create Escopo e Cronograma authored Mar 30, 2025 by Nicholas Stefanello Luz's avatar Nicholas Stefanello Luz
Hide whitespace changes
Inline Side-by-side
Escopo-e-Cronograma.md 0 → 100644
View page @ a1aef3e9
## User Stories
As histórias de usuário formuladas foram organizadas em conjuntos denominados "épicos", com o propósito de simplificar a visualização das funcionalidades do aplicativo nas fases de conclusão, desenvolvimento ativo e planejamento. Cada épico abrange histórias de usuário convencionais ou histórias de administração.
Os épicos criados foram:
* Landing Page
* Informações
* Mapa Centros de Apoio
* Configurações
* Autenticação e Cadastro
* Fórum
* Admin: Controle de usuários e empresas
* Admin: Gerência do Fórum
### Landing Page
<details>
<summary>US01 – Acessar Landing Page </summary>
> **Como** usuário, **quero** acessar a página inicial (Landing Page), **para** visualizar os principais fluxos da aplicação.
**Critérios de aceite:**
1. Logo do projeto.
2. NavBar (Fóruns, informações, leis)
3. Instituições
4. Obs: Mapa de instituições ainda não será adicionado. Posteriormente será colocado na Landing Page.
</details>
### Informações
<details>
<summary>US02 – Tela de Leis</summary>
> **Como** usuário, **quero** sobre leis e direitos dos refugiados no Brasil,
**para** entender como funciona minha situação legal.
**Critérios de aceite:**
1. A tela deve ser responsiva para mobile e desktop.
</details>
<details>
<summary>US03 – Tela de Quem Somos</summary>
> **Como** usuário, **quero** acessar a seção "Quem Somos", **para** conhecer mais sobre a missão, visão e valores da empresa e entender melhor sua história.
**Critérios de aceite:**
1. A tela deve ser responsiva para mobile e desktop.
</details>
### Mapa Centros de Apoio
<details>
<summary>US04 – Mapa de Centros de Apoio</summary>
> **Como** usuário, **quero** … **para** …
**Critérios de aceite:**
1. A tela deve ser responsiva para mobile e desktop.
2. …
</details>
<details>
<summary>US05 – Cadastro de centros de apoio</summary>
> **Como** administrador, **quero** poder cadastrar, visualizar, atualizar e excluir centros de apoio, **para** gerenciar os centros disponíveis no sistema de forma eficiente.
**Critérios de aceite:**
#### Backend
1. O sistema deve permitir cadastrar um novo local com nome, latitude e longitude.
2. O sistema deve permitir buscar todos os locais cadastrados.
3. O sistema deve permitir buscar um local pelo ID.
4. O sistema deve permitir editar um local existente (atualizar nome, lat, long).
5. O sistema deve permitir excluir um local do banco de dados.
6. O backend deve retornar mensagens de erro adequadas caso os dados sejam inválidos ou o local não exista.
7. O CRUD deve ser exposto via API REST com endpoints bem definidos.
#### Frontend
</details>
### Configurações
<details>
<summary>US06 – Adicionar suporte a múltiplos idiomas</summary>
> **Como** usuário, **quero** … **para** …
**Critérios de aceite:**
1. A tela deve ser responsiva para mobile e desktop.
2. …
</details>
### Autenticação e Cadastro
<details>
<summary>US07 – Cadastro de conta</summary>
> **Como** usuário, **quero** me cadastrar na plataforma, **para** que eu possa visualizar comentários no fórum.
**Critérios de aceite:**
#### Backend
1. O usuário deve poder se cadastrar preenchendo nome, e-mail, senha, telefone, cidade e linguagem de preferência.
2. Validar tamanho mínimo da senha (8 caracteres)
3. O sistema deve validar se o e-mail já está cadastrado antes de criar a conta.
4. A senha deve ser hasheada antes de ser armazenada no banco.
#### Frontend
</details>
<details>
<summary>US08 – Login</summary>
> **Como** usuário ou administrador, **quero** realizar o login na aplicação fornecendo minhas credenciais (nome de usuário e senha), **para** que eu possa acessar minha conta de forma segura e personalizada, com um token de autenticação válido.
**Critérios de aceite:**
#### Backend
1. O backend deve validar se o (nome de usuário ou email) e a senha fornecidos estão corretos.
2. Se as credenciais estiverem corretas, o sistema deve gerar um token JWT (ou outro mecanismo de autenticação) e enviá-lo de volta para o cliente.
3. Se as credenciais estiverem incorretas, o sistema deve retornar um erro 401 (Não autorizado) com uma mensagem adequada, como "Credenciais inválidas".
4. O token gerado deve ter um tempo de expiração configurável (por exemplo, 1 hora).
5. O sistema deve verificar se o usuário está marcado como ativo no banco de dados. Se o usuário estiver inativo, o sistema deve retornar um erro 403 (Proibido) com uma mensagem apropriada, como "Usuário bloqueado".
6. Middleware de autenticação
7. O sistema deve retornar erros 400 (Bad Request) se o formato dos dados enviados na requisição de login for inválido, como campos obrigatórios ausentes (ex: usuário ou senha não informados).
8. O sistema deve usar algoritmos seguros para a validação de senhas (bcrypt).
9. O sistema deve retornar uma resposta clara e estruturada em caso de sucesso, contendo o token de autenticação e outros dados relevantes, como o nome do usuário e as permissões associadas.
#### Frontend
10. O formulário de login deve conter os campos de (nome de usuário ou email) e senha.
11. O botão de login deve estar desabilitado até que ambos os campos sejam preenchidos corretamente.
12. O campo de senha deve ser mascarado, de modo que o usuário não veja o valor digitado.
13. Se o usuário tentar submeter o formulário sem preencher os campos obrigatórios, uma mensagem de erro deve ser exibida, indicando que ambos os campos são necessários.
14. Após a validação das credenciais, se o login for bem-sucedido, o sistema deve redirecionar o usuário para a Landing Page.
15. (Toast) Se o login falhar (por exemplo, credenciais incorretas), o usuário deve ver uma mensagem de erro clara, como "Credenciais inválidas", sem revelar informações sensíveis.
16. Caso o backend retorne um erro (por exemplo, o servidor esteja offline ou não seja possível validar as credenciais), o frontend deve exibir uma mensagem genérica de erro, como "Erro ao tentar realizar login. Tente novamente mais tarde".
17. Durante o processo de login (enquanto o sistema está verificando as credenciais), o botão de login deve ser desabilitado, e um indicador de carregamento (spinner ou animação) deve ser mostrado para o usuário.
18. O frontend deve armazenar o token de autenticação (se o login for bem-sucedido) em um local seguro, como localStorage ou sessionStorage, para ser usado nas requisições subsequentes.
19. O token deve ser enviado no header Authorization das requisições posteriores para autenticar o usuário.
20. Deve existir um link ou botão na tela de login que redirecione o usuário para uma página de recuperação de senha, caso ele tenha esquecido suas credenciais.
21. O formulário de login deve ser acessível, incluindo etiquetas apropriadas para leitores de tela e navegação por teclado.
</details>
<details>
<summary>US09 – Logout</summary>
> **Como** usuário ou administrador logado, **quero** fazer fazer logout da minha conta, **para** que eu não esteja mais autenticado.
**Critérios de aceite:**
#### Backend
1. Quando o usuário fizer logout, o backend deve invalidar o token JWT ou qualquer outro mecanismo de autenticação utilizado.
2. O token inválido não deve ser aceito em requisições subsequentes.
3. O sistema deve retornar um status de sucesso (exemplo: 200 OK) ao concluir o logout corretamente, indicando que a sessão foi encerrada.
4. O backend deve garantir que a revogação do token ou qualquer outro mecanismo de logout seja feito de maneira segura, sem expor informações sensíveis.
5. Se houver algum erro ao processar o logout (por exemplo, se a sessão do usuário já tiver expirado), o sistema deve retornar um erro apropriado (exemplo: 401 Unauthorized) com uma mensagem como "Sessão expirada ou já encerrada".
#### Frontend
6. Deve existir um botão ou link visível na NavBar que, ao ser clicado, execute a ação de logout.
7. O botão de logout deve estar disponível apenas após o usuário estar autenticado.
8. Após o usuário realizar o logout, ele deve ser redirecionado para a tela de login ou para a Landing Page.
9. O redirecionamento deve ocorrer imediatamente após a resposta do backend indicando que o logout foi bem-sucedido.
10. O frontend deve limpar todos os dados de sessão armazenados no navegador (como tokens de autenticação, informações do usuário, etc.) após o logout.
11. O armazenamento local (como localStorage ou sessionStorage) deve ser limpo completamente.
12. Se ocorrer algum erro ao tentar fazer logout (por exemplo, se o servidor estiver indisponível), o sistema deve mostrar uma mensagem de erro genérica, como "Erro ao encerrar a sessão. Tente novamente mais tarde."
13. O botão de logout deve ser acessível, com um texto claro como "Sair" ou "Logout" e suporte a navegação por teclado e leitores de tela.
</details>
<details>
<summary>US10 – Edição do cadastro de usuário</summary>
> **Como** usuário, **quero** … **para** …
**Critérios de aceite:**
1. A tela deve ser responsiva para mobile e desktop.
2. …
</details>
<details>
<summary>US11 – Esqueci minha senha</summary>
> **Como** usuário, **quero** … **para** …
**Critérios de aceite:**
1. A tela deve ser responsiva para mobile e desktop.
2. …
</details>
### Fórum
<details>
<summary>US12 – Criação de fórum</summary>
> **Como** administrador, **quero** … **para** …
**Critérios de aceite:**
1. …
</details>
<details>
<summary>US13 – Criação de tópico</summary>
> **Como** administrador ou empresa verificada, **quero** … **para** …
**Critérios de aceite:**
1. …
</details>
<details>
<summary>US14 – Comentário</summary>
> **Como** administrador ou empresa verificada ou usuário, **quero** … **para** …
**Critérios de aceite:**
1. …
</details>
### Admin: Controle de usuários e empresas
<details>
<summary>US15 – Admin: controle de usuários</summary>
> **Como** administrador, **quero** … **para** …
**Critérios de aceite:**
1. …
</details>
<details>
<summary>US16 – Admin: controle de empresas</summary>
> **Como** administrador, **quero** … **para** …
**Critérios de aceite:**
1. …
</details>
<details>
<summary>US17 – Criação de empresa</summary>
> **Como** administrador, **quero** … **para** …
**Critérios de aceite:**
1. …
</details>
<details>
<summary>US18 – Bloquear/Desativar contar</summary>
> **Como** administrador, **quero** … **para** …
**Critérios de aceite:**
1. …
</details>
<details>
<summary>US19 – Edição do cadastro de empresa</summary>
> **Como** administrador, **quero** … **para** …
**Critérios de aceite:**
1. …
</details>
### Admin: Gerência do Fórum
<details>
<summary>US20 – Deleção de fórum</summary>
> **Como** administrador, **quero** … **para** …
**Critérios de aceite:**
1. …
</details>
<details>
<summary>US21 – Deleção de tópico</summary>
> **Como** administrador, **quero** … **para** …
**Critérios de aceite:**
1. …
</details>
<details>
<summary>US22 – Deleção de comentário</summary>
> **Como** administrador, **quero** … **para** …
**Critérios de aceite:**
1. …
</details>
## Sprints
Nesta seção, você encontrará as Histórias de Usuário de cada sprint, bem como o estado de aprovação de cada narrativa, tal como determinado pela parte interessada durante as revisões de sprint.
### Definição de pronto
* Código revisado e aprovado por ao menos dois AGES III/IV
* Sem erros no console ao executar o que foi desenvolvido
* Estar de acordo com os critérios de aceite da US relacionada
* Aceitação do cliente
### Escopo por Sprint
Nesta seção, estão dispostas as histórias de usuário por sprint, acompanhadas dos seus estados de aprovação e uma definição de critérios de conclusão para as histórias de usuário.
**Legenda para status de aceite**
* :white_check_mark: : US aceita
* :warning: : US parcialmente aceita, ou entregue com dívida técnica
* :x: : US não aceita
#### Sprint 1 | 19/03 a 09/04
| User Story | Descrição | Status |
|:--:|-----------|:------:|
| US01 | **Como** usuário, **quero** acessar a página inicial (Landing Page), **para** visualizar os principais fluxos da aplicação. ||
| US05 | **Como** administrador, **quero** poder cadastrar, visualizar, atualizar e excluir centros de apoio, **para** gerenciar os centros disponíveis no sistema de forma eficiente. ||
| US07 | **Como** usuário, **quero** me cadastrar na plataforma, **para** que eu possa visualizar comentários no fórum. ||
| NO-US | Componente de botão ||
| NO-US | Componente de input ||
| NO-US | NavBar ||
| NO-US | SVG Logo ||
#### Sprint 2 | 09/04 a 05/05
| User Story | Descrição | Status |
|:--:|-----------|:------:|
#### Sprint 3 | 05/05 a 26/05
| User Story | Descrição | Status |
|:--:|-----------|:------:|
#### Sprint 4 | 26/05 a 16/06
| User Story | Descrição | Status |
|:--:|-----------|:------:|
Clone repository
  • Arquitetura do Projeto
  • Banco de Dados
  • Configuração do Ambiente
  • Código
  • Escopo e Cronograma
  • Processos
  • codigo
  • design
    • mockups
  • Home
  • mockups