Desenvolvedor: Brenio Filho.
Aplicação teste de e-commerce desenvolvida com Laravel e Supabase.
- Laravel (Framework PHP)
- Prettier (Formatação e qualidade de código)
- PostgreeSQL (Banco de dados)
- PHP 8.1 ou superior
- Composer
- XAMPP, WAMP, MAMP ou servidor web similar
- Docker (opcional para facilitação de execução)
- Utilizei para fazer o banco de dados do projeto o Supabase, mas às vezes ele dá um bug de timeout e/ou com o Docker ele fica com problemas para aceitar conexões IPv4, que é o padrão do Docker, então tive que fazer um workaround para que funcionasse. Caso não funcione com o Docker, tente a instalação local, e caso o Supabase dê timeout, tente novamente que a requisição deve funcionar normal -- corrigiria isto com mais tempo, encontrei este bug no meio do projeto.
- Clone o repositório e acesse a pasta do projeto:
cd ecommerceApp- Instale o PHP, o Composer e suas dependências:
- Vai ser necessário que você instale o PHP, adicione eles às suas variáveis de ambiente, e logo em seguida instale o Composer. Após isto, rode este comando dentro da pasta do projeto:
composer install- Adicione o arquivo ENV:
cat .env- Configure seu banco de dados no arquivo
.env:
DB_CONNECTION=pgsql
DB_HOST=conexao.com
DB_PORT=5432
DB_DATABASE=postgres
DB_USERNAME=postgres
DB_PASSWORD="senhaDoBanco"
DB_CONNECTION_TIMEOUT=300- Estas informações devem estar disponíveis no e-mail que enviei sobre o projeto.
- Execute as migrações do banco de dados (a ser implementado):
php artisan migrate
php artisan db:seed- Configure seu PHP.ini para ter acesso ao pdo_pgsql e pgsql
- Estas são configurações para liberar os drivers de acesso do PHP ao tipo de banco de dados Postgree, que geralmente veêm desabilitadas por padrão.
Você precisa entrar no arquivo php.ini e descomentar (tirar o ";") da frente, onde deverá parecer desta forma após a edição:
extension=pdo_pgsql
extension=pdo_sqlite
extension=pgsql- Inicie o servidor e começe a fazer as requisições com:
php artisan serve Os endpoints estarão disponíveis em http://localhost:8000
Informações sobre como fazer as requisições estão disponíveis em DOCS.md no diretório raiz deste projeto.
-
Instale o Docker no seu computador
-
Adicione estas configurações no seu Docker Engine ou nas configurações JSON do seu Docker Daemon:
Devido a limitações do banco de dados Supabase de receber requisições em IPv4, teremos que habilitar o Docker para trabalhar apenas com IPv6, o procedimento para este é o abaixo:
No windows:
1: Habilitar IPv6 no Docker Desktop
2. Abra o Docker Desktop.
3. Clique no ícone de engrenagem (Settings) no canto superior direito.
4. No menu lateral, vá para a seção Docker Engine.
Você verá uma tela de edição de texto para o arquivo de configuração. Por favor, adicione as seguintes linhas dentro das chaves
{
"ipv6": true,
"fixed-cidr-v6": "2001:db8:1::/64"
}
5. Clique no botão "Apply & Restart". O Docker irá reiniciar para aplicar as novas configurações.
Importante: Se já houver algum texto lá, apenas adicione as novas linhas, separando-as com uma vírgula. O JSON deve ficar parecido com isto caso exista algum texto lá:
{
"builder": {
"gc": {
"enabled": true,
"defaultKeepStorage": "20GB"
}
},
"experimental": false,
"ipv6": true,
"fixed-cidr-v6": "2001:db8:1::/64"
}
----------------------------------------------------------
No Linux:
1. Edite o arquivo de configuração do daemon do Docker, localizado em:
/etc/docker/daemon.json
2. Configure os seguintes parâmetros:
{
"ipv6": true,
"fixed-cidr-v6": "2001:db8:1::/64"
}
3. Salve o arquivo de configuração.
Para que as alterações tenham efeito, reinicie o serviço do Docker com o seguinte comando:
sudo systemctl restart docker
- Após habilitar o IPv6 no Docker, inicie o Docker Engine e execute na raiz do projeto, onde existem os arquivos do Docker, os comandos abaixo:
docker-compose up- O endpoint estará ouvindo requisições corretamente em
http://localhost:8000
Obs: As migrações não necessárias com Docker por enquanto, porque o banco de dados já está criado e populado. Temporariamente tive que não implementar isso dentro do YML devido a limitações do Supabase. Caso queira, podes executar as migrações fora do Docker com os comandos do php artisan migrate && php artisan db:seed
# Iniciar containers
docker-compose up
# Parar containers
docker-compose down \ CTRL + C
# Refazer todos os containers e volumes
docker system prune -a
docker volume prune -a
docker-compose uproutes/- Rotas da aplicaçãoapp/- Código principal da aplicação Laravelconfig/- Configuraçõesdatabase/- Migrações e seederspublic/- Arquivos públicosresources/- Views e assetsstorage/- Arquivos de upload e logstests/- Testes automatizadosvendor/- Dependências PHP (Composer)
- A documentação das rotas e endpoints está disponível no arquivo DOCS.md, na raiz deste projeto.
Este é apenas um repositório teste sem fins de utilização para produção.