toby/readme.md
Adrian Hopek 5cb46d2fc4
#60 - fix avatars (#61)
* #60 - wip

* #60 - wip

* #60 - fix

Co-authored-by: EwelinaLasowy <ewelina.lasowy@blumilk.pl>
2022-02-23 11:11:53 +01:00

113 lines
2.9 KiB
Markdown

![He's watching you](toby.png)
# 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](https://github.com/spatie/laravel-google-calendar#how-to-obtain-the-credentials-to-communicate-with-google-calendar))
### 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
* 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
```