O Task Manager é uma aplicação web de gerenciamento de tarefas desenvolvida como parte de um desafio técnico. O objetivo principal deste projeto é demonstrar proficiência em tecnologias como Laravel, Livewire, Tailwind CSS, além de boas práticas em desenvolvimento de software e arquitetura de aplicações.
Este sistema permite que os usuários criem, editem, excluam e organizem tarefas em diferentes categorias. A interface foi projetada para ser intuitiva e responsiva, proporcionando uma experiência agradável ao usuário.
- CRUD de Tarefas: Criação, Leitura, Atualização e Exclusão de tarefas.
- Gerenciamento de Categorias: Criação de novas categorias ou uso de categorias existentes.
- Filtro de Tarefas por Categoria: Filtragem de tarefas com base em suas categorias para melhor organização.
- Status das Tarefas: Marcação de tarefas como Concluída ou Pendente.
- Interface Responsiva: Design responsivo utilizando Tailwind CSS, garantindo compatibilidade em diversos dispositivos.
- Laravel 10: Framework PHP utilizado para construir o backend da aplicação.
- Livewire: Framework para criação de interfaces dinâmicas e reativas sem sair do ecossistema do Laravel.
- Tailwind CSS: Framework de CSS utilitário para estilização da interface de usuário.
- MySQL: Banco de dados relacional usado para armazenar informações sobre tarefas e categorias.
- PHP 8.2: Linguagem de programação utilizada para o desenvolvimento da lógica do backend.
- Composer: Gerenciador de dependências do PHP.
- NPM: Gerenciador de pacotes utilizado para gerenciar as dependências do frontend.
- Models: Contêm as definições das tabelas e relacionamentos do banco de dados.
- Controllers: Gerenciam as requisições HTTP e processam a lógica da aplicação.
- Views: Definem o layout e os componentes da interface do usuário.
- Migrations: Gerenciam as versões do banco de dados.
- Components: Componentes do Livewire para criar interfaces dinâmicas.
Antes de iniciar, você precisará ter as seguintes ferramentas instaladas em sua máquina:
-
Clonando o Repositório
Clone este repositório em sua máquina local:
git clone https://github.com/deivisonpimentel/task_manager.git cd task_manager
-
Instalando Dependências
Instale as dependências do PHP e do Node.js:
composer install npm install
-
Configuração do Ambiente
-
Copie o arquivo
.env.example
para.env
:cp .env.example .env
-
Configure as variáveis de ambiente no arquivo
.env
:- Configuração do banco de dados (DB_DATABASE, DB_USERNAME, DB_PASSWORD).
- Configuração do servidor (APP_URL, APP_ENV).
-
-
Geração da Chave da Aplicação
Gere uma nova chave para a aplicação Laravel:
php artisan key:generate
-
Migrações do Banco de Dados
Execute as migrações para criar as tabelas necessárias no banco de dados:
php artisan migrate
-
Rodando a Aplicação
Inicie o servidor de desenvolvimento e o compilador de CSS/JavaScript:
php artisan serve npm run dev
Acesse a aplicação através de
http://localhost:8000
.
- Clique no botão "Nova Tarefa".
- No modal que aparecer, preencha o título, a descrição e selecione uma categoria ou crie uma nova.
- Escolha o status da tarefa (Concluída ou Pendente).
- Clique em "Adicionar Tarefa" para salvar.
- Para editar uma tarefa, clique no ícone de lápis ao lado da tarefa desejada.
- Faça as modificações no modal que aparecer.
- Clique em "Atualizar Tarefa" para salvar as alterações.
- Para excluir uma tarefa, clique no ícone de lixeira ao lado da tarefa que deseja remover.
- Confirme a exclusão, se necessário.
- Utilize o filtro de categorias na interface para visualizar apenas as tarefas pertencentes a uma determinada categoria.
- Relação: Cada tarefa pertence a uma categoria.
- Campos:
title
,description
,category_id
,completed
.
- Relação: Cada categoria pode ter várias tarefas.
- Campos:
name
.
- TaskManager: Gerencia as ações de criação, edição, exclusão e filtragem de tarefas.
Contribuições são sempre bem-vindas! Se você tiver sugestões para melhorar este projeto, sinta-se à vontade para abrir uma issue ou enviar um pull request.
Este projeto está licenciado sob a Licença MIT.