khalegjr / appfacilita-biblio

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

AppFacilita - Biblio

Sobre

Projeto teste para AppFacilita, desenvolvido em Laravel 9, com PHP 8.2, Pest como ambiente de testes, MySQL 8.0 e Tailwindcss como framework CSS do frontend.

Features

O frontend não foi finalizado, apenas uma parte foi feita para demonstração.

Nem todas as possibilidades de teste foram cobertas por falta de tempo.

Faltou setar um mutator para formatar atributos de data.

Seguindo o ciclo do TDD, e também por falta de tempo, não foram feitas melhorias de código.

As features solicitadas:

  • CRUD dos usuários da biblioteca;
  • CRUD de livros;
  • Classificação de livros por gênero
  • Empréstimo de livro
  • Alteração de status de livro e de empréstimos

Algumas decisões devido a limitações de escopo e tempo:

  • Um empréstimo por livro (alterar para vários livros por empréstimo)
  • Seta a data de empréstimo automaticamente com data da criação do empréstimo
  • Adiciona 1 semana pra devolução

Preparar Ambiente

Para rodar o projeto com Docker pode seguir os seguintes passos, após clonar e entrar na pasta do projeto:

  • preparar ambiente Docker
cp .env.example .env

# alterar variáveis de ambiente, se desejar

docker-compose up -d --build

docker-compose exec laravel.test composer install

docker-compose down --remove-orphans
  • Opcionalmente, se estiver em um ambiente Linux ou WSL2, pode criar um atalho no bash para facilitar o uso do pacote sail do Laravel:
alias sail="./vendor/bin/sail"
  • A porta padrão do projeto é a 80, para alterar basta adicionar a variável APP_PORT no arquivo .env e setar a porta desejada. Após isso, para rodar a aplicação:
sail up -d

sail npm install

sail artisan key:generate

sail artisan migrate --seed

sail npm run dev

Testes

Para executar os testes automáticos:

sail test

About


Languages

Language:PHP 82.9%Language:Dockerfile 7.7%Language:Blade 7.2%Language:Shell 1.7%Language:JavaScript 0.6%Language:CSS 0.0%