diff --git a/Projektstruktur-und-Best-Practices.-.md b/Projektstruktur-und-Best-Practices.-.md new file mode 100644 index 0000000..24d9555 --- /dev/null +++ b/Projektstruktur-und-Best-Practices.-.md @@ -0,0 +1,99 @@ +# Projektstruktur (Vorschlag) + +*Hinweis: Dies ist lediglich ein Vorschlag meinerseits, um eine klare, sichere und nachvollziehbare Struktur für unser PHP‑/AD‑Projekt zu gewährleisten.* + +Dieses Dokument beschreibt die empfohlene Ordnerstruktur für das Gitea‑Repository und für den späteren IIS‑Server. Ziel ist es, dass alle Teammitglieder dieselbe Struktur nutzen und dadurch ein einheitliches, stabiles Projekt entsteht. + +--- + +## Empfohlene Ordnerstruktur im Gitea‑Repository + +``` +ad-admin-panel/ +├── public/ +│ ├── index.php +│ ├── css/ +│ ├── js/ +│ ├── images/ +│ └── assets/ +├── app/ +│ ├── Controllers/ +│ ├── Services/ +│ │ ├── Ldap/ +│ │ ├── Powershell/ +│ │ └── Snmp/ +│ ├── Models/ +│ └── Helpers/ +├── config/ +│ ├── config.example.php +│ └── config.php +├── scripts/ +│ └── powershell/ +├── storage/ +│ ├── logs/ +│ └── uploads/ +├── docs/ +│ ├── Architektur.md +│ ├── Deployment.md +│ └── API-Endpunkte.md +├── tests/ +├── .gitignore +├── composer.json +└── README.md +``` + +### Hinweise + +- `public/` ist das **einzige** Verzeichnis, das öffentlich erreichbar sein soll. +- `config.php`, `scripts/`, `storage/` gehören **nicht** ins Webroot. +- Die App wird strukturiert in Controller, Services, Models, Helpers. +- PowerShell-Skripte bleiben im Repo, liegen aber später auf dem Server außerhalb des Webroots. + +--- + +## Empfohlene Struktur auf dem IIS‑Server + +``` +C:\Web\AdAdminPanel +├── public\ # Webroot im IIS +├── app +├── config +├── scripts +│ └── powershell +├── storage +│ ├── logs +│ └── uploads +└── vendor +``` + +### Sicherheit + +- IUSR/AppPool-Identität erhält nur die Rechte, die sie braucht. +- PowerShell-Skripte sollten nur von einem speziellen Service‑Account ausgeführt werden. +- `storage/` wird für Logs und Uploads verwendet und nicht in Git versioniert. + +--- + +## Bereiche, die von der Struktur profitieren + +- AD-Benutzerverwaltung (LDAP/PowerShell) +- CSV-Massenanlage +- SNMP-Serverstatus +- Logging +- Wartbarkeit der PHP-Anwendung +- Deployment über Gitea + +--- + +## Zusammenfassung + +Diese Struktur trennt sauber: + +- Weboberfläche +- Anwendungslogik +- Konfiguration +- PowerShell‑Integration +- Uploads & Logs + +Damit bekommt das Projekt eine stabile technische Basis und jeder aus dem Team kann konsistent daran arbeiten. +