- | Introdução
- 1.1 | Propósito
- 1.2 | Escopo de Projeto
- 1.3 | Visão Geral
- | Descrição Geral
- 2.1 | Funções da Aplicação
- | Requisitos Funcionais
- | Regras de Negócio
- | Assinaturas
O propósito do Documento de Especificações de Requisitos é detalhar as necessidades do projeto a ser construído, descrevendo suas funcionalidades e e características. O público-alvo deste documento são staff e desenvolvedores voluntários.
O escopo deste projeto consiste em ser um sistema de gestão de pessoas voluntárias interno da He4rt. Onde as tecnologias de frontend, backend e banco de dados seráo de total escolha do time responsável pelo projeto. (Leve em consideração quais tecnologias estão em alta demanda no mercado de trabalho e escolha-as, reconheça que atuar neste projeto será positivo para sua carreira e currículo)
- Equipe de no máximo 6 pessoas onde:
- 2 Voluntários serão desenvolvedores Frontend
- 2 Voluntários serão desenvolvedores Backend
- 2 Voluntários de nível pleno serão orientadores do projeto
- 1 Backend
- 1 Frontend
- A gestão do projeto será feita pela staff da He4rt Developers
- O projeto deverá ser concluído dentro de 3 a 6 meses.
- Aplicativo web com foco em gerenciamento de pessoas.
- 2.1.1 Cadastro de Usuário
- 2.1.2 Login de Usuário
- 2.1.3 CRUD de Perfil
- 2.1.4 CRUD de Status
Requisito 01 | RF001 - Cadastro de Usuário
Cadastro:
Este requisito deve cumprir a funcionalidade que permita o usuário se cadastrar no sistema após preencher um formulário próprio ou se optar por selecionar uma autenticação via Discord.
- Cadastro via API do Discord (Opção 1)
- Cadastro via Backend próprio (Opção 2)
- Opção A: Autenticação via JWT
- Opção B: Autenticação via OAuth
- Opção C: Dê uma sugestão
Dados do formulário de Cadastro:
- Nome completo > [String | Obrigatório]
- Apelido > [String | Opcional]
- Email [String | Único | Obrigatório]
- Senha [String/Hash/Password | Obrigatório]
Requisito 02 | RF002 - Login de Usuário
Este requisito deve cumprir a função de login do sistema, permitindo o usuário se autenticar via dados previamente cadastrados ou via Discord mediamente escolha feita pelo usuário
- Login via API do Discord (Opção 1)
- Login via Backend próprio (Opção 2)
Dados do formulário de Login:
- Nome de usuário (String | Obrigatório)
- Senha (String/Hash/Password | Obrigatório)
Requisito 03 | RF003 - CRUD de Perfil
Este requisito deve cumprir a função que permita o usuário pertencente a conta, alterar sua foto de perfil (Caso não seja uma conta linkada por Discord), alterar suas competências técnicas (Linguagens de programação, Frameworks, Padrões de Código, Boas Práticas e etc...), e demais competências pessoais (soft skills no geral)
- Foto de perfil
- Descrição de perfil de desenvolvedor
- Descrição de Competências
- Descrição de Competências Técnicas
Requisito 04 | RF004 - CRUD de Status
Este requisito deve possibilitar que o usuário adicione, altere e/ou remova um status do seu
- Status: Disponível para atuar em projetos
- Status: Indisponível para atuar em projetos
Regra de Negócio 01 | RN001 | Comportamento de Cadastro
O usuário deverá ser alertado sobre os campos que { não foram preenchidos, estão pendentes ou não seguem a regra implantada (ex: email único, username em uso, etc...)} com uma mensagem de erro explicando resumidamente o que está faltante para que seja concluído o cadastro com sucesso.
Caso de Sucesso: Deverá ser mostrado ao usuário um modal contendo a mensagem "Cadastro Concluído com Sucesso" e um botão com a mensagem "Ok"
Regra de Negócio 02 | RN002 | Comportamento de Login
O usuário deverá ser alertado por uma mensagem em { pop-up e/ou push notification } caso { a senha não esteja correta e/ou o usuário não esteja correto } No campo de senha deverá conter um botão que permita o usuário ver qual senha foi escrita por ele por motivos de User Experience (UX)
Caso de Sucesso: Ao ser efetuado o login na plataforma o usuário deverá ser redirecionado à página inicial da aplicação que conterá seu perfil.
Regra de Negócio 03 | RN003 | Comportamento de Entrada
O usuário após ser redirecionado à pagina inicial, deverá ser sugerido um caminho para ele seguir dentro da aplicação, para que seja feito as alterações no perfil.
Caso de Sucesso:
Aqui ficara as assinaturas da staff para que validem e aprovem o projeto.
Documento desenvolvido(a) por: GrandeHe4rt
Documento validado(a) por: 'Pride, SamucaDev & MarchedTurtle
Documento Aprovado(a) por:
Como é um projeto colaborativo com voluntários e não sabemos a senioridade, acho importante que deixem claro algumas coisas
No RF001
No RF004
Não sei se vocês vão mudar o documento, mas acho interessante que tenha um diagrama de banco de dados ou até mesmo um diagrama de classes bem básico com as entidades para ajudar quem for do backend, e os esboços de tela no figma para quem for do front.
Os esboços podem ser de baixa fidelidade mesmo, algo somente para o desenvolvedor ter uma ideia do posicionamento de cada item na página e quais serão as páginas.
Lembre de inserir os requisitos não funcionais: Responsividade, Intuitividade, Segurança dos dados (isso inclui falar sobre hash de senhas e dados sensíveis), Performance do Site (rankeamento no pagespeed do google e/ou tempo de carregamento das telas)
Nos dados dos requisitos funcionais, lembre de colocar quais dados são obrigatórios e quais dados são opcionais, ajuda tanto para o front-end quanto para o backend.
Tenho o costume também de criar um tópico para regras de negócio, ou seja, falar sobre o fluxo do sistema e o que acontece em cada situação: