monitoriacic's People
Forkers
pedrosusername iannery cristianenaves santosdanilo masathayde vinis-caixe giovana100 titofrota leonardoribas joaopedroassis cadu-or alexandre-ss lucasseabragomes rayxanmonitoriacic'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: Escolha de monitor
Como professor;
Para que minha disciplina tenha um monitor;
Quero aceitar a aplicação de um aluno.
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!"
Feature: CRUD Disciplina
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!"
Instalação do Banco de Dados
Após a reunião de quarta (09/05), recebemos um e-mail do Adriano Souza avisando sobre a disponibilização do banco de dados para o sistema MonitoriaCIC.
É necessário baixar o arquivo do repositório, e a incorporação do modelo já existente a aplicação em desenvolvimento.
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.
- O CPF deve conter exatamente 11 dígitos;
- Deve contem apenas números;
- Os dois últimos dígitos devem ser válidos.
- É possível verificar os cálculos necessários para validação dos dígitos em: http://laennder.com/como-e-feito-o-calculo-de-validacao-cpf/
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:
- Descrição geral do sistema;
- Objetivos do sistema;
- O contexto do desenvolvimento do sistema;
- 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
Wiki: Regras de Negócio (Sprint #2)
Definição das regras de negócio do projeto e sua devida documentação na página da Wiki.
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.
Feature: Mostrar turmas de um dado professor
Eu, enquanto professor, consigo ver todas as turmas que cadastrei.
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.
Feature: Editar Disciplina
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:
- Email no formato: [email protected] ou [email protected]
- Menor ou igual a cinquenta (50) letras;
- Obrigatório no ato do registro.
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
Estudo: Implementar diferentes níveis de acesso
Como registrar alunos, monitores, professores, administradores e cada um deles ter diferentes níveis de acesso no site.
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
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.