GithubHelp home page GithubHelp logo

react-solarenergy's People

Contributors

adrianovolter avatar deborasous avatar douglasfabris avatar ericocoutojr avatar fhoinaski avatar huitson-pereira avatar karolrdg avatar luis-vilar avatar patricia-vasques avatar rafazamp avatar ricardo-werner avatar rosanarezende avatar thiagothe avatar wgeovanni avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar

react-solarenergy's Issues

Lançamento de geração mensal

Criar tela de Lançamento de geração mensal contendo um formulário com campos conforme o figma

  • Lista como opção as unidades já cadastradas com Select
  • Data
  • Campo de total kw gerado (aceita somente números)
  • Botão salvar (chama evento de onSubmit e cadastrar valores na API na rota /geracoes).

O modelo de referência é a imagem abaixo:

Image

Tela de Dashboard

Criar uma tela de Dashboard contendo 4 cards, conforme o prototipo do figma
Total de unidades
Unidades ativas (exibir total de unidades com status ativo(true)
Unidades inativas (exibir total de unidades com status inativo(false)
Média de energia (soma de todos os total / total de unidades)

Dashboard

  • total = tamanho da lista
  • unidades ativas = filtro por ativa === true
  • unidades inativas = filtro por ativa === false
  • média = com base na tabela de lançamentos

Image

Criação da Autenticação da LoginPage

O que fazer?

Criar um código de autenticação para a página de Login, contendo:

  • Verificação no arquivo json (usuarios), da existência do usuário cadastrado
  • Após a permissão de entrar, guardar o login no LocalStorage e redirecionar para a página de dashboard
  • Caso não tenha permissão, apresentar uma mensagem informando o erro ("Acesso negado, verificar dados de e-mail e senha e tentar novamente) e recarregar a página inicial do sistema.

Listagem de unidades

Criar uma tela de Listagem de unidades (exibida na rota /unidades) contendo uma tabela com as colunas baseado no protótipo do figma.

Image

  • ID
  • Apelido
  • Local
  • Marca
  • Modelo
  • Botão remover: deve remover unidade clicada via DELETE na rota /unidades/:id
  • Botão de editar: enviar usuário para tela de edição de unidade.

Ao renderizar a tela, trazer os campos preenchidos com as informações da unidade clicada, ao clicar em salvar, salvar os valores via PUT na rota /unidades/:id

Além disso, a tela deve conter um botão Nova unidade: enviar usuário para tela de cadastro de unidade.

Na tela de unidades é precisar usar um estado
apareceLista = estado inicial true

clico em nova unidade = false
clico em salvar = true

Fix Bug ao salvar valor numérico com string no json.

Deverá ser corrigido o problema referente ao dado que deveria ser numérico no INPUT da energia gerada.
{
"id_unidade": "abc",
"data": "2023-12",
"total": "150",
"id": "LBOiBdF"
}
Este valor deve ser salvo como numérico para evitar problemas de calculo de média.
{
"id_unidade": "abc",
"data": "2023-12",
"total": 150,
"id": "LBOiBdF"
}

Desafio : Grafico

DESAFIO: A tela também deve conter um gráfico de linha exibindo os meses do ano. O gráfico deverá exibir o total de energia gerado por mês, sendo assim deve-se realizar a soma por mês do total gerado de todas as unidades e exibir no gráfico o total de cada mês, o eixo x deve-se exibir os últimos 12 meses e no eixo y o total por mês
Usar a lib react chart js

Criar backend com JSON-Server

Instalar e configurar a lib axios

Será necessário criar 3 endpoints na url http://localhost:3000/

Os dados deverão estar no arquivo data.json dentro da pasta /database que estará na raiz do projeto

  • /usuarios
[
  {
  	id: "oioi",
  	email: [email protected],
  	senha: minhasenha,
  },
  {
  	id: "eiei",
  	email: [email protected],
  	senha: 123456,
  }
]
  • /unidades
[
  {
	id: abc,
	apelido: Painel 1,
	local: Rua 5,
	marca: Canadian,
	modelo: 155w,
	ativa: true
  },
    {
	id: def,
	apelido: Painel 2,
	local: Rua 10,
	marca: Borboletinha,
	modelo: 220w,
	ativa: false
  },
]
  • /lancamento
 [
  {
  	id: 123,
  	id_unidade: def,
  	data: 02/2022,
  	total: 80
  },
  {
  	id: 456,
  	id_unidade: def,
  	data: 03/2022,
  	total: 160
  }
]

Tela de Login

Criar uma Tela de Login contendo um formulário com campos de email e senha, baseado no protótipo do figma.

  • Os campos de email e senha são obrigatórios ( Validar ao disparar o evento de onSubmit).
  • Ao clicar no botão de Entrar e passar pela validação, redirecionar para tela de Dashboard.

Image

Tela de Cadastro de unidade

Uma tela de cadastro de unidade, conforme Figma e deve conter um formulário com os seguintes campos:

  • Apelido,
  • Local,
  • Marca,
  • Modelo
  • Status (Checkbox) .

Ao clicar no botão salvar, chamar o evento de onSubmit e cadastrar unidade na API. Todos os campos do formulário são obrigatórios.

Criar estado:

  • usar um estado
    apareceLista = estado inicial true
  • clico em nova unidade = false
  • clico em salvar = true

Image

Lançamento de Geração Mensal

Criar uma tela de Lançamento de geração mensal contendo um formulário com um (listando como opção as unidades já cadastradas), um campo de data e um campo de total kw gerado (aceita somente números). O protótipo de referência está no figma. Botão Salvar Ao clicar em salvar, chamar evento de onSubmit e cadastrar valores na API (na rota /geracoes). O modelo abaixo da tela.

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.