Skip to content

Madoq/toby

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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: /google-credentials.json (how to obtain the credentials)

Available containers (local)

  • web - nginx HTTP server
  • php - php and composer stuff
  • node - npm stuff
  • pgsql - 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 composer cs
  dcr php composer csf
  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

About

HR software you love to hate

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • PHP 52.0%
  • Vue 44.1%
  • JavaScript 1.9%
  • Shell 0.7%
  • Dockerfile 0.5%
  • Blade 0.3%
  • Other 0.5%