Projeto de gerenciamento de uma biblioteca.
Projeto feito com laravel e reactjs, duas ferramentas extremamente populares, ativamente atualizadas, utilizadas por grandes e pequenos projetos ao redor do mundo, com uma vastidão de ferramentas de desenvolvimento, debug e auxílios na internet, além de serem ferramentas excelentes.
O projeto foi concebido para ser uma api que é consumida por um front-end. Acredito, que essa é a melhor forma de construir aplicações, porque cria uma camada de separação de responsabilidades entre o front-end e back-end, também aumenta a capacidade de uso da aplicação já que uma api pode ser consumida por qualquer front-end, aplicativo mobile ou mesmo um aplicativo de desktop que consiga fazer requisições http.
Essa abordagem também busca garantir a descartabilidade dos componentes, de forma que, se uma organização decidir que o front-end precisa ser refeito, seja com as mesmas tecnologias ou outras, a front-end pode ser tranquilamente descartado e outro implantado, seja no mesmo repositório ou em outro. O mesmo funciona de forma contrária, o front-end pode ser facilmente abstraído da aplicação e consumir outro back-end compatível.
Para fins de praticidade o arquivo .env
está incluso nos arquivos do projeto, em uma aplicação comercial, esse aquivo NÃO deve estar disponibilizado no versionamento, por conter informações sensíveis. Neste projeto, contudo, foram tomadas precauções para que nenhum tipo de dado sensível estivesse contido no aquivo.
Para melhor utilizar esse projeto é necessário ter o docker e o docker-compose instalados, artigos para a instalação de ambos podem ser encontrados aqui e aqui. Os assets já estão compilados, contudo se você quiser compilar-los precisa ter instalado o node com versão 16.13 ou superior com npm habilitado.
Caso não queira utilizar o docker é necessário ter o php instalado em sua máquina com as extensões necessárias para rodar o laravel e o suporte para sqlite
para os testes unitários, pode ser usado o próprio servidor do php ou servidores como nginx e apache.
Com o docker-compose
instalado na sua máquina, na raiz do projeto rode o comando:
docker-compose up -d
Esse comando irá baixar os containers necessários e irá levanta-los. Após terminar de subir o ambiente para instalar as dependências do projeto execute o comando:
docker exec dt-php composer install
Pode ser necessário criar uma chave para a aplicação laravel para que tudo funcione normalmente. Para cria-la utilize o comando:
docker exec dt-php php artisan key:generate
Com os pacotes e a chave gerada precisamos criar as tabelas. Para criar as tabelas do banco de dados execute o comando:
docker exec dt-php php artisan migrate
Para adicionar os usuários, permissões e dados pertinentes execute o comando:
docker exec dt-php php artisan db:seed
Após fazer isso para compilar os assets execute o comando:
npm run prod
Feito isso a aplicação já está pronta para roda na porta 1700 do seu localhost. Em seu navegador abra a seguinte url:
localhost:1700
Feito isso, a aplicação já pode ser utilizada normalmente.
É comum que o docker
mude as permissões dos arquivos na hora da instação, se houver algum erro de permissão execute o comando , na raiz do projeto:
sudo chmod 777 -R .
É necessário conter todas as dependências necessárias para fazer o laravel funcionar localmente, além de ter o [composer][composer-site] instalado localmente em sua máquina para instalar as dependências do projeto. Certificando-se que as dependências estão corretamente instaladas, você pode instalar o nginx e configurar o laravel nele segundo esse tutorial, ou [apache][apache-site] seguindo esse tutorial, observando que ao invés de criar um novo projeto laravel você irá mover esse projeto para a pasta do nginx ou apache.
Também pode utilizar o servidor de testes do laravel.
Independentemente do modo escolhido você deve ir na pasta raiz do projeto e executar os seguintes comandos:
composer install
Também é necessário configurar as chaves DB_HOST
, DB_PORT
. DB_USERNAME
, DB_PASSWORD
no arquivo .env
para as portas e host da sua maquina, além de se certificar que o banco de dados biblioteca
existe na sua instancia do banco de dados, com tudo feito execute o comando:
php artisan migrate
Para adicionar os usuários, permissões e dados pertinentes execute o comando:
php artisan db:seed
Para que a aplicação funcione corretamente você deve alterar a url
no parâmetro apiUrl
do arquivo env.ts
para que as requisições do front-end funcionem corretamente, bem como alterar a chave APP_URL
e SANCTUM_STATEFUL_DOMAINS
para o endereço correto, por exemplo, se a porta onde você irá acessar o sistema é a 8080 deverá alterar os lugares onde está posta a string localhost:1700
para a string localhost:8080
Após fazer isso para compilar os assets execute o comando:
npm run prod
Feito isso a aplicação já está pronta para rodar. Caso queira usar o servidor local do laravel execute o comando:
php artisan serve
Caso esteja utilizando nginx ou apache esse passo é desnecessário.
Feito isso, a aplicação já pode ser utilizada normalmente na porta indicada no terminal.
A aplicação tem dois usuários padrão, que são bibliotecario e administrador, o que diferencia ambos é que o administrador pode realizar todas as tarefas no sistema, o bibliotecário tem várias permissões, mas não todas. Outros usuários podem ser adicionados pelo front-end da aplicação.
# bibliotecario
usuario: bibliotecario
senha: bibliotecario123
# administrador.
usuario: admin
senha: admin2021
Os testes da aplicação podem ser feitos de duas formas, usando o docker
ou não.
docker exec dt-php php artisan test
É necessário ter as extensões do sqlite3
do php para executar os testes localmente.
php artisan test