Giter Club home page Giter Club logo

gerenciador-de-tarefas's Introduction

Como executar

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.

Informações adicionais

  • 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.

Requisitos não funcionais

# 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.

Requisitos funcionais

RF1 - Autenticação

# 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

RF2 - Tela de listagem de tarefas

# 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

RF3 - Tela de cadastro de tarefas

# 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

RF4 - Detalhes da tarefa

# 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

gerenciador-de-tarefas's People

Contributors

joaonorr avatar rafaelabsenai avatar

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.