Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
6 changes: 6 additions & 0 deletions .ai/guidelines/frontend.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,9 @@
<!--
SPDX-FileCopyrightText: 2025 Technische Hochschule Mittelhessen (THM) and PILOS contributors

SPDX-License-Identifier: AGPL-3.0-or-later
-->

# Frontend Guidelines

## Tools and Architecture
Expand Down
4 changes: 4 additions & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
# SPDX-FileCopyrightText: 2022 Technische Hochschule Mittelhessen (THM) and PILOS contributors
#
# SPDX-License-Identifier: AGPL-3.0-or-later

.git
/.idea
node_modules
Expand Down
4 changes: 4 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
# SPDX-FileCopyrightText: 2020 Technische Hochschule Mittelhessen (THM) and PILOS contributors
#
# SPDX-License-Identifier: AGPL-3.0-or-later

root = true

[*]
Expand Down
4 changes: 4 additions & 0 deletions .env.ci
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
# SPDX-FileCopyrightText: 2020 Technische Hochschule Mittelhessen (THM) and PILOS contributors
#
# SPDX-License-Identifier: AGPL-3.0-or-later

APP_NAME=PILOS
APP_ENV=production
APP_KEY=
Expand Down
4 changes: 4 additions & 0 deletions .env.example
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
# SPDX-FileCopyrightText: 2020 Technische Hochschule Mittelhessen (THM) and PILOS contributors
#
# SPDX-License-Identifier: AGPL-3.0-or-later

APP_NAME=PILOS
APP_ENV=production
APP_KEY=
Expand Down
4 changes: 4 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
# SPDX-FileCopyrightText: 2020 Technische Hochschule Mittelhessen (THM) and PILOS contributors
#
# SPDX-License-Identifier: AGPL-3.0-or-later

* text=auto eol=lf
*.{cmd,[cC][mM][dD]} text eol=crlf
*.{bat,[bB][aA][tT]} text eol=crlf
Expand Down
6 changes: 6 additions & 0 deletions CODE_OF_CONDUCT.md → .github/CODE_OF_CONDUCT.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,9 @@
<!--
SPDX-FileCopyrightText: 2020 Technische Hochschule Mittelhessen (THM) and PILOS contributors

SPDX-License-Identifier: AGPL-3.0-or-later
-->

# Contributor Covenant Code of Conduct

## Our Pledge
Expand Down
4 changes: 4 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,8 @@
---
# SPDX-FileCopyrightText: 2020 Technische Hochschule Mittelhessen (THM) and PILOS contributors
#
# SPDX-License-Identifier: AGPL-3.0-or-later

name: Bug report
about: Create a report to help us improve
title: ""
Expand Down
4 changes: 4 additions & 0 deletions .github/ISSUE_TEMPLATE/feature_request.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,8 @@
---
# SPDX-FileCopyrightText: 2020 Technische Hochschule Mittelhessen (THM) and PILOS contributors
#
# SPDX-License-Identifier: AGPL-3.0-or-later

name: Feature request
about: Suggest an idea for this project
title: ""
Expand Down
23 changes: 23 additions & 0 deletions .github/SECURITY.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
<!--
SPDX-FileCopyrightText: 2023 Technische Hochschule Mittelhessen (THM) and PILOS contributors

SPDX-License-Identifier: AGPL-3.0-or-later
-->

# Security Policy

## Supported Versions

We actively support PILOS through the matrix chat and through security updates.

| Version | Supported |
|---------| ------------------ |
| 5.x | :x: |
| 4.x | :white_check_mark: |
| 3.x | :x: |
| 2.x | :x: |
| 1.x | :x: |

## Reporting a Vulnerability

If you believe you have found a security vulnerability in PILOS please let us know directly by using GitHub's "Report a vulnerability" functionality on https://github.com/THM-Health/PILOS/security/advisories
4 changes: 4 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
# SPDX-FileCopyrightText: 2023 Technische Hochschule Mittelhessen (THM) and PILOS contributors
#
# SPDX-License-Identifier: AGPL-3.0-or-later

# To get started with Dependabot version updates, you'll need to specify which
# package ecosystems to update and where the package manifests are located.
# Please see the documentation for all configuration options:
Expand Down
6 changes: 6 additions & 0 deletions .github/pull_request_template.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,9 @@
<!--
SPDX-FileCopyrightText: 2020 Technische Hochschule Mittelhessen (THM) and PILOS contributors

