GithubHelp home page GithubHelp logo

samuel-amaro / app-web-faturamento Goto Github PK

View Code? Open in Web Editor NEW
2.0 1.0 0.0 622 KB

Projeto de estudo, para aprendizado de tecnologias relacionados ao front-end, aplicativo web de faturamento, o usuário pode criar, excluir, visualizar e mudar status de faturas ou cobranças.

Home Page: https://app-web-faturamento.vercel.app

JavaScript 0.07% CSS 23.70% TypeScript 76.24%
client-components context-api css-modules localstorage nextjs13 react reducers typescript css localstorage-api

app-web-faturamento's Introduction

Aplicativo Web de fatura

Índice

Visão geral

O desafio

Os usuários devem ser capazes de:

  • Veja o layout ideal para o aplicativo, dependendo do tamanho da tela do dispositivo
  • Veja os estados de foco para todos os elementos interativos na página
  • Criar, ler, atualizar e excluir faturas
  • Receber validações de formulário ao tentar criar/editar uma fatura
  • Salve rascunhos de faturas e marque as faturas pendentes como pagas
  • Filtrar faturas por status (rascunho/pendente/pago)
  • Alterna entre modo claro e escuro
  • Bônus: Acompanhe todas as alterações, mesmo depois de atualizar o navegador (localStorage pode ser usado para isso se você não estiver criando um aplicativo full-stack)

Comportamento esperado

  • Criação de fatura
    • Ao criar uma nova fatura, é necessário criar um ID. Cada ID deve ter 2 letras maiúsculas aleatórias seguidas por 4 números aleatórios.
    • As faturas podem ser criadas como rascunhos ou pendentes. Clicar em "Salvar como rascunho" deve permitir que o usuário deixe qualquer campo de formulário em branco, mas deve criar um ID se não existir e definir o status como "rascunho". Clicar em "Salvar e enviar" deve exigir que todos os campos do formulário sejam preenchidos e deve definir o status como "pendente".
    • Alterar o campo Termos de Pagamento deve definir a propriedade termosPagamento com base na data criadoEm mais os números de dias definidos para os termos de pagamento.
    • O total deve ser a soma de todos os itens da nota fiscal.
  • Editar uma fatura
    • Ao salvar alterações em uma fatura, todos os campos são obrigatórios ao clicar no botão "Salvar alterações". Se o usuário clicar em "Cancelar", todas as alterações não salvas devem ser redefinidas.
    • Se a fatura que está sendo editada for "rascunho", o status precisa ser atualizado para "pendente" ao clicar no botão "Salvar alterações". Todos os campos são obrigatórios nesta fase.
  • Os usuários devem poder marcar as faturas como pagas clicando no botão "Marcar como pagas". Isso deve alterar o status da fatura para "pago".
  • Os usuários devem receber um modal de confirmação ao tentar excluir as faturas.
  • Sinta-se à vontade para não adicionar estilo personalizado para os campos de formulário de data e dropdown. Os designs para esses campos são extras opcionais e são principalmente para fins de ilustração.

Captura de tela

Links

Meu processo

Construído com

  • Marcação HTML5 semântica
  • Acessibilidade HTML com arias atributos e roles
  • CSS(Flexbox, Grid, Bem Metodologia, Mobile-First, Responsive Web Design, Normalize)
  • Typescript
  • NPM
  • React - Biblioteca JS
    • hooks(useState, useEffect, useReducer, custom hooks)
    • Gerenciamento Estado - Context API com reducers
    • React-Hook-Form - Hook Gerenciamento Form
  • Next.js - Next App Router
    • Client Components
    • Metadatas Static, and dinamic
    • Loading UI
    • Route Handles
    • Page Error Handling
    • Parallel Routes
  • CSS Modules - Para estilos
  • LocalStorage Web API Browser - Armazenar Dados

Autor

Começando

Este é um projeto Next.js inicializado com [create-next-app](https://github.com/vercel/next.js/tree/canary/packages /criar-próximo-aplicativo).

Primeiro, execute o servidor de desenvolvimento:

npm run dev
# ou
desenvolvedor de fios
# ou
desenvolvedor pnpm

Abra http://localhost:3000 com seu navegador para ver o resultado.

Você pode começar a editar a página modificando app/page.tsx. A página é atualizada automaticamente conforme você edita o arquivo.

Este projeto usa next/font para otimizar e carregar automaticamente Inter, uma fonte personalizada do Google.

app-web-faturamento's People

Contributors

samuel-amaro avatar

Stargazers

 avatar  avatar

Watchers

 avatar

app-web-faturamento's Issues

Criação de fatura

  • Ao criar uma nova fatura, é necessário criar um ID. Cada ID deve ter 2 letras maiúsculas aleatórias seguidas por 4 números aleatórios.
  • As faturas podem ser criadas como rascunhos ou pendentes. Clicar em "Salvar como rascunho" deve permitir que o usuário deixe qualquer campo de formulário em branco, mas deve criar um ID se não existir e definir o status como "rascunho". Clicar em "Salvar e enviar" deve exigir que todos os campos do formulário sejam preenchidos e deve definir o status como "pendente".
  • Alterar o campo Payments Terms deve definir a propriedade termosPagamento com base na data dataFatura mais os números de dias definidos para os termos de pagamento.
  • O total deve ser a soma de todos os itens da nota fiscal.

Editar uma fatura

  • Ao salvar alterações em uma fatura, todos os campos são obrigatórios ao clicar no botão "Salvar alterações". Se o usuário clicar em "Cancelar", todas as alterações não salvas devem ser redefinidas.
  • Se a fatura que está sendo editada for "rascunho", o status precisa ser atualizado para "pendente" ao clicar no botão "Salvar alterações". Todos os campos são obrigatórios nesta fase.
  • Os usuários devem poder marcar as faturas como pagas clicando no botão "Marcar como pagas". Isso deve alterar o status da fatura para "pago".

Usuários

Seus usuários devem ser capazes de:

  • Veja o layout ideal para o aplicativo, dependendo do tamanho da tela do dispositivo
  • Veja os estados de foco para todos os elementos interativos na página
  • Criar, ler, atualizar e excluir faturas
  • Receber validações de formulário ao tentar criar/editar uma fatura
  • Salve rascunhos de faturas e marque faturas pendentes como pagas
  • Filtrar faturas por status (rascunho/pendente/pago)
  • Alternar modo claro e escuro
  • Bônus: Acompanhe todas as alterações, mesmo depois de atualizar o navegador (localStorage pode ser usado para isso se você não estiver criando um aplicativo full-stack)

Excluir Faturas

  • Os usuários devem receber um modal de confirmação ao tentar excluir as faturas.

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.