118 lines
4.5 KiB
Markdown
118 lines
4.5 KiB
Markdown
# 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. |