SPDX-License-Identifier: AGPL-3.0-or-later
-->

<!--
PLEASE READ THIS MESSAGE.

Expand Down
4 changes: 4 additions & 0 deletions .github/skills/configuring-horizon/SKILL.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,8 @@
---
# SPDX-FileCopyrightText: 2026 Technische Hochschule Mittelhessen (THM) and PILOS contributors
#
# SPDX-License-Identifier: AGPL-3.0-or-later

name: configuring-horizon
description: "Use this skill whenever the user mentions Horizon by name in a Laravel context. Covers the full Horizon lifecycle: installing Horizon (horizon:install, Sail setup), configuring config/horizon.php (supervisor blocks, queue assignments, balancing strategies, minProcesses/maxProcesses), fixing the dashboard (authorization via Gate::define viewHorizon, blank metrics, horizon:snapshot scheduling), and troubleshooting production issues (worker crashes, timeout chain ordering, LongWaitDetected notifications, waits config). Also covers job tagging and silencing. Do not use for generic Laravel queues without Horizon, SQS or database drivers, standalone Redis setup, Linux supervisord, Telescope, or job batching."
license: MIT
Expand Down
6 changes: 6 additions & 0 deletions .github/skills/configuring-horizon/references/metrics.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,9 @@
<!--
SPDX-FileCopyrightText: 2026 Technische Hochschule Mittelhessen (THM) and PILOS contributors

SPDX-License-Identifier: AGPL-3.0-or-later
-->

# Metrics & Snapshots

## Where to Find It
Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,9 @@
<!--
SPDX-FileCopyrightText: 2026 Technische Hochschule Mittelhessen (THM) and PILOS contributors

SPDX-License-Identifier: AGPL-3.0-or-later
-->

# Notifications & Alerts

## Where to Find It
Expand Down
6 changes: 6 additions & 0 deletions .github/skills/configuring-horizon/references/supervisors.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,9 @@
<!--
SPDX-FileCopyrightText: 2026 Technische Hochschule Mittelhessen (THM) and PILOS contributors

SPDX-License-Identifier: AGPL-3.0-or-later
-->

# Supervisor & Balancing Configuration

## Where to Find It
Expand Down
6 changes: 6 additions & 0 deletions .github/skills/configuring-horizon/references/tags.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,9 @@
<!--
SPDX-FileCopyrightText: 2026 Technische Hochschule Mittelhessen (THM) and PILOS contributors

SPDX-License-Identifier: AGPL-3.0-or-later
-->

# Tags & Silencing

## Where to Find It
Expand Down
4 changes: 4 additions & 0 deletions .github/skills/fortify-development/SKILL.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,8 @@
---
# SPDX-FileCopyrightText: 2026 Technische Hochschule Mittelhessen (THM) and PILOS contributors
#
# SPDX-License-Identifier: AGPL-3.0-or-later

name: fortify-development
description: 'ACTIVATE when the user works on authentication in Laravel. This includes login, registration, password reset, email verification, two-factor authentication (2FA/TOTP/QR codes/recovery codes), passkeys, profile updates, password confirmation, or any auth-related routes and controllers. Activate when the user mentions Fortify, auth, authentication, login, register, signup, forgot password, verify email, 2FA, passkeys, WebAuthn, or references app/Actions/Fortify/, CreateNewUser, UpdateUserProfileInformation, FortifyServiceProvider, config/fortify.php, or auth guards. Fortify is the frontend-agnostic authentication backend for Laravel that registers all auth routes and controllers. Also activate when building SPA or headless authentication, customizing login redirects, overriding response contracts like LoginResponse, or configuring login throttling. Do NOT activate for Laravel Passport (OAuth2 API tokens), Socialite (OAuth social login), or non-auth Laravel features.'
license: MIT
Expand Down
4 changes: 4 additions & 0 deletions .github/skills/laravel-best-practices/SKILL.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,8 @@
---
# SPDX-FileCopyrightText: 2026 Technische Hochschule Mittelhessen (THM) and PILOS contributors
#
# SPDX-License-Identifier: AGPL-3.0-or-later

