
Hauptseite der Review Website.
Einzelprojekt – Webanwendung mit Django
Diese selbst entwickelte Spiele-Review-Plattform ermöglicht es Nutzer:innen, Spiele anzulegen, zu bewerten und Reviews zu veröffentlichen. Die gesamte Entwicklung – von der Konzeption bis zur Umsetzung – erfolgte in Eigenregie.
Ziel war es, eine benutzerfreundliche, optisch ansprechende Plattform zu schaffen, die Spielbegeisterten ermöglicht, Meinungen auszutauschen und ihre Lieblingsspiele zu präsentieren.
🔹 Kernfunktionen
Benutzerkonten
Registrierung, Login & persönliches Dashboard für jede:n Nutzer:in.
Spiele-Übersicht
Durchsuchbare Übersicht aller Games mit Bewertung und Reviews.
Review-System
User können eigene Spiele-Reviews samt Bewertung & Avatar veröffentlichen.
🔹 Tech Stack & Tools
- Backend: Django
- Frontend: HTML/CSS mit Template-Anpassungen
- Datenbank: SQLite
- Entwicklungsumgebung: PyCharm
- Zusätzliche Tools:
Pillow
(Bildverarbeitung)django-gravatar2
(Avatare via E-Mail)
🔹 Datenbankmodell
Die Website basiert auf einem relationalen Schema mit drei Hauptmodellen:
User
: Django-StandardauthentifizierungReview
: Bezug zu Spiel und User, Bewertung, Bewertungstext, TimestampGame
: Titel, Beschreibung, Entwickler, Bild, durchschnittliche Bewertung

Vereinfachte Datenbankstruktur: Beziehungen zwischen Spielen, Nutzern und Reviews.
🔹 Codebeispiel (Upload-View)
from django.contrib.auth.decorators import login_required
from django.shortcuts import render, redirect, get_object_or_404
from .forms import ReviewForm
from .models import Game
@login_required()
def upload_review(request):
game_id = request.GET.get('game_id')
game = get_object_or_404(Game, id=game_id) if game_id else None
if request.method == 'POST':
form = ReviewForm(request.POST, request.FILES)
if form.is_valid():
review = form.save(commit=False)
review.user_id = request.user.id
review.save()
calculate_and_update_average_rating(review.game)
return redirect('game-reviews', review.game_id)
else:
form = ReviewForm(initial=dict(game=game))
return render(request, 'upload_review.html', dict(upload_review=form))
Diese View steuert das Verhalten des Review Upload und verwendet dabei ein eigenes Template – ein Beispiel für die modulare Anpassbarkeit von Django.
🔹 Herausforderungen & Lösungen
- Styling von Formularen: Django-Forms mussten mit viel manuellem CSS und Template-Overrides angepasst werden, um das gewünschte Layout zu erzielen.
- Gravatar-Integration: Avatar-Bilder per E-Mail abrufen und sinnvoll im Layout darstellen – gelöst durch gezielte Layout-Anpassung und Nutzung von
django-gravatar2
.
💬 Fazit & Ausblick
Die Entwicklung war ein wertvoller Lernprozess, besonders im Umgang mit Django, Template-Anpassung und relationalem Datenbankdesign. Die Seite erfüllt alle gestellten Anforderungen und bietet eine saubere Basis für weitere Features wie:
- Bewertungssystem für Reviews
- Filter- & Suchfunktionen
- REST-API für externe Tools

Detailseite eines Spiels mit eingebundenen Reviews und Nutzer-Avataren.