Todo o ambiente de desenvolvimento foi configurado em um container Docker, para executar o sistema e o banco de dados, basta executar o comando abaixo na pasta TarefasFIESC
:
$ docker-compose up -d
O comando acima irá criar um container com o banco de dados rodando na porta 5432 e o sistema rodando na porta 5000.
- A aplicação foi desenvolvida utilizando o Entity Framework Core para criar as migrations e o banco de dados da .
- A aplicação foi desenvolvida utilizando o Razor com ASP.NET Core
- A aplicação foi desenvolvida utilizando o Docker para rodar o banco de dados
- A aplicação faz autenticação por meio de tokens armazenados em sessões para acessar as telas internas
- O tipo de token utilizado foi o JWT com a biblioteca
Microsoft.AspNetCore.Authentication.JwtBearer
- A aplicação possui paginação onde cada página lista até 10 resultados por página, além de conseguir ordenar as colunas da tabela e realizar buscas por elementos da tabela.
# | Descrição | Comentários |
---|---|---|
RNF1 | A estrutura do banco de dados deve ser criada através de migrations. | Foi utilizado o Entity Framework Core para criar as migrations. |
RNF2 | A linguagem de programação para uso é livre, desde que a mesma suporte o paradigma orientado a objetos. | A linguagem utilizada foi C#. |
RNF3 | Pode ser utilizado ou não frameworks. | A aplicação utilizou vários frameworks, como o Entity Framework Core, Razor Pages, ASP.NET Core, entre outros. |
RNF4 | Deve ser um monolito, a aplicação não deve ser separada em back e front. | A aplicação foi desenvolvida como um monolito, utilizando o Razor Pages para a parte de front-end. |
RNF5 | Para o desenvolvimento do sistema deverá ser utilizado o banco de dados PostgreSQL. | O banco de dados utilizado foi o PostgreSQL em um container Docker. |
# | Descrição | Comentários | Concluído |
---|---|---|---|
1 | O acesso ao sistema deverá se dar através de login e senha, sendo que o usuário não poderá acessar as telas internas se não informar os dados corretos. | O sistema utiliza autenticação por meio de utilização de tokens armazenados em sessões para acessar as telas internas, sendo que o usuário não poderá acessar as telas internas se não informar os dados corretos. | Sim |
# | Descrição | Comentários | Concluído |
---|---|---|---|
1 | Deverá possuir um link que direcione o usuário para a tela de cadastro de tarefa (RF3). | O sistema possui um link que direciona o usuário para a tela de cadastro de tarefa. | Sim |
2 | Deverá listar em uma tabela todas as tarefas que não estejam concluídas, as colunas devem ser: Número da tarefa (id); Título da tarefa;Tipo da tarefa; Prioridade da tarefa; Data de abertura; Responsável pela Tarefa | O sistema lista em uma tabela todas as tarefas que não estejam concluídaS com as colunas requisitadas. | Sim |
3 | Deverá ter uma paginação onde cada página deverá listar até 10 resultados por página. | O sistema possui paginação onde cada página lista até 10 resultados por página, além de conseguir ordenar as colunas da tabela e realizar buscas por elementos da tabela. | Sim |
4 | Na coluna id, da tabela de listagem de tarefas, deverá conter um link que direcione o usuário para a página de visualização (RF4) deste registro. | Ao clicar no id da tarefa, o usuário é direcionado para a página de visualização da tarefa. | Sim |
5 | Quando for inserido um novo registro, deverá ser mostrada uma mensagem de sucesso informando que a tarefa com o id XXXX foi inserida com sucesso. | Quando é inserido um novo registro, é mostrada uma mensagem de sucesso informando o id da tarefa | Sim |
6 | Na tabela de listagem de tarefas, os registros que estiverem sob a responsabilidade do usuário logado deverão aparecer com a cor alaranjada. | Os registros que estiverem sob a responsabilidade do usuário logado aparecem com a cor amarelada (cor escolhida pois fica mais agradável aos olhos) . | Sim |
# | Descrição | Comentários | Concluído |
---|---|---|---|
1 | O formulário de cadastro de tarefas deverá exibir os campos abaixo, sendo que todos eles são obrigatórios: Título; Tipo; Prioridade; Descrição | O formulário de cadastro de tarefas exibe os campos requisitados | Sim |
2 | O campo Prioridade será uma caixa de lista suspensa (combo) com os seguintes valores disponíveis para seleção: Alta; Média; Baixa Sem prioridade | O campo Prioridade é uma caixa de lista suspensa (combo) com os valores requisitados | Sim |
3 | O campo Tipo será uma caixa de lista suspensa (combo) com os seguintes valores disponíveis para seleção: Incidente; Solicitação de serviço; Melhoria; Projeto | O campo Tipo é uma caixa de lista suspensa (combo) com os valores requisitados | Sim |
4 | O campo Descrição será do tipo Rich Text e poderá conter formatação em HTML. | O campo Descrição é do tipo Rich Text não sendo possível inserir formatação em HTML. | Não |
5 | O botão Salvar deverá salvar os dados preenchidos nos campos do formulário sendo que a data de abertura deve considerar a data atual e o responsável deverá ser o usuário responsável pelo cadastro do registro. | O botão Salvar salva os dados preenchidos nos campos do formulário sendo que a data de abertura é a data atual e o responsável é o usuário logado. | Sim |
6 | O botão Cancelar deverá retornar o usuário para a página de listagem (RF2) sem fazer qualquer alteração no banco de dados. | O botão Cancelar retorna o usuário para a página de listagem sem fazer qualquer alteração no banco de dados. | Sim |
7 | Após salvar os registros no banco de dados, o usuário deverá ser redirecionado para a tela de listagem (RF2) com a mensagem de registro inserido com sucesso. | Após salvar os registros no banco de dados, o usuário é redirecionado para a tela de listagem com a mensagem de registro inserido com sucesso. | Sim |
# | Descrição | Comentários | Concluído |
---|---|---|---|
1 | A tela de detalhes deverá conter as seguintes informações referente a tarefa: Número da tarefa; Título da tarefa; Responsável pela tarefa; Prioridade da tarefa; Tipo de tarefa; Data de criação; Descrição da tarefa; Situação da tarefa | A tela de detalhes contém as informações requisitadas | Sim |
2 | Deverá haver um botão que permita que outro usuário assuma a tarefa, sendo que somente o usuário logado poderá assumir a tarefa. O botão não deverá aparecer caso o usuário logado seja o responsável pela tarefa. | O botão que permite que outro usuário assuma a tarefa aparece somente se o usuário logado não for o responsável pela tarefa. | Sim |
3 | Deverá haver um botão que permita fechar a tarefa, este botão só estará disponível para o usuário responsável pela tarefa e enquanto a tarefa estiver concluída. Ao clicar no botão de finalizar tarefa o mesmo deverá solicitar uma nova providência explicando o que foi feito na tarefa e logo em seguida o status da tarefa deve ser alterado para Concluída. | O botão que permite fechar a tarefa aparece somente se o usuário logado for o responsável pela tarefa e enquanto a tarefa estiver aberta. Ao clicar no botão de finalizar tarefa o mesmo solicita uma nova providência explicando o que foi feito na tarefa e logo em seguida o status da tarefa é alterado para Concluída. | Sim |
4 | O campo Descrição deverá estar disponível para Somente Leitura (read only) e deverá exibir a descrição da tarefa. | O campo Descrição está disponível para Somente Leitura (read only) e exibe a descrição da tarefa. | Sim |
5 | Deverá haver um campo do tipo Rich Text que aceite HTML para que seja digitado uma nova providência e só estará habilitado para digitação se o usuário logado for o responsável pela tarefa e a tarefa não esteja concluída. | Não foi possível implementar o campo do tipo Rich Text que aceite HTML para que seja digitado uma nova providência. | Não |
6 | Deverá haver um botão de salvar que permita salvar o texto digitado no banco de dados e só estará habilitado para digitação se o usuário logado for o responsável pela tarefa e a tarefa não estiver concluída. A observação deverá salvar o usuário cadastrado, a data de cadastro e o texto digitado no campo observação. | O botão de salvar permite salvar o texto digitado no banco de dados. A observação salva o usuário cadastrado, a data de cadastro e o texto digitado no campo observação. | Sim |
7 | Deverá ser exibido na tela a lista de observações já cadastradas, ordenadas pela data de criação, da mais recente para a mais antiga. | A lista de observações é exibida na tela ordenadas pela data de criação, da mais recente para a mais antiga. | Sim |
8 | Deverá exibir o usuário responsável pelo cadastro da observação e a data e a hora em que a mesma foi cadastrada. | A observação e a data e a hora em que a mesma foi cadastrada são exibidos. | Sim |
9 | Será possível editar somente a última observação e somente se o usuário logado for o criador da providência e responsável pela tarefa. | Não foi possível implementar a edição da última observação. | Não |
10 | A edição não poderá ser realizada se a tarefa estiver concluída. | Não foi possível implementar a edição da última observação. | Não |