WorkClock é uma aplicação web para gerenciar e monitorar o tempo gasto em diferentes tarefas. O usuário pode adicionar uma tarefa, definir o tempo necessário, iniciar o cronômetro e visualizar um histórico das tarefas realizadas.
- Vite: Ferramenta de build rápida e eficiente.
- Styled Components: Estilização com "CSS in JS", permitindo escrever CSS diretamente na sintaxe do JavaScript.
- React Hook Form: Gerenciamento de formulários com suporte à validação.
- Zod: Biblioteca de validação e parsing para TypeScript e JavaScript.
- Immer: Facilita o trabalho com dados imutáveis.
- Date-fns: Manipulação de datas de forma simples e eficiente.
- Phosphor React: Pacote de ícones para uso em React.
- Adicionar Tarefa: Permite ao usuário definir o nome e o tempo estimado para a tarefa.
- Iniciar Cronômetro: Inicia o cronômetro para monitorar o tempo gasto na tarefa.
- Interromper Cronômetro: Possibilidade de interromper o cronômetro antes do tempo acabar.
- Histórico: Visualização das tarefas realizadas e seus respectivos tempos.
-
Clonar o repositório:
git clone https://github.com/seu-usuario/workclock.git cd workclock -
Instalar dependências:
npm install
-
Iniciar o projeto:
npm run dev
-
Criação do Projeto:
- Iniciado com Vite:
npm create vite@latest. - Remoção dos arquivos desnecessários que vêm junto com o template do Vite.
- Iniciado com Vite:
-
Estilização:
- Adição de
styled-componentspara estilização:npm i styled-components. - Suporte ao TypeScript:
npm i @types/styled-components -D.
- Adição de
-
Fonts e Ícones:
- Adicionadas fontes do Google e ícones com
phosphor-react:npm i phosphor-react.
- Adicionadas fontes do Google e ícones com
-
Formulários:
- Utilização do
React Hook Formpara gerenciamento de formulários:npm i react-hook-form. - Validação com
Zode@hookform/resolvers:npm i zod @hookform/resolvers.
- Utilização do
-
Manipulação de Datas:
- Biblioteca
date-fnspara manipulação de datas:npm i date-fns.
- Biblioteca
-
Gerenciamento de Estado:
- Utilização do padrão
useReducerpara gerenciamento de estado complexo. - Implementação de imutabilidade com
Immer:npm i immer.
- Utilização do padrão
- Estilização: Utilização de
styled-components. - Roteamento: Implementação de rotas com
React Router Dom. - Context API: Gerenciamento de estados globais utilizando o Context API.
- Reducers: Aplicação do hook
useReducerpara gerenciamento de dados complexos. - Imutabilidade: Facilitação com
Immer. - Validações: Formulários gerenciados e validados com
React Hook FormeZod.
Sinta-se à vontade para contribuir com o projeto, abrindo uma issue ou enviando um pull request.
Este projeto está sob a licença MIT.