/livros

Livraria Cultural

Primary LanguagePHP

Livraria Cultural

Este projeto será construído e atualizado para atender os requisitos de um desafio de softare. Por consequências foram cumpridos alguns requisitos como:

Instalação

  1. Para iniciar o processo clone o repositório para seu ambiente local.
  2. Navege até o repositório criado.

-- Partindo do presuposto que você já tenha o composer instalando, execute o comando:

composer install

Configuração

Geralmente durante a instalação o próprio composer criará no diretório raiz da sua aplicação um arquivo .env. Se isso não ocorrer você poderá renomear o arquivo env.example para .env manualmente.

Com seu arquivo .env devidamente criado, siga as intruções abaixo:

  1. Crie sua bade de dados (MySql) e configure no arquivo .env
  2. Após configurado o arquivo .env com seu dados de acesso ao banco de dados, execute os seguintes comandos:
php artisan config:cache
  1. Realize a criação do seu mando de dados executando o comando:
php artisan migrate

Neste momento as tabelas do banco de dados foram criadas e já estaram disponíveis para utilização:

  1. Você pode popular o banco de dados executando o comando:
php artisan db:seed

Este comando criará automaticamente um usuário: test@example.com com a senha: 123456;

Após a criação do usuário será executado uma Factory para popular a tabela de livros com 50 registros iniciais;

Se você não desejar criar esses registros, navegue ate o arquivo database/seeders/DatabaseSeeder.php e comente as linhas como mostrado a seguir:

/**
    $this->call([
        BookSeeder::class,
    ]);
*/
  1. Para finalizar execute o comando:
php artisan optimize:clear

Executando o Projeto

  1. Se você seguiu todos os passos acima, deve ser capaz de executar o seu projeto sem problemas. Para isso execute o comando:
php artisan serve
  1. Inicie o seu nagegador, CLICANDO AQUI

Pronto, se tudo estiver correto você será direcionado para a Tela de Login e já pode iniciar a navegação pela aplicação; Como informado acima, para realizar o login basta informar o e-mail test@example.com e a senha 123456.

Explicando o Projeto

  1. No canto superior esquerdo a um botão SOL ou LUA (depende do horário de acesso ao sistema). Nesse área será mostrado um widget com a previsão tempo que é busca na API informada.

Foi optado pela captação do IP do cliente como forma de filtro da localização, conforme pode ser visto no Provider app/Providers/ApiWeatherProvider.php e segue exemplificado abaixo:

 // ....
    return Http::withOptions([
        'verify' => false,
        'base_uri' => 'https://api.hgbrasil.com',
    ])->get('/weather', [
        'key' => 'API_KEY',
        'fields' => 'only_results',
        'user_ip' => $app->request->ip(),
    ]);
 // ....