Skip to content

Elyabe/vila-task-reminder

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

53 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🚀 Vila Task Reminder - API

PHP Laravel ApidocGen MySQL Symfony Doctrine ORM PHPUnit

📖 Overview

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.

Sumário

📚 Documentação da API

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]

🕶️ Configurando ambiente de desenvolvimento

  1. Clone este projeto;

     git clone https://github.com/Elyabe/vila-task-reminder.git 
  2. Instale as dependências utilizando o Composer, executando o seguinte comando na raíz do projeto

     composer install 
  3. Configure as variáveis de ambiente execute o seguinte comando também na raíz do projeto

     cp .env.example .env 
  4. 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.

  5. 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
  6. Gere as chaves necessárias

    • Gerando a chave JWT
      php artisan jwt:secret
    • Gerando a chave de aplicação:
      php artisan key:generate
  7. Finalize limpando as configurações em cache usando

    php artisan config:clear

  8. (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.

🕶️ Demonstração da aplicação

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.

Vídeo demonstração

Baixe a collection do Postman

Exemplo de arquivo Excel para importação de tarefas

📌 Pré-requisitos e limitações

  • 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;

Testes:

  • Você pode utilizar o arcabouço de testes incluído no diretório tests.

👻 Problemas

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.

About

API criada como desafio para o Vila Apps

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published