Skip to content

2leander2/g3-autovermietung

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

63 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

G3 Autovermietung

Ein modernes Autovermietungssystem, entwickelt mit PHP, mit Benutzerauthentifizierung, Buchungsverwaltung und administrativen Funktionen.

Homepage

Admin-Bereich

Übersicht

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.

Funktionen

  • 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

Tech Stack

Backend

  • PHP - Serverseitige Skriptsprache
  • PDO - Datenbankabstraktionsschicht mit Prepared Statements für Sicherheit
  • MySQL/MariaDB - Relationales Datenbankmanagementsystem

Frontend

  • jQuery - DOM-Manipulation und AJAX-Anfragen
  • Vanilla JavaScript - Moderne ES6+-Features für interaktive Komponenten
  • CSS3 - Individuelles Styling mit Theme-Wechsel-Unterstützung

Bibliotheken

  • PHPMailer - E-Mail-Versandfunktionalität
  • tFPDF - PDF-Generierung für Verträge

Projektstruktur

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

Datenbankschema

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)

Installation

Voraussetzungen

  • PHP 7.4 oder höher
  • MySQL/MariaDB 10.3 oder höher
  • Webserver (Apache/Nginx) oder PHP Built-in-Server

Installationsschritte

  1. Repository klonen

    git clone https://github.com/2leander2/g3-autovermietung.git
    cd g3-autovermietung
  2. Datenbank konfigurieren

    • Kopieren Sie config/dbconfig.php.example zu config/dbconfig.php
    • Bearbeiten Sie config/dbconfig.php und tragen Sie Ihre Datenbankzugangsdaten ein
    • Die Datei dbconfig.php ist in .gitignore und wird nicht ins Repository hochgeladen
  3. Datenbankschema importieren

    • WICHTIG: Bearbeiten Sie sql/install.sql und ersetzen Sie 'your_database_password' mit einem sicheren Passwort (Zeile 21)
    mysql -u root -p < sql/install.sql

    Oder verwenden Sie phpMyAdmin, um sql/install.sql zu importieren

    Hinweis: Das Installationsskript erstellt automatisch die Datenbank g3 und den Benutzer g3 mit den entsprechenden Berechtigungen. Falls Sie einen anderen Datenbankbenutzer verwenden möchten, passen Sie die Zugangsdaten entsprechend an.

  4. 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/
  5. E-Mail-Einstellungen konfigurieren (optional)

    • Kopieren Sie config/emailconfig.php.example zu config/emailconfig.php
    • Bearbeiten Sie config/emailconfig.php und tragen Sie Ihre SMTP-Zugangsdaten (Host, Benutzername, Passwort) ein
  6. Anwendung aufrufen

    • Navigieren Sie zu http://localhost:8000 (oder Ihrer konfigurierten Domain)

Konfiguration

Datenbankkonfiguration

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.

E-Mail-Konfiguration

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.

Admin-Zugriff

Um einem Benutzer Admin-Rechte zu gewähren:

  1. Greifen Sie auf Ihre Datenbank zu und finden Sie den Benutzer in der Tabelle t3_users
  2. Aktualisieren Sie das Feld role von 'user' auf 'admin'
  3. Melden Sie sich ab und wieder an, um die Admin-Oberfläche zu sehen

Entwicklung

Architektur

Die Anwendung folgt einer modularen Architektur:

  • Trennung der Belange: Geschäftslogik in src/, Präsentation in includes/ und views/
  • 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

Wichtige Komponenten

  • 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

Deployment

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.

Produktionsüberlegungen

  • 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)

Live-Demo

Eine Live-Version ist verfügbar unter: https://g3-autovermietung.de

About

Modernes Autovermietungssystem mit PHP, MySQL und JavaScript. Features: Benutzerauthentifizierung, Buchungsverwaltung, Admin-Dashboard und PDF-Vertragserstellung.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages