A Parking app for demonstration purposes.
- Docker and Docker Compose installed
- PHP 8.2 or higher
- Composer installed
- MongoDB for storing cars
- MySQL for stоring drivers and the vehicle categories they can drive
- Redis for caching MongoDB aggregations
- Elasticsearch for indexing cars and searching them
- Docker for keeping an image of the last successful build
- Github Actions for a github workflow
- Cache Composer
- PHP Stan
- PHP CS Fixer
- Yaml validation
- CliMarkDown
- Editorconfig checker
- Snyk
- SonarCloud
- Gitleaks
- Docker build process
- Manual Approval
- AWS for deployment
- VPC
- ELB
- ASG
- DocumentDB
- RDS
- ElastiCache
- CodeDeploy
- OpenSearch
- S3
- Terraform for automation of deployment
- Copy the .env.project contents into .env file
cp .env.example .env
- Run the sail environment:
./vendor/bin/sail up -d --build
- Run the migrations:
./vendor/bin/sail artisan migrate
- Generate a key:
./vendor/bin/sail artisan key:generate
- Install all dependencies from composer
./vendor/bin/sail composer install
- Register a car in the parking lot: (POST)
- registrationPlate
- brand
- model
- color
- category (A,B or C)
- card (Silver, Gold or Platinum)
- Unregister a car in the parking lot: (POST)
- registrationPlate
- See available parking slots: (GET)
- Check the current sum of a vehicle in the parking lot: (GET)
- Check the number of unique cars entered the parking lot for a period: (GET)
- dateStart (String)
- (optional) dateEnd (String)
- Check the amount of money earned in a period: (GET)
- dateStart (String)
- (optional) dateEnd (String)
-
php send:aggregations - Checks the amount of money and number of cars entered the parking lot for
-
php elastic:index - Indexes all the cars in elasticsearch
- Improve terraform code
- Add more tests
- Find a way to distribute the workers with environment variables remotely
- Ansible
- Terraform
- AWS
- Docker
- Docker Compose
- Redis
- MongoDB
- MySQL
- Elasticsearch
- Hashicorp Vault
- AWS Appconfig
- AWS CodeDeploy
- AWS S3