Ein modernes Autovermietungssystem, entwickelt mit PHP, mit Benutzerauthentifizierung, Buchungsverwaltung und administrativen Funktionen.
G3 Autovermietung ist eine Full-Stack-Webanwendung zur Verwaltung von Autovermietungen. Sie bietet eine benutzerfreundliche Oberfläche für Kunden, um verfügbare Fahrzeuge zu durchsuchen, Buchungsanfragen zu stellen und ihre Reservierungen zu verwalten. Administratoren können Buchungen prüfen, Fahrzeugpreise verwalten, Verträge erstellen und Kundenanfragen bearbeiten.
- Benutzerverwaltung: Registrierung mit E-Mail-Bestätigung, sichere Authentifizierung und rollenbasierte Zugriffskontrolle
- Fahrzeugkatalog: Durchsuchen verfügbarer Fahrzeuge mit Filter- und Sortierfunktionen
- Buchungssystem: Buchungsanfragen mit Datumsauswahl und automatischer Verfügbarkeitsprüfung
- Admin-Dashboard: Umfassende Administrationsoberfläche zur Verwaltung von Buchungen, Verträgen und Preisen
- Vertragserstellung: PDF-Vertragserstellung mit tFPDF
- E-Mail-Benachrichtigungen: Automatisiertes E-Mail-System mit PHPMailer
- Responsive Design: Moderne Benutzeroberfläche mit Dark/Light-Theme-Unterstützung
- PHP - Serverseitige Skriptsprache
- PDO - Datenbankabstraktionsschicht mit Prepared Statements für Sicherheit
- MySQL/MariaDB - Relationales Datenbankmanagementsystem
- jQuery - DOM-Manipulation und AJAX-Anfragen
- Vanilla JavaScript - Moderne ES6+-Features für interaktive Komponenten
- CSS3 - Individuelles Styling mit Theme-Wechsel-Unterstützung
- PHPMailer - E-Mail-Versandfunktionalität
- tFPDF - PDF-Generierung für Verträge
g3-autovermietung/
├── config/ # Datenbankkonfiguration
├── includes/ # Wiederverwendbare PHP-Komponenten
│ ├── admin/ # Admin-Interface-Komponenten
│ ├── bookings/ # Buchungsbezogene Komponenten
│ ├── common/ # Gemeinsame Komponenten (Header, Footer)
│ └── index/ # Homepage-Komponenten
├── libs/ # Drittanbieter-Bibliotheken
│ ├── phpmailer/ # E-Mail-Bibliothek
│ └── tfpdf/ # PDF-Generierungsbibliothek
├── public/ # Öffentlich zugängliche Dateien (Web-Root)
│ ├── api/ # API-Endpunkte
│ ├── css/ # Stylesheets
│ ├── js/ # JavaScript-Module
│ └── views/ # View-Templates
├── src/ # Backend-Geschäftslogik
│ ├── admin/ # Admin-Funktionalität
│ ├── common/ # Gemeinsame Utilities (Auth, Session, E-Mail)
│ └── user/ # Benutzerorientierte Funktionalität
└── sql/ # Datenbankschema und Installationsskripte
Die Anwendung verwendet folgende Haupttabellen:
- t3_users - Benutzerkonten mit E-Mail-Bestätigung und Rollenverwaltung
- t3_vehicles - Fahrzeugbestand mit Preisinformationen
- t3_bookings - Buchungsanfragen und Reservierungen
- t3_contract - Vertragstext-Template (einzelner Eintrag mit Standardvertragstext)
- PHP 7.4 oder höher
- MySQL/MariaDB 10.3 oder höher
- Webserver (Apache/Nginx) oder PHP Built-in-Server
-
Repository klonen
git clone https://github.com/2leander2/g3-autovermietung.git cd g3-autovermietung -
Datenbank konfigurieren
- Kopieren Sie
config/dbconfig.php.examplezuconfig/dbconfig.php - Bearbeiten Sie
config/dbconfig.phpund tragen Sie Ihre Datenbankzugangsdaten ein - Die Datei
dbconfig.phpist in.gitignoreund wird nicht ins Repository hochgeladen
- Kopieren Sie
-
Datenbankschema importieren
- WICHTIG: Bearbeiten Sie
sql/install.sqlund ersetzen Sie'your_database_password'mit einem sicheren Passwort (Zeile 21)
mysql -u root -p < sql/install.sqlOder verwenden Sie phpMyAdmin, um
sql/install.sqlzu importierenHinweis: Das Installationsskript erstellt automatisch die Datenbank
g3und den Benutzerg3mit den entsprechenden Berechtigungen. Falls Sie einen anderen Datenbankbenutzer verwenden möchten, passen Sie die Zugangsdaten entsprechend an. - WICHTIG: Bearbeiten Sie
-
Webserver einrichten
- Zeigen Sie das Document Root Ihres Webservers auf das
public/Verzeichnis - Für die Entwicklung können Sie den PHP Built-in-Server verwenden:
php -S localhost:8000 -t public/
- Zeigen Sie das Document Root Ihres Webservers auf das
-
E-Mail-Einstellungen konfigurieren (optional)
- Kopieren Sie
config/emailconfig.php.examplezuconfig/emailconfig.php - Bearbeiten Sie
config/emailconfig.phpund tragen Sie Ihre SMTP-Zugangsdaten (Host, Benutzername, Passwort) ein
- Kopieren Sie
-
Anwendung aufrufen
- Navigieren Sie zu
http://localhost:8000(oder Ihrer konfigurierten Domain)
- Navigieren Sie zu
Die Standardkonfiguration in config/dbconfig.php verwendet folgende Werte:
$host = 'localhost';
$db = 'g3';
$user = 'g3';
$pass = 'your_database_password';Wichtig: Kopieren Sie config/dbconfig.php.example zu config/dbconfig.php und tragen Sie Ihre Datenbankzugangsdaten ein. Die Datei dbconfig.php ist in .gitignore und wird nicht ins Repository hochgeladen.
Kopieren Sie zunächst config/emailconfig.php.example zu config/emailconfig.php und bearbeiten Sie dann die Datei, um Ihre SMTP-Einstellungen zu konfigurieren:
$smtp_host = 'smtp.strato.de'; // SMTP-Server
$smtp_username = 'your_smtp_username@example.com'; // SMTP-Benutzername
$smtp_password = 'your_smtp_password'; // SMTP-Passwort
$smtp_port = 587; // SMTP-Port
$smtp_encryption = 'tls'; // Verschlüsselung (tls oder ssl)Wichtig: Tragen Sie hier Ihre eigenen SMTP-Zugangsdaten ein. Die Platzhalter müssen durch echte Werte ersetzt werden.
Um einem Benutzer Admin-Rechte zu gewähren:
- Greifen Sie auf Ihre Datenbank zu und finden Sie den Benutzer in der Tabelle
t3_users - Aktualisieren Sie das Feld
rolevon'user'auf'admin' - Melden Sie sich ab und wieder an, um die Admin-Oberfläche zu sehen
Die Anwendung folgt einer modularen Architektur:
- Trennung der Belange: Geschäftslogik in
src/, Präsentation inincludes/undviews/ - Sicherheit: Prepared Statements über PDO, Passwort-Hashing, E-Mail-Bestätigungstokens
- Session-Management: Individuelles Session-Handling mit Benutzerauthentifizierung
- API-Endpunkte: RESTful API-Struktur in
public/api/für AJAX-Operationen
- Authentifizierungssystem: E-Mail-basierte Registrierung mit Bestätigungstokens
- Buchungsworkflow: Anfrage → Admin-Prüfung → Bestätigung/Ablehnung
- Dynamische Preisgestaltung: Admin-konfigurierbare Preise pro Fahrzeug
- Vertragserstellung: PDF-Verträge werden bei Buchungsbestätigung generiert
Die Anwendung ist so konzipiert, dass sie mit dem public/ Verzeichnis als Web-Root für die Sicherheit bereitgestellt wird. Dies stellt sicher, dass sensible Dateien in src/ und config/ nicht direkt über HTTP zugänglich sind.
- Aktualisieren Sie Datenbankzugangsdaten in
config/dbconfig.php - Konfigurieren Sie ordnungsgemäße SMTP-Einstellungen für die E-Mail-Funktionalität
- Setzen Sie angemessene Dateiberechtigungen
- Aktivieren Sie HTTPS für sichere Verbindungen
- Konfigurieren Sie ordnungsgemäßes Error-Logging (deaktivieren Sie die Fehleranzeige in der Produktion)
Eine Live-Version ist verfügbar unter: https://g3-autovermietung.de

