Desenvolver uma aplicação web de gerenciamento de tarefas. A aplicação deve permitir que os usuários criem, editem e excluam tarefas, bem como visualizar o status de cada tarefa em diferentes listas. Este é um aplicativo desenvolvido com Vue 3, TypeScript e várias bibliotecas de suporte para criar uma experiência de usuário robusta e moderna.
- Vue 3 (Composition API)
- TypeScript
- Vite
- Vue Router
- Pinia (Gerenciamento de Estado)
- Tailwind CSS
- Json server (mock de dados)
- Axios
- Vee-Validate
- Zod (Validação de Esquemas)
- Vue Toastification (Notificações)
- Date-fns (Manipulação de Datas)
- Lucide Vue (Ícones)
- Class Variance Authority (Variantes para os componentes)
src/
│
├── assets/ # Recursos estáticos
├── components/ # Componentes reutilizáveis
│ ├── AppButton.vue
│ ├── AppInput.vue
│ └── ...
│
├── composables/ # Hooks personalizados do Vue
│ ├── useCreateTask.ts
│ ├── useEditTask.ts
│ └── ...
│
├── constants/ # Constantes do projeto
│ ├── category-options.ts
│ └── routes-names-enum.ts
│
├── helpers/ # Serviços e utilitários
│ ├── http-client.ts
│ ├── task-service.ts
│ └── user-service.ts
│
├── layouts/ # Layouts de página
│ ├── HeaderApplication.vue
│ └── SignContainer.vue
│
├── mocks/ # Arquivo de mock da aplicação
│ └── db.json
│
├── router/ # Gerenciamento de rotas da aplicação
│ ├── auth-guard.ts
│ └── index.ts
│
├── stores/ # Gerenciamento de estado com Pinia
│ ├── local-storage-plugin.ts
│ └── user.ts
│
├── types/ # Definições de tipos TypeScript
│ ├── task.ts
│ └── user.ts
│
├── validations/ # Esquemas de validação Zod
│ ├── create-task-schema.ts
│ └── signin-schema.ts
│
└── views/ # Componentes de página
├── SigninView.vue
├── SignupView.vue
└── TaskListView.vue
- Criação de tarefas
- Edição de tarefas
- Exclusão de tarefas
- Filtragem de tarefas por nome, categoria e prioridade
- Registro de novos usuários
- Login de usuários
- Validação de formulários
- Gerenciamento de estado de usuário
- Gerenciamento de rotas privadas
- Node.js (versão 20 ou superior)
- npm
- Clone o repositório
git clone https://github.com/Joaopsguimaraes/BextTeste.git
- Instale as dependências
cd BextTeste
npm install
- Copie o arquivo de ambiente
cp .env.example .env
- Inicie o servidor de mock
npm run mock
- Inicie o servidor de desenvolvimento
npm run dev
npm run dev
: Inicia o servidor de desenvolvimentonpm run mock
: Inicia o mock da aplicação com json-servernpm run build
: Compila o projeto para produçãonpm run preview
: Visualiza a build de produção localmentenpm run test
: Executa os testes unitáriosnpm run lint
: Executa o linter
Crie um arquivo .env
com as seguintes configurações:
VITE_API_BASE_URL=http://localhost:3000/api
- Utilização de Composition API
- Separação de responsabilidades
- Reutilização de lógica
- Componentes pequenos e focados
- Utilização de props e eventos
- Componentização de elementos comuns
- Utilização do Pinia para estado global
- Utilização de local storage com Pinia
- Módulos de store específicos para cada contexto
João Guimarães - joaovpsguimaraes@gmail.com
Link do Projeto: https://github.com/Joaopsguimaraes/BextTeste
- Utilização da Composition API em todo projeto.
- Utilização de Provide / Inject para fornecer valores para componentes descendentes
- Utilização do pinia, aprofundando em conhecimentos com a storage.
- Criação do auth guard para manter rotas privadas protegidas.
- Utilização da local storage para manter dados do usuário, mesmo caso a aplicação reinicie.
- Criação de componentes de formulário de forma reaproveitada em qualquer parte do projeto.
- Validação reativa com vee-validate e zod.
- Componentes reaproveitável como TaskForm sendo utilizado para criar e editar uma task.
- Criação e utilizações de hooks para deixar o componente mais limpo e a logica aplica nos hooks.
- Criação de helpers para serviços e utilitários também deixando o código mais limpo e estruturado.