O projeto é uma agenda parecido com o Google Calendar, onde é possível criar, editar e excluir eventos.
O projeto está disponível em https://agenda-react-dexie-six.vercel.app/.
git clone https://github.com/matheuslanduci/agenda-react-dexie
cd agenda-react-dexie
bun install # ou npm install
bun dev # ou npm run dev
O layout foi feito com base no Google Calendar. Pedi para o v0.dev gerar um layout parecido com o Google Calendar e ele fez um ótimo trabalho - porém o layout não é funcional, então tive que implementar as funcionalidades propostas.
Acesse o layout gerado clicando aqui..
O Dexie é uma biblioteca de banco de dados que permite criar bancos de dados indexados no navegador.
Eu precisava de um banco de dados para armazenar os eventos e o Dexie foi a escolha para isso.
O Jotai é uma biblioteca de gerenciamento de estado que permite criar estados atômicos e reativos.
Eu precisava gerenciar o estado de forma global na aplicação - por exemplo, o valor do Select de tipo de exibição (mês, semana, dia) - e o Jotai foi a escolha para isso.
O React Hook Form é uma biblioteca de formulários que permite criar formulários de forma simples.
Já é uma escolha bem sólida no mercado e eu já tinha experiência com ela.
O Arktype é uma biblioteca nova que permite criar validações de forma simples e declarativa como se fosse TypeScript.
Eu queria testar essa biblioteca e ver como ela se comportava em um projeto real.
O date-fns é uma biblioteca de manipulação de datas que permite fazer operações com datas de forma simples.
Também é uma escolha sólida no mercado.
O Tailwind CSS é uma biblioteca de estilização que permite criar estilos de forma simples e rápida.
Eu já tinha experiência com ele e queria testar a nova versão.
O ShadCN é uma biblioteca de componentes que permite criar componentes de forma simples e rápida.
Implementar componentes de calendário é uma tarefa complexa e o ShadCN me ajudou muito nisso.