# SGTMensa

MensaApp für die Schulmensa am SGT

Muster-Implementation durch die Lehrkraft in python3 mit Django

## To get started

```bash
cd SGTMensa
python3 -m venv venv
source venv/bin/activate
pip install django
django-admin startproject mensa-core .
```

### Schritt 1: Die Arbeitsumgebung isolieren (Virtual Environment)

Bevor du auch nur eine Zeile Code schreibst, erstelle eine eigene Umgebung. Das verhindert, dass sich verschiedene Projekte auf deinem Rechner gegenseitig stören.

1.  **Ordner erstellen:** `mkdir mensa_projekt` -> `cd mensa_projekt`
2. Virtuelle Umgebung erstellen:
   - Windows: `python -m venv venv`
   - Mac/Linux: `python3 -m venv venv`
3. Aktivieren:
   - Windows: `venv\Scripts\activate`
   - Mac/Linux: `source venv/bin/activate`

*Jetzt siehst du ein `(venv)` vor deiner Kommandozeile. Dein System ist nun "sauber".*

### Schritt 2: Das Fundament legen (Installation)

Installiere nur das Nötigste. Für den Start reicht Django.

```bash
pip install django
```

### Schritt 3: Das Projekt initialisieren

Erstelle die Struktur eines Django-Projekts.

```bash
django-admin startproject mensa_core .
python manage.py startapp mensa_app
```

*Hinweis: Der Punkt `.` am Ende von `startproject` sorgt dafür, dass die Dateien im aktuellen Ordner erstellt werden und nicht ein Unterordner entsteht.*

### Schritt 4: Die App registrieren

Damit Django weiß, dass deine neue App `mensa_app` existiert, musst du sie in der Datei `mensa_core/settings.py` unter `INSTALLED_APPS` hinzufügen:

```python
INSTALLED_APPS = [
    ...
    'mensa_app',
]
```

### Schritt 5: Die Modelle implementieren

Jetzt kopierst du den Code für deine Klassen (aus unserer vorherigen Diskussion) in die Datei `mensa_app/models.py`.

### Schritt 6: Die Datenbank "erwecken" (Migrations)

Da du gerade Modelle definiert hast, muss die Datenbank (standardmäßig SQLite, was perfekt für Tests ist) diese Strukturen lernen.

```bash
python manage.py makemigrations mensa_app

python manage.py migrate
```

### Schritt 7: Der "Geheimweg" – Das Admin-Interface nutzen

Das ist der Clou an Django! Du musst noch keine eigenen Webseiten (HTML) programmieren, um Daten einzugeben. Django liefert ein fertiges Interface mit.

1. **Admin-User erstellen:**

   ```bash
   python manage.py createsuperuser
   ```

   

   (Folge den Anweisungen: Name, Email, Passwort – das Passwort wird beim Tippen nicht angezeigt!)

2. **Modelle im Admin registrieren:**
   Gehe in `mensa_app/admin.py` und schreibe:

   ```bash
   1. from django.contrib import admin
   
      from .models import DeinModellName # Ersetze dies durch deine echten Klassennamen
   
      admin.site.register(DeinModellName)
   
   ```

   

### Schritt 8: Den Server starten

Jetzt kommt der magische Moment:

```bash
python manage.py runserver
```



Öffne deinen Browser unter `http://127.0.0.1:8000/admin`. Logge dich mit deinem Superuser ein. **Herzlichen Glückwunsch!** Du hast eine voll funktionsfähige Web-Anwendung, mit der du bereits Speisepläne und Bestellungen in einer Datenbank verwalten kannst.