API Rest para agendamento e lembrete de tarefas que permite:
- Cadastro e login de usuários com autenticação via JWT
- Confirmação de cadastro por email;
- Cadastro de tarefas do usuário (nome, data, hora);
- O usuário é informado por email 10 minutos antes da sua tarefa;
- Importação de lista de tarefas por meio de arquivo Excel (.xlsx);
Recursos disponíveis:
- User
- Registro
- Verificação de E-mail
- Atualização
- Deleção
- Task
- Agendamento
- Atualização
- Exclusão
- Importação de arquivo excel (.xlsx)
- (PLUS) Agendamento de tarefa compartilhada com outro usuário
Você pode acessar mais detalhes na seção Documentação.
A versão em desenvolvimento da API pode ser acessada pelo endpoint: https://dev.elyabe.com/api.
Os detalhes dos endpoints, todas as rotas, parâmetros e suas respectivas restrições podem ser acessados aqui. Nela também conta em anexo uma coleção do Postman pronta para uso.
Ao atualizar a documentação, a nova versão pode ser disponibilizada executando o comando:
php artisan apidoc:generate [--force]
-
Clone este projeto;
git clone https://github.com/Elyabe/vila-task-reminder.git
-
Instale as dependências utilizando o Composer, executando o seguinte comando na raíz do projeto
composer install
-
Configure as variáveis de ambiente execute o seguinte comando também na raíz do projeto
cp .env.example .env
-
Lance o container com o comando:
docker-compose up --build -d
A fim de facilitar as tarefas de desenvolvimento, a API está conteineirizada utilizando o docker-compose em três contêineres:
- vila-task-reminder: Conteiner da servidor Apache2 + PHP7
- vila-task-reminder-mysql: Conteiner suporte da base de dados da aplicação
- vila-task-reminder-scheduler: Responsável pelo notificador/lembrete de tarefas de forma antecipada.
Aguarde até que o docker informe que os contêineres foram lançados com sucesso.
-
Atualize o banco de dados:
docker exec -it vila-task-reminder bash
Se executado com sucesso, você agora tem acesso ao terminal do ambiente conteineirizado. Execute as migrations:
php artisan doctrine:migrations:migrate
-
Gere as chaves necessárias
- Gerando a chave JWT
php artisan jwt:secret
- Gerando a chave de aplicação:
php artisan key:generate
- Gerando a chave JWT
-
Finalize limpando as configurações em cache usando
php artisan config:clear
-
(Opcional) Pode ser necessário conceder permissões de escrita à pasta
storage
. Para conceder permissão total, use:chmod 777 -R storage
Pronto. A API estará disponível, por padrão, no endereço da máquina local na porta 8000.
Uma vez que, para consumir os recursos da API é necessário que o usuário esteja autenticado e com o e-mail verificado, sua primeira tarefa, será registrar-se;
Um e-mail será enviado ao endereço informado no corpo da requisição contendo informações para que o usuário tenha a conta verificada.
- Como não há tratamento de níveis de acesso/permissões, para esta pequena API, só é permitido ao usuário alterar e excluir seus próprios dados;
- Não há suporte para as tarefas compartilhadas na função de importação de tarefas de um documento Excel;
- Você pode utilizar o arcabouço de testes incluído no diretório
tests
.
Fique à vontade para contribuir ou registrar bugs. Abra uma issue descrevendo o problema e não se esqueça de incluir as etapas para que possamos reproduzi-lo facilmente.