name: laravel-best-practices
description: "Apply this skill whenever writing, reviewing, or refactoring Laravel PHP code. This includes creating or modifying controllers, models, migrations, form requests, policies, jobs, scheduled commands, service classes, and Eloquent queries. Triggers for N+1 and query performance issues, caching strategies, authorization and security patterns, validation, error handling, queue and job configuration, route definitions, and architectural decisions. Also use for Laravel code reviews and refactoring existing Laravel code to follow best practices. Covers any task involving Laravel backend PHP code patterns."
license: MIT
Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,9 @@
<!--
SPDX-FileCopyrightText: 2026 Technische Hochschule Mittelhessen (THM) and PILOS contributors

SPDX-License-Identifier: AGPL-3.0-or-later
-->

# Advanced Query Patterns

## Use `addSelect()` Subqueries for Single Values from Has-Many
Expand Down
6 changes: 6 additions & 0 deletions .github/skills/laravel-best-practices/rules/architecture.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,9 @@
<!--
SPDX-FileCopyrightText: 2026 Technische Hochschule Mittelhessen (THM) and PILOS contributors

SPDX-License-Identifier: AGPL-3.0-or-later
-->

# Architecture Best Practices

## Single-Purpose Action Classes
Expand Down
6 changes: 6 additions & 0 deletions .github/skills/laravel-best-practices/rules/blade-views.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,9 @@
<!--
SPDX-FileCopyrightText: 2026 Technische Hochschule Mittelhessen (THM) and PILOS contributors

SPDX-License-Identifier: AGPL-3.0-or-later
-->

# Blade & Views Best Practices

## Use `$attributes->merge()` in Component Templates
Expand Down
6 changes: 6 additions & 0 deletions .github/skills/laravel-best-practices/rules/caching.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,9 @@
<!--
SPDX-FileCopyrightText: 2026 Technische Hochschule Mittelhessen (THM) and PILOS contributors

SPDX-License-Identifier: AGPL-3.0-or-later
-->

# Caching Best Practices

## Use `Cache::remember()` Instead of Manual Get/Put
Expand Down
6 changes: 6 additions & 0 deletions .github/skills/laravel-best-practices/rules/collections.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,9 @@
<!--
SPDX-FileCopyrightText: 2026 Technische Hochschule Mittelhessen (THM) and PILOS contributors

SPDX-License-Identifier: AGPL-3.0-or-later
-->

# Collection Best Practices

## Use Higher-Order Messages for Simple Operations
Expand Down
6 changes: 6 additions & 0 deletions .github/skills/laravel-best-practices/rules/config.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,9 @@
<!--
SPDX-FileCopyrightText: 2026 Technische Hochschule Mittelhessen (THM) and PILOS contributors

SPDX-License-Identifier: AGPL-3.0-or-later
-->

# Configuration Best Practices

## `env()` Only in Config Files
Expand Down
6 changes: 6 additions & 0 deletions .github/skills/laravel-best-practices/rules/db-performance.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,9 @@
<!--
SPDX-FileCopyrightText: 2026 Technische Hochschule Mittelhessen (THM) and PILOS contributors

SPDX-License-Identifier: AGPL-3.0-or-later
-->

# Database Performance Best Practices

## Always Eager Load Relationships
Expand Down
6 changes: 6 additions & 0 deletions .github/skills/laravel-best-practices/rules/eloquent.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,9 @@
<!--
SPDX-FileCopyrightText: 2026 Technische Hochschule Mittelhessen (THM) and PILOS contributors

SPDX-License-Identifier: AGPL-3.0-or-later
-->

# Eloquent Best Practices

## Use Correct Relationship Types
Expand Down
6 changes: 6 additions & 0 deletions .github/skills/laravel-best-practices/rules/error-handling.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,9 @@
<!--
SPDX-FileCopyrightText: 2026 Technische Hochschule Mittelhessen (THM) and PILOS contributors

SPDX-License-Identifier: AGPL-3.0-or-later
-->

# Error Handling Best Practices

## Exception Reporting and Rendering
Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,9 @@
<!--
SPDX-FileCopyrightText: 2026 Technische Hochschule Mittelhessen (THM) and PILOS contributors

SPDX-License-Identifier: AGPL-3.0-or-later
-->

# Events & Notifications Best Practices

## Rely on Event Discovery
Expand Down
6 changes: 6 additions & 0 deletions .github/skills/laravel-best-practices/rules/http-client.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,9 @@
<!--
SPDX-FileCopyrightText: 2026 Technische Hochschule Mittelhessen (THM) and PILOS contributors

SPDX-License-Identifier: AGPL-3.0-or-later
-->

