init
Some checks failed
Deploy to ras-dan-01 / deploy (push) Has been cancelled

This commit is contained in:
2025-08-26 14:35:48 +02:00
commit 370974a57d
22 changed files with 1523 additions and 0 deletions

118
README.md Normal file
View File

@@ -0,0 +1,118 @@
# Movie-DB
Eine webbasierte Anwendung zur Verwaltung einer persönlichen Filmsammlung.
## Funktionsumfang (Features)
* **Benutzer-System:** Vollständiges Registrierungs- und Login-System, sodass jeder Benutzer seine eigene, private Filmsammlung verwalten kann.
* **Persönliche Filmlisten:** Jeder Benutzer sieht und durchsucht nur die Filme, die er selbst hinzugefügt hat.
* **Filme hinzufügen:** Filme können manuell oder durch ein automatisiertes Scraping von IMDb hinzugefügt werden.
* **Umfassende Suche:** Eine globale Suchleiste ermöglicht die gleichzeitige Suche nach Titel, Genre und Regisseur.
* **Paginierung:** Die Filmliste ist in Seiten aufgeteilt, um auch bei großen Sammlungen übersichtlich zu bleiben.
* **Sichere Verbindung:** Die Anwendung wird über HTTPS mit einem selbst-signierten SSL-Zertifikat bereitgestellt.
* **Containerisierung:** Die gesamte Anwendung ist mit Docker und Docker Compose containerisiert, was die Bereitstellung vereinfacht.
* **Automatisierte Bereitstellung:** Ein Ansible-Playbook automatisiert das Deployment der Anwendung.
## Voraussetzungen
Stellen Sie sicher, dass die folgende Software auf Ihrem System installiert ist:
* Python 3
* pip
* Docker
* Docker Compose
* Ansible
## Inbetriebnahme
Es gibt drei Möglichkeiten, die Anwendung zu starten.
### 1. Direkter Start mit Python
Dies ist die klassische Methode für die lokale Entwicklung.
1. **Abhängigkeiten installieren:**
```bash
pip install -r requirements.txt
```
2. **Anwendung starten:**
```bash
python3 main.py
```
3. **Zugriff:** Öffnen Sie Ihren Browser und gehen Sie zu `https://localhost:5082`. Sie müssen eine Browser-Warnung aufgrund des selbst-signierten Zertifikats akzeptieren.
### 2. Start mit Docker
Diese Methode kapselt die Anwendung in einem Container.
1. **Docker-Image erstellen:**
```bash
docker build -t movie-db-app .
```
2. **Docker-Container starten:**
```bash
docker run -p 5082:5082 movie-db-app
```
3. **Zugriff:** Öffnen Sie Ihren Browser und gehen Sie zu `https://localhost:5082`.
### 3. Start mit Ansible und Docker Compose (Empfohlen)
Dies ist die automatisierte Methode, die einen sauberen Deployment-Prozess sicherstellt.
1. **Ansible Docker-Sammlung installieren (falls noch nicht geschehen):**
```bash
ansible-galaxy collection install community.docker
```
2. **Ansible-Playbook ausführen:**
```bash
ansible-playbook start.yml
```
(Möglicherweise müssen Sie Ihr `sudo`-Passwort eingeben.)
3. **Zugriff:** Öffnen Sie Ihren Browser und gehen Sie zu `https://localhost:5082`.
## Projektstruktur
Die wichtigsten Dateien und Ordner im Überblick:
```
.
├── Dockerfile
├── docker-compose.yml
├── main.py
├── moviedb_func.py
├── movie_db.db
├── README.md
├── requirements.txt
├── start.yml
├── cert.pem
├── key.pem
└── templates/
├── base.html
├── index.html
├── login.html
└── register.html
```
* `main.py`: Die Hauptdatei der Flask-Anwendung. Sie enthält die Routen und die Anwendungslogik.
* `moviedb_func.py`: Enthält die gesamte Geschäftslogik, Datenbankfunktionen und die `User`-Klasse.
* `templates/`: Der Ordner für alle HTML-Templates.
* `movie_db.db`: Die SQLite-Datenbankdatei.
* `Dockerfile`: Die Bauanleitung für das Docker-Image der Anwendung.
* `docker-compose.yml`: Definiert die Anwendung als Docker-Dienst für eine einfache Verwaltung.
* `start.yml`: Das Ansible-Playbook für die automatisierte Bereitstellung.
* `requirements.txt`: Liste der Python-Abhängigkeiten.
* `cert.pem`, `key.pem`: Das selbst-signierte SSL-Zertifikat und der private Schlüssel.
## Benutzung
1. **Registrieren:** Erstellen Sie auf der Registrierungsseite einen neuen Benutzeraccount.
2. **Einloggen:** Melden Sie sich mit Ihren neuen Zugangsdaten an.
3. **Filme hinzufügen:** Nutzen Sie den "Film hinzufügen"-Button, um Filme entweder durch die IMDb-Suche oder manuell zu Ihrer Sammlung hinzuzufügen.
4. **Suchen:** Verwenden Sie die Suchleiste, um Ihre Sammlung nach Titeln, Genres oder Regisseuren zu durchsuchen.
## Mögliche zukünftige Erweiterungen
* **Bearbeiten & Löschen:** Funktionen zum Bearbeiten und Löschen von bereits hinzugefügten Filmen.
* **Detailseite:** Eine eigene Seite für jeden Film mit mehr Details (Schauspieler, Handlung, etc.).
* **Sortieroptionen:** Die Möglichkeit, die Filmliste nach verschiedenen Kriterien zu sortieren.