Adrian Hopek 3d9726039c
#43 - vacation summary for employee (#66)
* wip

* wip

* wip

* wip

* wip

* wip

* wip

* #5 - bump dependencies

* #43 - wip

* #43 - add composer script

* #43 - fix

* #43 - fix

* #43 - wip

* #43 - ecs fix

* #43 - cr fix

* #43 - cr fix

* #43 - fix

Co-authored-by: EwelinaLasowy <ewelina.lasowy@blumilk.pl>
2022-03-03 09:03:17 +01:00
2022-01-18 12:22:02 +01:00
2022-01-26 12:31:26 +01:00
2022-03-02 09:52:50 +01:00
2022-01-10 13:28:18 +01:00
2022-02-23 11:11:53 +01:00
2022-02-23 11:11:53 +01:00
2022-02-18 11:42:06 +01:00
2022-02-18 11:42:06 +01:00
2022-02-21 13:19:59 +01:00
2022-02-03 08:39:09 +01:00
2022-02-23 11:11:53 +01:00
2022-01-26 12:31:26 +01:00
2022-01-26 12:31:26 +01:00
2022-01-12 08:49:22 +01:00
2022-01-18 12:22:02 +01:00
2022-02-23 11:11:53 +01:00
2022-01-12 08:49:22 +01:00
2022-02-23 11:11:53 +01:00
2022-01-12 08:49:22 +01:00
2022-02-15 15:08:26 +01:00

He's watching you

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/Architecture for all framework-related stuff like service providers, exception handler and more;
  • app/Domain for all framework-agnostic services related to the business logic of the application;
  • app/Eloquent for all database/ORM-related classes like models, observers and scopes;
  • app/Infrastructure for entry points to the application: CLI, HTTP and async ones.

Local setup

  • run sh setup or:

dcr is an alias to docker-compose run --rm -u "$(id -u):$(id -g)"

  • clone the repository

  • initialize .env file and customize if needed

    cp .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_XDEBUG to true in .env file.
  • 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.ini file:

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

CLI:

XDEBUG_MODE=off php artisan test

Docker container:

docker-compose run --rm -e XDEBUG_MODE=off php php artisan test
Description
HR software you love to hate
Readme 17 MiB
Languages
PHP 55.7%
Vue 41.4%
JavaScript 2%
Blade 0.4%
CSS 0.3%