# HTTP Client Best Practices

## Always Set Explicit Timeouts
Expand Down
6 changes: 6 additions & 0 deletions .github/skills/laravel-best-practices/rules/mail.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,9 @@
<!--
SPDX-FileCopyrightText: 2026 Technische Hochschule Mittelhessen (THM) and PILOS contributors

SPDX-License-Identifier: AGPL-3.0-or-later
-->

# Mail Best Practices

## Implement `ShouldQueue` on the Mailable Class
Expand Down
6 changes: 6 additions & 0 deletions .github/skills/laravel-best-practices/rules/migrations.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,9 @@
<!--
SPDX-FileCopyrightText: 2026 Technische Hochschule Mittelhessen (THM) and PILOS contributors

SPDX-License-Identifier: AGPL-3.0-or-later
-->

# Migration Best Practices

## Generate Migrations with Artisan
Expand Down
6 changes: 6 additions & 0 deletions .github/skills/laravel-best-practices/rules/queue-jobs.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,9 @@
<!--
SPDX-FileCopyrightText: 2026 Technische Hochschule Mittelhessen (THM) and PILOS contributors

SPDX-License-Identifier: AGPL-3.0-or-later
-->

# Queue & Job Best Practices

## Set `retry_after` Greater Than `timeout`
Expand Down
6 changes: 6 additions & 0 deletions .github/skills/laravel-best-practices/rules/routing.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,9 @@
<!--
SPDX-FileCopyrightText: 2026 Technische Hochschule Mittelhessen (THM) and PILOS contributors

SPDX-License-Identifier: AGPL-3.0-or-later
-->

# Routing & Controllers Best Practices

## Use Implicit Route Model Binding
Expand Down
6 changes: 6 additions & 0 deletions .github/skills/laravel-best-practices/rules/scheduling.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,9 @@
<!--
SPDX-FileCopyrightText: 2026 Technische Hochschule Mittelhessen (THM) and PILOS contributors

SPDX-License-Identifier: AGPL-3.0-or-later
-->

# Task Scheduling Best Practices

## Use `withoutOverlapping()` on Variable-Duration Tasks
Expand Down
6 changes: 6 additions & 0 deletions .github/skills/laravel-best-practices/rules/security.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,9 @@
<!--
SPDX-FileCopyrightText: 2026 Technische Hochschule Mittelhessen (THM) and PILOS contributors

SPDX-License-Identifier: AGPL-3.0-or-later
-->

# Security Best Practices

## Mass Assignment Protection
Expand Down
6 changes: 6 additions & 0 deletions .github/skills/laravel-best-practices/rules/style.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,9 @@
<!--
SPDX-FileCopyrightText: 2026 Technische Hochschule Mittelhessen (THM) and PILOS contributors

SPDX-License-Identifier: AGPL-3.0-or-later
-->

# Conventions & Style

## Follow Laravel Naming Conventions
Expand Down
6 changes: 6 additions & 0 deletions .github/skills/laravel-best-practices/rules/testing.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,9 @@
<!--
SPDX-FileCopyrightText: 2026 Technische Hochschule Mittelhessen (THM) and PILOS contributors

SPDX-License-Identifier: AGPL-3.0-or-later
-->

# Testing Best Practices

## Use `LazilyRefreshDatabase` Over `RefreshDatabase`
Expand Down
6 changes: 6 additions & 0 deletions .github/skills/laravel-best-practices/rules/validation.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,9 @@
<!--
SPDX-FileCopyrightText: 2026 Technische Hochschule Mittelhessen (THM) and PILOS contributors

SPDX-License-Identifier: AGPL-3.0-or-later
-->

# Validation & Forms Best Practices

## Use Form Request Classes
Expand Down
4 changes: 4 additions & 0 deletions .github/skills/pulse-development/SKILL.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,8 @@
---
# SPDX-FileCopyrightText: 2026 Technische Hochschule Mittelhessen (THM) and PILOS contributors
#
# SPDX-License-Identifier: AGPL-3.0-or-later

name: pulse-development
description: "Handles Laravel Pulse setup, configuration, and custom card development. Activates when installing Pulse; configuring the dashboard or authorization gate; setting up recorders and filtering; building custom Livewire cards; optimizing with Redis ingest or sampling; or when the user mentions /pulse, pulse:check, pulse:work, Pulse::record(), or application monitoring."
license: MIT
Expand Down
Loading
Loading