Giter Club home page Giter Club logo

monitoriacic's People

Contributors

bernas1104 avatar caiofasolak avatar carvalhoiago avatar celiomsj avatar cristianenaves avatar dependabot[bot] avatar destandroid avatar fleyaa avatar genaina avatar hudsonkzv avatar iannery avatar icaronr avatar joaovictornm avatar jomasnow avatar pedrosusername avatar petertowers avatar vitordullens avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

monitoriacic's Issues

Feature: Página Disciplinas

Feature: Usuário pode consultar disciplinas disponíveis

Cenário aluno:

  • Dado que eu sou um aluno
  • E que eu estou na página disciplinas
  • Então eu devo ver disciplinas
  • E eu devo ver botão "aplicar para monitor"

Cenário professor:

  • Dado que eu sou um professor
  • E que eu estou na página disciplinas
  • Então eu devo ver disciplinas
  • E eu devo ver botão "Editar disciplina"
  • E eu devo ver botão "Cadastrar nova disciplina"

Feature: Adicionar turma

Funcionalidade: Eu, enquanto professor, sou capaz de cadastrar novas turmas no sistema

Cenário de Fundo:

  • Dado que o banco possui um aluno e um professor
  • E que o banco possui uma disciplina
  • E que o banco possui uma turma cadastrada
  • E que eu estou na página de login de usuários
  • E que o "professor" está logado

Cenário: O professor efetua o cadastro de uma nova turma (Happy Path)

  • Quando eu clico em "Turmas"
  • Então eu devo estar na página de turmas
  • Quando eu clico em "Cadastrar nova turma"
  • Então eu devo estar na página de cadastro de turmas
  • Quando eu escolho o "C" do seletor "turma_turma"
  • E eu escolho o "Engenharia de Software" do seletor "turma_fk_cod_disciplina"
  • E eu escolho o "4" do seletor "turma_qnt_bolsas"
  • E aperto em "Cadastrar turma"
  • Então eu devo estar na página de turmas
  • E eu devo ver "Turma cadastrada com sucesso!"

Cenário: O professor tenta cadastrar uma turma já existente para uma dada disciplina (Sad Path)

  • E que eu estou na página de cadastro de turmas
  • Quando eu escolho o "A" do seletor "turma_turma"
  • E eu escolho o "Engenharia de Software" do seletor "turma_fk_cod_disciplina"
  • E eu escolho o "2" do seletor "turma_qnt_bolsas"
  • E aperto em "Cadastrar turma"
  • Então eu devo estar na página de turmas
  • E eu devo ver "Turma A não é a única para a disciplina Engenharia de Software"

Hotfix: Disciplina apenas para Admins

Refatorando as views para que a criação, edição e deleção de Disciplinas seja possível apenas para Admins. Professores podem ver as disciplinas. Alunos não tem acesso às disciplinas.

Feature: Deletar turma

Funcionalidade: Eu, enquanto professor, consigo apagar uma turma que cadastrei.

Cenário de Fundo:

  • Dado que o banco possui um aluno e um professor
  • E que o banco possui uma disciplina
  • E que o banco possui uma turma cadastrada
  • E que eu estou na página de login de usuários
  • E que o "professor" está logado

Cenário: O professor consegue apagar uma turma cadastrada (Happy path)

  • Dado que eu estou na página de turmas
  • Quando eu clico em "Apagar turma"
  • Então eu devo estar na página de turmas
  • E eu devo ver "Turma apagada com sucesso!"

Pesquisa: Gem 'Devise'

Estudar a Gem 'Devise'

Gem apresentada - apenas de nome - pelo monitor (Rafael) na reunião do dia (09/05).
É uma gem que serve para gerar ações de Login e Logout em uma aplicação Rails.
Como nenhum dos membros conhece a gem, é necessário um trabalho inicial de pesquisa e aprendizado para utilização no projeto.

Bugfix: Registro

Funcionalidade:

Aluno acessa a página de registro e consegue se cadastrar no serviço do MonitoriaCIC

User Storie:

Cenário de Fundo:

  • Dado que estou na página inicial do MonitoriaCIC
  • Quando eu clico em 'Registrar-se'
  • Então eu estou na página de registro de aluno

Cenário: Eu, enquanto aluno, consigo me cadastrar manualmente

  • Quando eu preencho o formulário de cadastro com informações válidas
  • E eu clico em "Registrar"
  • Então eu devo estar na página inicial do MonitoriaCIC
  • E eu devo ver "Registro realizado com sucesso!"

Feature: Registro de usuário (Aluno)

Feature: Registrar usuário (Aluno)

O usuário acessa o sistema e é capaz de realizar uma ação de login.

Cenário: Aluno se registra no sistema (happy path)

  • Dado que eu estou na página inicial do MonitoriaCIC
  • Quando eu preencho o formulário de cadastro com informações válidas
  • E clico em "Registrar"
  • Então eu vejo a página inicial do MonitoriaCIC
  • E vejo a mensagem "Registro realizado com sucesso!"

Cenário: Aluno não se registra no sistema (sad path)

  • Dado que eu estou na página inicial do MonitoriaCIC
  • Quando eu preencho o formulário de cadastro com informações inválidas
  • E clico em "Registrar"
  • Então eu vejo a página inicial do MonitoriaCIC
  • E vejo a mensagem "Registro não pode ser realizado. Informações inválidas."

Enhancement: Válidar os dados do registro

O registro de alunos produzido na Sprint #1 não redirecionava o aluno para página principal após o cadastro.
O problema era devido a um "rescue" implementado para validação dos dados do cadastro.
A validação foi temporariamente retirada para que o redirecionamento voltasse a funcionar. É necessário a implementação de um método que valide os dados de cadastro.

Registro: validar CPF

O quarto item a ser validado no cadastro deve ser o CPF. Para um CPF ser válido, é necessário que o mesmo siga as regras de validação.

Haverá um primeiro esforço de encontrar uma gem que realize a verificação do CPF. Caso não seja encontrada, a verificação será feita manualmente.

Feature: Página Sobre

Feature: Usuário pode ler informações sobre o projeto

  • Dado que eu estou na página inicial
  • Quando eu clico em "Sobre"
  • Então eu estou na página Sobre

Pull do Ambiente - Gustavo

Pull do Ambiente

  • Após a instalação do ambiente, próximo passo é que todos os membros da equipe
    tenham acesso aos arquivos.

Feature: Apagar disciplina

  • Dado que eu sou um professor
  • E que eu estou na página disciplinas
  • Quando eu clicar em "Apagar disciplina"
  • Então eu devo estar na página disciplina
  • E eu devo não ver aquela disciplina

Feature: Login

Feature: Login de usuário no sistema

O usuário acessa o sistema e é capaz de realizar uma ação de login.

Cenário: Usuário realiza login

  • Dado que eu estou na página de Login
  • Quando eu preencho o formulário com um usuário válido
  • E clico em "Login"
  • Então eu vejo a página "Dashboard"

Wiki: Visão Geral

Criação do documento de visão geral do projeto na Wiki.

Após a criação da Wiki do repositório no Github, será desenvolvida a página de documentação "Visão Geral".
Nela serão apresentados:

  1. Descrição geral do sistema;
  2. Objetivos do sistema;
  3. O contexto do desenvolvimento do sistema;
  4. A equipe de desenvolvimento responsável pelo sistema.

Registro: validar nome

O primeiro item a ser validado no cadastro deve ser o nome. Para um nome ser válido, é necessário que o mesmo siga as seguintes regras:

  • Maior ou igual a três (03) letras;
  • Menor ou igual a cinquenta (50) letras;
  • Obrigatório no ato do registro.

Feature: CRUD Turma

  • Adicionar turmas;
  • Editar turmas;
  • Deletar turmas;
  • Mostrar as turmas de um dado professor

Pull do Ambiente - Gabriel

  • Após a instalação do ambiente, próximo passo é que todos os membros da equipe
    tenham acesso aos arquivos.

Criação da página inicial

Baseado no Lo-Fi Sketch desenvolvido, é necessário criar a página inicial para acesso da aplicação.
Features como: Registro de aluno, Login e Logout dependem da criação da página inicial para que possa ser realizado o acesso, bem como os testes, a essas features.

Wiki: Planejamento da Sprint

Após a criação da Wiki do projeto, devemos planejar a Sprint atual.
O documento deve constar as datas de início e conclusão, os membros, papéis de cada membro, o planejamento em si, mudanças (caso ocorram) e o Backlog.

Registro: validar senha

