4f2df7fa86cb9865157207794dc05b55efafc176
Some checks failed
Deploy to ras-dan-01 / deploy (push) Failing after -1m24s
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.
- Abhängigkeiten installieren:
pip install -r requirements.txt - Anwendung starten:
python3 main.py - 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.
- Docker-Image erstellen:
docker build -t movie-db-app . - Docker-Container starten:
docker run -p 5082:5082 movie-db-app - 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.
-
Ansible Docker-Sammlung installieren (falls noch nicht geschehen):
ansible-galaxy collection install community.docker -
Ansible-Playbook ausführen:
ansible-playbook start.yml(Möglicherweise müssen Sie Ihr
sudo-Passwort eingeben.) -
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 dieUser-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
- Registrieren: Erstellen Sie auf der Registrierungsseite einen neuen Benutzeraccount.
- Einloggen: Melden Sie sich mit Ihren neuen Zugangsdaten an.
- Filme hinzufügen: Nutzen Sie den "Film hinzufügen"-Button, um Filme entweder durch die IMDb-Suche oder manuell zu Ihrer Sammlung hinzuzufügen.
- 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.
Description
Languages
Python
74.1%
HTML
24.8%
Dockerfile
1.1%