fsr5-fhaachen / portals

Group allocation tool for the first week of the Department of Electrical Engineering and Information Technology at the FH Aachen - University of Applied Sciences.
MIT License
3 stars 3 forks source link

Welcome to portals 👋

License: MIT Twitter: fsr5_fhaachen

Group allocation tool for the first week of the Department of Electrical Engineering and Information Technology at the FH Aachen - University of Applied Sciences.

main

CI

dev

CI dev

Install

Clone the repository and install the dependencies:

git clone git@github.com:fsr5-fhaachen/portals.git
cd portals
npm install
composer install

Copy .env.example to .env and fill in the database credentials.

cp .env.example .env

Generate the application key:

php artisan key:generate

Run the migrations:

php artisan migrate

Usage

development

For development, you can use the built-in PHP server:

php artisan serve

and the vite dev server:

npm run dev

devcontainer

If you want to use the provided devcontainer via laravel sail you need vscode and the devcontainer extension.

intial devcontainer setup

if you want to setup the devcontainer without installing tools to your host system, you can use the following steps:

  1. Install sail with docker run --rm -it -v $PWD:/app bitnami/laravel -- composer install
  2. Start the devcontainer, if you get the error message groupadd: invalid group ID 'sail', add WWWGROUP=1000 and WWWUSER=1000 to your .env file and restart the devcontainer
  3. Start the devcontainer, delete the /vendor folder (because the step before downloaded the dependencies with the root user. this can cause permission errors later) and rerun composer install with the "sail" user in the devcontainer
  4. Run the mandatory setup (set app key (see install), add db host to .env (in this case use DB_CONNECTION=pgsql, DB_HOST=pgsql, DB_PORT=5432 and insert your DB_USERNAME and DB_PASSWORD) and run npm install, php artisan migrate:fresh --seed and npm run dev).

type generation

To generate the typescript types for the frontend, run:

[!WARNING] The command output changed with update to Laravel 11.x. Please verify the output before using.

php artisan types:generate --namespace="App.Models" --outputDir="./resources/js/types/"

linting

You can lint the code with the following commands:

npm run lint
./vendor/bin/pint

and try to fix the errors with:

npm run lint:fix
./vendor/bin/pint

testing

You can run the tests with:

vendor/bin/phpunit

build

You can build the application with:

npm run build

production

This project uses laravel octane with frankenphp (roadrunner in earlier releases) as production server. You can install the server with:

This step will also ask you to download the frankenphp (roadrunner in earlier releases) binary.

php artisan octane:install

You can run the production server with: Define the worker-count and max-requests to fit your needs.

php artisan octane:start --max-requests=512 --workers=4

docker

If you want to use docker, use the following commands:

docker build -t ghcr.io/fsr5-fhaachen/portals:latest .
docker-compose up -d
docker exec -it portals-web touch database/seeders/tutors.csv
docker exec -it portals-web php artisan migrate:fresh --seed

Kubernetes (Helm)

You can deploy the application to kubernetes using the helm chart.

See fsr5-fhaachen/charts/portals for more information.

If you want information about creating the kubernetes cluster, see deploy information.

Authors

👤 Titus Kirch (main author)

👤 Benedikt Haas (main author)

👤 Simon Ostendorf (main author)

👤 Martin Philemon Pinsdorf

👤 Vitor Macedo

👤 Patrik Schmolke

Show here to see the full list of contributors who participated in this project.

🤝 Contributing

Contributions, issues and feature requests are welcome!
Feel free to check issues page.

Show your support

Give a ⭐️ if this project helped you!

📝 License

Copyright © 2022 fsr5-fhaachen.
This project is MIT licensed.