Os sexto e sétimo itens a serem validados no cadastro devem ser a senha e a confirmação da senha. Para que possam ser validados devem seguir as seguintes regras:

  • Devem ser maiores ou iguais a seis (06) caracteres;
  • Devem ser menores ou iguais a doze (12) caracteres;
  • Devem ser iguais entre si;
  • Obrigatório no ato do registro.

Feature: Página monitoria

  • Como monitor
  • Para que eu possa encontrar tudo relacionado a monitoria nesse semestre em uma só página
  • Quero poder acessar uma página com minhas disciplinas

Feature: Editar turma

Funcionalidade: Eu, enquanto professor, sou capaz de editar uma turma cadastrada.

Cenário de Fundo:

  • Dado que o banco possui um aluno e um professor
  • E que o banco possui uma disciplina
  • E que o banco possui duas turmas cadastradas
  • E que eu estou na página de login de usuários
  • E que o "professor" está logado

Cenário: O professor efetua a edição de uma turma existente (Happy Path)

  • Quando eu clico em "Turmas"
  • Então eu devo estar na página de turmas
    # edit_1 = id do link 'Editar dados' para Turma de id = 1
  • Quando eu clico em "edit_1" da primeira turma
  • Então eu devo estar na página de edição de turma
  • Quando eu escolho o "H" do seletor "turma_turma"
  • E eu escolho o "Engenharia de Software" do seletor "turma_fk_cod_disciplina"
  • E eu escolho o "3" do seletor "turma_qnt_bolsas"
  • E eu aperto em "Atualizar turma"
  • Então eu devo estar na página de turmas
  • E eu devo ver "Turma atualizada com sucesso!"

Cenário: O professor tenta atualizar a turma para uma turma existente da mesma disciplina (Sad Path)

  • Dado que eu estou na página de turmas
    # edit_1 = id do link 'Editar dados' para Turma de id = 1
  • Quando eu clico em "edit_1" da primeira turma
  • Então eu devo estar na página de edição de turma
  • Quando eu escolho o "B" do seletor "turma_turma"
  • E eu escolho o "Engenharia de Software" do seletor "turma_fk_cod_disciplina"
  • E eu escolho o "9" do seletor "turma_qnt_bolsas"
  • E eu aperto em "Atualizar turma"
  • Então eu devo estar na página de turmas
    E eu devo ver "Turma B não é a única para a disciplina Engenharia de Software"

Pesquisa: Política de Branch

É necessário uma pesquisa sobre políticas de branch para a escolha de uma a ser aplicada no projeto.

A motivação dessa política é a organização do repositório para o desenvolvimento da equipe e de terceiros que venham a submeter pull requests no futuro.

Registro: validar RG

O quinto item a ser validado no cadastro deve ser o RG. Para um RG ser válido, é necessário que o mesmo siga as seguintes regras:

  • Maior que 7 dígitos;
  • Conter apenas números;
  • Obrigatório no ato do registro.

Feature: Registrar Disciplinas

Feature: Professor pode registrar disciplinas que necessitam de monitores

  • Dado que eu sou um professor
  • E que eu estou na página disciplinas
  • Quando eu clico em "Cadastrar nova disciplina"
  • Então eu devo ver um formulário
  • Quando eu preencho esse formulário
  • Então eu estou na página disciplinas
  • E eu devo ver "disciplina adicionada com sucesso"

Wiki: Arquitetura do Projeto

Após a criação do documento de "Visão Geral", o próximo passo é o inicio da decisão da arquitetura do projeto.

O documento deve conter todas as tecnologias utilizadas, uma breve explicação sobre e os motivos de escolha.

Registro: validar email

O terceiro item a ser validado no cadastro deve ser o email. Para um email ser válido, é necessário que o mesmo siga as seguintes regras:

Feature: Registrar Professor

Feature: Registrar usuário (Professor)

Um professor que acessa o sistema é capaz de se registrar manualmente

Cenário: Professor se registra no sistema (happy path)

  • Dado que eu estou na página de registro de professores
  • E eu preencho o formulário com informações válidas
  • E clico em "Registrar"
  • Então eu estou na página de registro de professores
  • E eu vejo a mensagem "Registro realizado com sucesso!"

Feature: Logout

Feature: Logout de usuário do sistema

O usuário acessa o sistema e é capaz de realizar uma ação de logout.
Cenário: Usuário realiza logout

  • Dado que eu estou na página de Dashboard
  • Quando eu clico em "Logout"
  • Então eu vejo a página a página principal da MonitoriaCIC

