- Clone o repositório em sua máquina local
git clone https://github.com/Thauan/technical-challenge-soft-expert.git
- Entre na pasta do projeto:
cd technical-challenge-soft-expert
- Instale as dependências do PHP:
cd backend
composer install --ignore-platform-reqs
- Copie o arquivo .env.example para .env e configure as variáveis de ambiente, como o banco de dados e o S3:
cp .env.example .env
cp .env.example .env.testing
.env
ENVORIMENT=development
DATABASE_NAME=php_mvc
DATABASE_PORT=5632
DATABASE_ENGINE=pgsql
DATABASE_HOST=database
DATABASE_USER=postgres
DATABASE_PASSWORD=root
.env.testing
ENVORIMENT=test
DATABASE_NAME=php_mvc_test
DATABASE_PORT=5632
DATABASE_ENGINE=pgsql
DATABASE_HOST=localhost
DATABASE_USER=postgres
DATABASE_PASSWORD=root
- Instale as dependências do NPM:
cd frontend
npm install
- Copie o arquivo .env.example para .env e configure as variáveis de ambiente do frontend:
cp .env.example .env
- Execute o docker do projeto:
docker compose up --build
- Criação do banco de desenvolvimento e teste:
ocker exec -it technical-challenge-soft-expert-database-1 psql -U postgres -c "CREATE DATABASE php_mvc ENCODING 'LATIN1' TEMPLATE template0 LC_COLLATE 'C' LC_CTYPE 'C';"
ocker exec -it technical-challenge-soft-expert-database-1 psql -U postgres -c "CREATE DATABASE php_mvc_test ENCODING 'LATIN1' TEMPLATE template0 LC_COLLATE 'C' LC_CTYPE 'C';"
docker exec -it technical-challenge-soft-expert-database-1 psql -U postgres -c "GRANT ALL PRIVILEGES ON DATABASE postgres TO postgres;"
- Rode as migrations:
vendor/bin/phinx migrate -e development
vendor/bin/phinx migrate -e testing
- Para rodar os testes:
composer test
ou
APP_ENV=test ./vendor/bin/phpunit
- Acessar os endpoints já deve estar funcionando:
Backend
http://localhost:8080
Frontend
http://localhost:3000
Credenciais para que login que estão no dump-php_mvc-202307101345.sql dentro da pasta backend
{
"email": "jonhdoe@gmail.com",
"password": "123456"
}
O projeto possui diversas funcionalidades interessantes, incluindo:
- Login
- Cadastro
- Listagem de Produtos
- Carrinho de Pedidos
O projeto foi desenvolvido utilizando as seguintes tecnologias:
- PHP 8.1
- React
- Material UI
Contribuições são bem-vindas! Se você encontrar algum bug ou tiver alguma ideia para melhorar o projeto, por favor, abra uma issue ou submeta um pull request.