This commit is contained in:
118
README.md
Normal file
118
README.md
Normal 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.
|
||||
Reference in New Issue
Block a user