Pull do Ambiente - João

Pull do Ambiente

  • Após a instalação do ambiente, próximo passo é que todos os membros da equipe
    tenham acesso aos arquivos.

Feature: Voluntariar para monitor

Feature: Aluno pode aplicar para tentar a vaga de monitor em uma disciplina, dado que ele atinja os requisitos

  • Dado que eu sou um aluno
  • E eu estou na página disciplinas
  • Quando eu clicar em "Aplicar para monitor"
  • Então eu devo estar na página disciplinas
  • E eu devo ver "Solicitação enviada"

Usuário administrador

Usuário administrador, pode apagar e adicionar novas disciplinas, alunos, e professores

Registro: validar matrícula

O terceiro item a ser validado no cadastro deve ser a matrícula. Para uma matrícula ser válida, é necessário que a mesma siga as seguintes regras:

  • Exatamente 9 dígitos;
  • Contém apenas números;
  • Obrigatório no ato do registro.

Feature: Apagar alunos

Funcionalidade: Eu, enquanto Admin, consigo apagar alunos do sistema

Cenário de Fundo:

  • Dado que o banco possui um adminstrador
  • E que o banco possui um aluno e um professor
  • E que eu estou na página de login de usuários
  • E que o "admin" está logado

Cenário: Admin deleta um aluno existente no banco (Happy Path)

  • Quando eu clico em "Apagar alunos"
  • Então eu devo estar na página de apagar alunos
  • Quando eu preencho o formulário com:
    • | Matrícula | 140080279 |
  • E aperto em "Deletar aluno"
  • Então eu devo estar na página de apagar alunos
  • E eu devo ver "Aluno apagado com sucesso!"

Cenário: Admin tenta deletar um aluno não existente no banco (Sad path)

  • Dado que eu estou na página de apagar alunos
  • Quando eu preencho o formulário com:
    • | Matrícula | 140080278 |
  • E aperto em "Deletar aluno"
  • Então eu devo estar na página de apagar alunos
  • E eu devo ver "Aluno de matrícula 140080278 não existe."

Cenário: Admin aperta para deletar aluno sem preencher o campo matrícula (Sad path)

  • Dado que eu estou na página de apagar alunos
  • Quando eu preencho o formulário com:
    • | Matrícula | |
  • E aperto em "Deletar aluno"
  • Então eu devo estar na página de apagar alunos
  • E eu devo ver "Digite uma matrícula para deletar algum aluno."

Instalação do ambiente

Criação do ambiente ambiente Git

Criação remota

  • O primeiro passo será criar a aplicação em ambiente local;
  • Adicionalmente, a Gem 'Bootstrap' será instalada para auxliar com o layout básico.

Commit inicial

  • Após a criação do ambiente, será feito o upload do mesmo para o ambiente GitHub.

Feature: Departamento

Feature: Usuário pode acessar diretamente o website do departamento CIC.

  • Dado que eu estou na página principal
  • Quando eu clicar em "Departamento"
  • Então eu devo acessar página do CIC

Feature: FAQ

Feature: Usuário pode consultar perguntas frequentes a respeito da monitoria

  • Dado que eu estou na página principal
  • Quando eu clico em "FAQ"
  • Então estou na página de FAQ

Wiki: Política de Branch

Para o início do desenvolvimento do código da aplicação, é necessário criar uma polítca de branch para o repositório Github.

Essa será uma maneira - necessária - de organizar o desenvolvimento do projeto, tanto para a equipe, quanto para terceiros que venham a sugerir Pull Requests no futuro.

Essa issue depende de uma pesquisa sobre políticas de branch e qual será implementada para sua devida documentação.

Enhancement: Login

Melhorar o login para que contemple os diferentes tipos de usuários que podem logar (para onde será redirecionado após o login)

Feature: Editar perfil de professor

Funcionalidade: Eu, enquanto professor, consigo editar as informações do meu perfil

Cenário de Fundo:

  • Dado que o banco possui um aluno e um professor
  • Dado que eu estou na página inicial do MonitoriaCIC
  • Quando eu clico em "Entrar"
  • Então eu devo estar na página de login de usuários

