This Project is using Laravel Sail for Docker
-
Clone the repository.
-
Duplicate the .env.example file on the root folder and setup the smtp.
-
Run the following command:
docker run --rm \
-u "$(id -u):$(id -g)" \
-v "$(pwd):/var/www/html" \
-w /var/www/html \
laravelsail/php82-composer:latest \
composer install --ignore-platform-reqs
- After that, run this command to start docker:
./vendor/bin/sail up
- Then install composer, npm, and run npm
./vendor/bin/sail composer install && ./vendor/bin/sail npm install && ./vendor/bin/sail
(Or you could just follow the documentations here to setup the Docker and Laravel Sail: https://laravel.com/docs/10.x/sail)
- Run the following command for database and sample products:
./vendor/bin/sail artisan migrate && ./vendor/bin/sail artisan db:seed --class=SampleSeeder
- Run queue as it uses queue for emailing after checkout:
./vendor/bin/sail artisan queue:listen
This project is using the Laravel Breeze Starter kit, Vuetify, Tailwind, Pinia as storage, and smtp as emailing service. I chose those tech stack to complete this exam faster with a presentable UI.
About the Deployment, it's deployed using AWS Elastic Beanstalk, AWS EC2, and AWS CodePipeline for ci/cd. It's also using my own SMTP for emailing.