ac81882b3fa4c328d5f4ecbafff96c83bc8fcff7
				
			
			
		
	Toby
HR software you love to hate
Architecture
Directory structure little differs from a standard Laravel tree. We decided to refactor main app directory to better suit our needs. All classes are grouped in four major categories:
app/Architecturefor all framework-related stuff like service providers, exception handler and more;app/Domainfor all framework-agnostic services related to the business logic of the application;app/Eloquentfor all database/ORM-related classes like models, observers and scopes;app/Infrastructurefor entry points to the application: CLI, HTTP and async ones.
Local setup
- run 
sh setupor: 
dcris an alias todocker-compose run --rm -u "$(id -u):$(id -g)"
- 
clone the repository
 - 
initialize
.envfile and customize if neededcp .env.example .env - 
build containers
docker-compose build --no-cache --pull - 
run containers
docker-compose up -d - 
install composer packages
dcr php composer install - 
generate app key
dcr php php artisan key:generate - 
generate storage link
dcr php php artisan storage:link - 
migrate and seed database
dcr php php artisan migrate --seed - 
install npm packages
dcr node npm install - 
build assets
dcr node npm run dev - 
place google credentials here:
/storage/app/google-calendar/service-account-credentials.json(how to obtain the credentials) 
Available containers (local)
- web - nginx HTTP server
 - php - php and composer stuff
 - node - npm stuff
 - mysql - database for local development
 - mailhog - for emails preview
 
Running tests
If xDebug is installed, set environment variable XDEBUG_MODE=off to improve performance
  dcr -e XDEBUG_MODE=off php php artisan test
Code style check
  dcr php php vendor/bin/ecs check
  dcr php composer ecs
  dcr php php vendor/bin/ecs check --fix
  dcr php composer ecsf
  dcr node npm run lint
  dcr node npm run lintf
xDebug
- To use xDebug you need to set 
DOCKER_INSTALL_XDEBUGtotruein.envfile. - Then rebuild php container 
docker-compose up --build -d php. - You can also set up xDebug params (see docs https://xdebug.org/docs/all_settings) in 
docker/dev/php/php.inifile: 
Default values for xDebug:
xdebug.client_host=host.docker.internal
xdebug.client_port=9003
xdebug.mode=debug
xdebug.start_with_request=yes
xdebug.log_level=0
Disable xDebug
- It is possible to disable the Xdebug completely by setting the option xdebug.mode to off, or by setting the environment variable XDEBUG_MODE=off.
 - See docs: (https://xdebug.org/docs/all_settings#mode)
 
CLI:
XDEBUG_MODE=off php artisan test
Docker container:
docker-compose run --rm -e XDEBUG_MODE=off php php artisan test
Description
				
					Languages
				
				
								
								
									PHP
								
								55.7%
							
						
							
								
								
									Vue
								
								41.4%
							
						
							
								
								
									JavaScript
								
								2%
							
						
							
								
								
									Blade
								
								0.4%
							
						
							
								
								
									CSS
								
								0.3%
							
						
					