Cenário: Professor edita qualquer informação do perfil

  • Dado que o "professor" está logado
  • E que está na página de editar perfil
  • Quando eu preencho o formulário com:
    • | Nome | Genaina Rodrigues |
    • | Username | bernas1104 |
    • | Nova senha | 110492-Bb |
    • | Confirmar nova senha | 110492-Bb |
  • E eu escolho o "Professor(a)" do seletor "Papel"
  • E eu aperto em "Atualizar cadastro"
  • Então eu devo estar na página de dashboard do usuário
  • E eu devo ver "Cadastro atualizado com sucesso!"

Cenário: Professor tenta editar perfil com informações inválidas

  • Dado que o "professor" está logado
  • E que está na página de editar perfil
  • Quando eu preencho o formulário com:
    • | Nome | |
    • | Username | |
    • | Nova senha | |
    • | Confirmar nova senha | |
  • E eu aperto em "Atualizar cadastro"
  • Então eu devo estar na página de dashboard do usuário
  • E eu não devo ver "Cadastro atualizado com sucesso!"

Feature: Editar perfil de aluno

Funcionalidade: Eu, enquanto aluno, consigo editar as informações do meu perfil

Cenário de Fundo:

  • Dado que o banco possui um aluno e um professor
  • Dado que eu estou na página inicial do MonitoriaCIC
  • Quando eu clico em "Entrar"
  • Então eu devo estar na página de login de usuários

Cenário: Aluno edita qualquer informação do perfil

  • Dado que o "aluno" está logado
  • E que está na página de editar perfil
  • Quando eu preencho o formulário com:
    • | Nome | Bernardo Costa |
    • | Matricula | 123456789 |
    • | CPF | 09646418104 |
    • | RG | 1234567 |
    • | Nova senha | 110492-Bb |
    • | Confirmar nova senha | 110492-Bb |
  • E eu aperto em "Atualizar cadastro"
  • Então eu devo estar na página de dashboard do usuário
  • E eu devo ver "Cadastro atualizado com sucesso!"

Cenário: Aluno tenta editar perfil com infomações inválidas

  • Dado que o "aluno" está logado
  • E que está na página de editar perfil
  • Quando eu preencho o formulário com:
    • | Nome | |
    • | Matricula | |
    • | CPF | |
    • | RG | |
    • | Nova senha | |
    • | Confirmar nova senha | |
  • E eu aperto em "Atualizar cadastro"
  • Então eu devo estar na página de dashboard do usuário
  • E eu não devo ver "Cadastro atualizado com sucesso!"

Feature: Dashboard dos usuários

Após realizar o login, o usuário é direcionado a página dashboard

User Storie:

  • Dado que estou na página de login de usuários
  • Quando eu preencho o formulário de login com um cadastro válido
  • E clico em "Login"
  • Então eu estou na página dashboard do usuário

Feature: Cadastro de dados bancários

Funcionalidade: O aluno é capaz de cadastrar e editar seus dados bancários

Cenário de Fundo:

  • Dado que o banco possui um aluno e um professor
  • Dado que eu estou na página de login de usuários
  • Dado que o "aluno" está logado
  • Quando eu clico em "Dados Bancários"
  • Então eu devo estar na página de dados bancários

Cenário: Eu, enquanto aluno, sou capaz de cadastrar meus dados bancários (Happy Path)

  • Quando eu clico em "Adicionar"
  • Então eu devo estar na página de cadastro de dados bancários
  • Quando eu preencho o formulário com:
    • | Banco | Banco do Brasil |
    • | Agência | 33804 |
    • | Conta Corrente | 394653 |
  • E aperto em "Cadastrar dados bancários"
  • Então eu devo estar na página de dados bancários
  • E eu devo ver "Dados bancários cadastrados com sucesso!"

Cenário: Eu, enquanto aluno, adiciono dados bancários com informações inválidas - Sad Path

  • Quando eu clico em "Adicionar"
  • Então eu devo estar na página de cadastro de dados bancários
  • Quando eu preencho o formulário com:
    • | Banco | |
    • | Agência | |
    • | Conta Corrente | |
  • E aperto em "Cadastrar dados bancários"
  • Então eu devo estar na página de dados bancários
  • E devo ver "Codigo can't be blank"
  • E devo ver "Codigo is too short (minimum is 6 characters"
  • E devo ver "Agencia can't be blank"
  • E devo ver "Agencia only numbers"
  • E devo ver "Conta corrente can't be blank"
  • E devo ver "Conta corrente only numbers"

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.