Projektstruktur hinzugefügt

blaerf 2025-11-15 12:42:34 +01:00
parent 97c970f0db
commit 7166250195

@ -0,0 +1,99 @@
# Projektstruktur (Vorschlag)
*Hinweis: Dies ist lediglich ein Vorschlag meinerseits, um eine klare, sichere und nachvollziehbare Struktur für unser PHP/ADProjekt zu gewährleisten.*
Dieses Dokument beschreibt die empfohlene Ordnerstruktur für das GiteaRepository und für den späteren IISServer. Ziel ist es, dass alle Teammitglieder dieselbe Struktur nutzen und dadurch ein einheitliches, stabiles Projekt entsteht.
---
## Empfohlene Ordnerstruktur im GiteaRepository
```
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 IISServer
```
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 ServiceAccount 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
- PowerShellIntegration
- Uploads & Logs
Damit bekommt das Projekt eine stabile technische Basis und jeder aus dem Team kann konsistent daran arbeiten.