Add: Base for lab protocol.
This commit is contained in:
parent
1695590346
commit
77004b5f68
30
.gitignore
vendored
30
.gitignore
vendored
@ -245,3 +245,33 @@ object_script.*.Debug
|
||||
|
||||
# SQLite
|
||||
study.db
|
||||
|
||||
# LaTeX
|
||||
|
||||
## Core latex/pdflatex auxiliary files:
|
||||
*.aux
|
||||
*.lof
|
||||
*.log
|
||||
*.lot
|
||||
*.fls
|
||||
*.out
|
||||
*.toc
|
||||
*.fmt
|
||||
*.fot
|
||||
*.cb
|
||||
*.cb2
|
||||
.*.lb
|
||||
|
||||
## Build tool auxiliary files:
|
||||
*.fdb_latexmk
|
||||
*.synctex
|
||||
*.synctex(busy)
|
||||
*.synctex.gz
|
||||
*.synctex.gz(busy)
|
||||
*.pdfsync
|
||||
*.rubbercache
|
||||
rubber.cache
|
||||
|
||||
## Build tool directories for auxiliary files
|
||||
# latexrun
|
||||
latex.out/
|
||||
|
||||
33
docs/portfolio/README.md
Normal file
33
docs/portfolio/README.md
Normal file
@ -0,0 +1,33 @@
|
||||
Portfolio-Dokumentation (LaTeX-Templates)
|
||||
=========================================
|
||||
|
||||
Diese Vorlagen decken die geforderten Abgaben aus der Aufgabenstellung DLBDSOOFPP01_D ab. Jede Phase hat einen eigenen LaTeX-Entwurf, der die Inhalte und Formatvorgaben (2 cm Ränder, Arial/ähnlich, 1,5 Zeilenabstand, Blocksatz, 6 pt Absatzabstand) berücksichtigt.
|
||||
|
||||
Struktur
|
||||
--------
|
||||
- `preamble.tex` – gemeinsame Pakete, Seitenlayout und Metadaten.
|
||||
- `phase1/phase1.tex` – Konzeptionsphase (max. 5 Seiten).
|
||||
- `phase2/phase2.tex` – Reflexions- und Entwurfsdokument (max. 5 Seiten).
|
||||
- `phase3/abstract.tex` – Abstract (1–2 Seiten).
|
||||
- `phase3/installationsanleitung.tex` – Installationsanleitung (max. 1 Seite).
|
||||
|
||||
Kompilieren
|
||||
-----------
|
||||
Aus dem Ordner `docs/portfolio`:
|
||||
|
||||
```bash
|
||||
latexmk -pdf phase1/phase1.tex
|
||||
latexmk -pdf phase2/phase2.tex
|
||||
latexmk -pdf phase3/abstract.tex
|
||||
latexmk -pdf phase3/installationsanleitung.tex
|
||||
```
|
||||
|
||||
Alternativ: `pdflatex` zweimal pro Datei. Passe die Makros in `preamble.tex` (Name, Matrikelnummer, Kurs) an, damit die Titelseiten stimmen.
|
||||
|
||||
Benennung für Abgabe (laut Aufgabenstellung)
|
||||
---------------------------------------------
|
||||
- Phase 1 PDF: `Nachname-Vorname_Matrikelnummer_Kurs_Phase1.pdf`
|
||||
- Phase 2 PDF: `Nachname-Vorname_Matrikelnummer_Kurs_Phase2.pdf`
|
||||
- Phase 3 Abstract: `Nachname-Vorname_Matrikelnummer_Kurs_Phase3_Abstract.pdf`
|
||||
- Phase 3 Installationsanleitung: `Nachname-Vorname_Matrikelnummer_Kurs_Phase3_Installationsanleitung.pdf`
|
||||
- Gesamt-Zip: `Nachname-Vorname_Matrikelnummer_Python.zip` mit Unterordnern `Phase1`, `Phase2`, `Phase3` wie in der Aufgabenstellung beschrieben.
|
||||
BIN
docs/portfolio/phase1/phase1.pdf
Normal file
BIN
docs/portfolio/phase1/phase1.pdf
Normal file
Binary file not shown.
55
docs/portfolio/phase1/phase1.tex
Normal file
55
docs/portfolio/phase1/phase1.tex
Normal file
@ -0,0 +1,55 @@
|
||||
\documentclass[12pt]{article}
|
||||
\input{../preamble.tex}
|
||||
|
||||
\begin{document}
|
||||
\documentinfo{Konzeptionsphase: Dashboard f\"ur das Studium}{Portfolioteil 1 (max. 5 Seiten)}
|
||||
|
||||
\section{Ziele des Dashboards}
|
||||
\begin{itemize}[leftmargin=*]
|
||||
\item Abschlussziel: \textit{z.\,B. Bachelorabschluss in 3 Jahren, Meilensteine pro Semester}.
|
||||
\item Notenziel: \textit{z.\,B. Gesamtnotenschnitt $\leq$ 2{,}0; Mindestnoten pro Modul}.
|
||||
\item Weitere Kennzahlen (optional): \textit{ECTS-Fortschritt, offene Pr\"ufungsleistungen, Lernzeit/Woche}.
|
||||
\end{itemize}
|
||||
|
||||
\section{Geplante Inhalte und Visualisierung}
|
||||
\begin{itemize}[leftmargin=*]
|
||||
\item \textbf{Startseite/Overview:} Fortschrittsbalken f\"ur ECTS, aktueller Notenschnitt, verbleibende Semester bis Zieltermin.
|
||||
\item \textbf{Modul-Detail:} Tabelle mit Modulstatus, Note, Pr\"ufungsform, Wiederholtermine.
|
||||
\item \textbf{Zeitplanung:} Kalender/Timeline mit Abgabefristen und empfohlenen Lernslots.
|
||||
\item \textbf{Warnhinweise:} Hervorhebung von Risiken (\"uberdue ECTS, Notenrisiken, Terminkonflikte).
|
||||
\end{itemize}
|
||||
|
||||
\section{Dashboard-Skizze}
|
||||
\begin{figure}[H]
|
||||
\centering
|
||||
\fbox{\parbox{0.9\textwidth}{Platz f\"ur die Skizze (z.\,B. Export aus Figma/Excalidraw oder eingescanntes Handdrawing).}}
|
||||
\caption{Skizze des geplanten Dashboards (Soll die Ziele aus Abschnitt~1 abdecken).}
|
||||
\end{figure}
|
||||
|
||||
\section{UML-Klassendiagramm (Entity-Ebene)}
|
||||
\begin{itemize}[leftmargin=*]
|
||||
\item Pflichtklassen laut Aufgabenstellung: \texttt{Studiengang}, \texttt{Semester}, \texttt{Modul}, \texttt{Pr\"ufungsleistung}.
|
||||
\item Erg\"anzungen (falls ben\"otigt): \textit{z.\,B. Benutzerprofil, Lernplan, Terminplanung}.
|
||||
\item Beziehungen: \textit{Aggregation/Komposition zwischen Studiengang--Semester--Modul--Pr\"ufungsleistung; Vererbung nur falls sinnvoll}.
|
||||
\end{itemize}
|
||||
\begin{figure}[H]
|
||||
\centering
|
||||
\fbox{\parbox{0.9\textwidth}{Platz f\"ur das UML-Klassendiagramm (Entity-Fokus).}}
|
||||
\caption{Entity-Klassen und Beziehungen (Komposition/Aggregation klar kennzeichnen).}
|
||||
\end{figure}
|
||||
|
||||
\section{Annahmen und Randbedingungen}
|
||||
\begin{itemize}[leftmargin=*]
|
||||
\item Datenquelle: \textit{myCampus-Export manuell importiert? Lokale SQLite?}
|
||||
\item Aktualisierungszyklus: \textit{z.\,B. w\"ochentlich/monatlich}.
|
||||
\item Nichtziele: \textit{z.\,B. keine automatische myCampus-Schnittstelle, kein Mobile-Frontend}.
|
||||
\end{itemize}
|
||||
|
||||
\section{Offene Fragen / Feedbackbedarf}
|
||||
\begin{itemize}[leftmargin=*]
|
||||
\item Welche Kennzahlen priorisieren (max. 2--3 zentrale Ziele)?
|
||||
\item Welche Visualisierung unterst\"utzt die Zielerreichung am besten?
|
||||
\item Braucht es zus\"atzliche Entity-Klassen f\"ur persistente Daten?
|
||||
\end{itemize}
|
||||
|
||||
\end{document}
|
||||
63
docs/portfolio/phase2/phase2.tex
Normal file
63
docs/portfolio/phase2/phase2.tex
Normal file
@ -0,0 +1,63 @@
|
||||
\documentclass[12pt]{article}
|
||||
\input{../preamble.tex}
|
||||
|
||||
\begin{document}
|
||||
\documentinfo{Reflexions- und Entwurfsdokument}{Portfolioteil 2 (max. 5 Seiten)}
|
||||
|
||||
\section{Untersuchung objektorientierter Konzepte in Python}
|
||||
\subsection{Klassen- und Objektmodell}
|
||||
\begin{itemize}[leftmargin=*]
|
||||
\item Wie werden Entity-Klassen aus Phase 1 in Python umgesetzt? (\textit{Attribute, Typannotationen, Properties}).
|
||||
\item Umgang mit Immutabilit\"at/Mutabilit\"at und Validierung.
|
||||
\end{itemize}
|
||||
|
||||
\subsection{Vererbung, Komposition, Aggregation}
|
||||
\begin{itemize}[leftmargin=*]
|
||||
\item Welche Beziehungen aus dem Klassendiagramm bleiben Vererbung, welche Komposition/Aggregation?
|
||||
\item Python-spezifische Aspekte: Mehrfachvererbung vermeiden, \texttt{@dataclass} f\"ur Value-Objekte?
|
||||
\end{itemize}
|
||||
|
||||
\subsection{Polymorphie und Schnittstellen}
|
||||
\begin{itemize}[leftmargin=*]
|
||||
\item Nutzung von ABCs/Protokollen f\"ur Services (z.\,B. Repository/Exporter).
|
||||
\item Beispielcode-Auszug (kurz) zur Demonstration.
|
||||
\end{itemize}
|
||||
|
||||
\subsection{Persistenz und Datenhaltung}
|
||||
\begin{itemize}[leftmargin=*]
|
||||
\item Speicherung (SQLite/JSON), Mappings zwischen Modellen und Speicherformat.
|
||||
\item Fehler- und Konsistenzstrategien.
|
||||
\end{itemize}
|
||||
|
||||
\section{Gesamtarchitektur des Prototypen}
|
||||
\subsection{Schichtenmodell / MVVM-Anpassung}
|
||||
\begin{itemize}[leftmargin=*]
|
||||
\item Views, ViewModels, Services/Repositories, Domain-Modelle.
|
||||
\item Abh\"angigkeiten und Datenfl\"usse (Input \textrightarrow\ ViewModel \textrightarrow\ Repository \textrightarrow\ Persistenz).
|
||||
\end{itemize}
|
||||
|
||||
\subsection{UML-Klassendiagramm (vollst\"andig)}
|
||||
\begin{figure}[H]
|
||||
\centering
|
||||
\fbox{\parbox{0.9\textwidth}{Platz f\"ur das vollst\"andige UML-Klassendiagramm des Prototypen.}}
|
||||
\caption{Alle Python-Klassen inkl. Services/ViewModels/Helper.}
|
||||
\end{figure}
|
||||
\begin{itemize}[leftmargin=*]
|
||||
\item Begr\"unde Erweiterungen gegen\"uber Phase 1 (z.\,B. Controller, Repositories, DTOs).
|
||||
\item Notiere technische Annahmen (GUI-Framework, Datenformat).
|
||||
\end{itemize}
|
||||
|
||||
\section{Entscheidungen und Reflexion}
|
||||
\begin{itemize}[leftmargin=*]
|
||||
\item Welche Anpassungen am Klassendiagramm waren f\"ur Python notwendig?
|
||||
\item Welche OO-Konzepte sind kritisch f\"ur den Prototypen (z.\,B. Komposition f\"ur Module/Pr\"ufungen)?
|
||||
\item Offene Risiken (Termine, technische Schulden) und Gegenma\"nahmen.
|
||||
\end{itemize}
|
||||
|
||||
\section{N\"achste Schritte f\"ur Phase 3}
|
||||
\begin{itemize}[leftmargin=*]
|
||||
\item Implementierungsplan (Reihenfolge der Features, Tests, Dokumentation).
|
||||
\item Pr\"ufung der Abgabestruktur (Zip mit Phase1/Phase2/Phase3, GitHub-Link, Installationsanleitung, Abstract).
|
||||
\end{itemize}
|
||||
|
||||
\end{document}
|
||||
34
docs/portfolio/phase3/abstract.tex
Normal file
34
docs/portfolio/phase3/abstract.tex
Normal file
@ -0,0 +1,34 @@
|
||||
\documentclass[12pt]{article}
|
||||
\input{../preamble.tex}
|
||||
|
||||
\begin{document}
|
||||
\documentinfo{Abstract}{Portfolioteil 3 (1--2 Seiten)}
|
||||
|
||||
\section{Zielsetzung}
|
||||
Kurze Zusammenfassung der Projektziele (\textit{Dashboards f\"ur Studienfortschritt, Kennzahlen, Nutzer:innenmehrwert}).
|
||||
|
||||
\section{Vorgehensweise}
|
||||
Stichpunkte zu Phasen und Methodik:
|
||||
\begin{itemize}[leftmargin=*]
|
||||
\item Konzeptionsphase: Ziele, Dashboard-Skizze, Entity-Klassen.
|
||||
\item Reflexion/Entwurf: OO-Konzepte in Python, finale Architektur.
|
||||
\item Finalisierung: Implementierung, Tests, Bereitstellung (GitHub), Dokumentation.
|
||||
\end{itemize}
|
||||
|
||||
\section{Ergebnisse}
|
||||
\begin{itemize}[leftmargin=*]
|
||||
\item Funktionsumfang des Prototyps (\textit{Ansichten, Kennzahlen, Speicherpfad}).
|
||||
\item Qualit\"atssicherung (\textit{Tests, manuelle Checks, QA-Skripte}).
|
||||
\item Erreichte Ziele (ECTS/Noten-Tracking, Visualisierungen).
|
||||
\end{itemize}
|
||||
|
||||
\section{Erkenntnisse und Lessons Learned}
|
||||
\begin{itemize}[leftmargin=*]
|
||||
\item Technische Erkenntnisse (\textit{OO-Konzepte in Python, Bibliotheken, Architekturentscheidungen}).
|
||||
\item Prozessbezogene Erkenntnisse (\textit{Zeitplanung, Feedbackschleifen}).
|
||||
\end{itemize}
|
||||
|
||||
\section{Ausblick}
|
||||
Geplante Weiterentwicklung (\textit{Automatisierte Importe, erweiterte Analytics, Deployment}).
|
||||
|
||||
\end{document}
|
||||
32
docs/portfolio/phase3/installationsanleitung.tex
Normal file
32
docs/portfolio/phase3/installationsanleitung.tex
Normal file
@ -0,0 +1,32 @@
|
||||
\documentclass[12pt]{article}
|
||||
\input{../preamble.tex}
|
||||
|
||||
\begin{document}
|
||||
\documentinfo{Installationsanleitung}{Portfolioteil 3 (max. 1 Seite)}
|
||||
|
||||
\section{Voraussetzungen}
|
||||
\begin{itemize}[leftmargin=*]
|
||||
\item Betriebssystem: Windows 10/11 (getestet) oder Linux.
|
||||
\item Python-Version: 3.10+ (64-bit).
|
||||
\item Git f\"ur den Download des Repository.
|
||||
\end{itemize}
|
||||
|
||||
\section{Schritte}
|
||||
\begin{enumerate}[leftmargin=*]
|
||||
\item Repository klonen: \texttt{git clone <GitHub-Link> study-dashboard}.
|
||||
\item In das Verzeichnis wechseln: \texttt{cd study-dashboard}.
|
||||
\item Abh\"angigkeiten installieren: \texttt{bash scripts/bootstrap.sh}.
|
||||
\item Anwendung starten: \texttt{bash scripts/run-app.sh}.
|
||||
\item Tests/QA (optional): \texttt{bash scripts/run-qa.sh}.
|
||||
\end{enumerate}
|
||||
|
||||
\section{Bekannte Einschr\"ankungen}
|
||||
\begin{itemize}[leftmargin=*]
|
||||
\item \textit{Beispiel:} Keine automatische myCampus-Integration; Datenimport aktuell manuell.
|
||||
\item \textit{Beispiel:} Gepr\"ufte Plattform: Windows 11 / Linux; macOS nicht getestet.
|
||||
\end{itemize}
|
||||
|
||||
\section{Support}
|
||||
Kontakt: \texttt{<E-Mail-Adresse>} f\"ur R\"uckfragen. GitHub-Issues k\"onnen f\"ur Fehlermeldungen genutzt werden.
|
||||
|
||||
\end{document}
|
||||
34
docs/portfolio/preamble.tex
Normal file
34
docs/portfolio/preamble.tex
Normal file
@ -0,0 +1,34 @@
|
||||
\usepackage[ngerman]{babel}
|
||||
\usepackage[T1]{fontenc}
|
||||
\usepackage[utf8]{inputenc}
|
||||
\usepackage[a4paper, margin=2cm]{geometry}
|
||||
\usepackage{setspace}
|
||||
\onehalfspacing
|
||||
\usepackage{graphicx}
|
||||
\usepackage{float}
|
||||
\usepackage{booktabs}
|
||||
\usepackage{enumitem}
|
||||
\setlist{nosep}
|
||||
\usepackage{csquotes}
|
||||
\usepackage[colorlinks=true, linkcolor=black, urlcolor=blue]{hyperref}
|
||||
\usepackage{helvet} % Arial-ähnlich
|
||||
\renewcommand{\familydefault}{\sfdefault}
|
||||
\setlength{\parindent}{0pt}
|
||||
\setlength{\parskip}{6pt}
|
||||
|
||||
% Metadaten anpassen
|
||||
\newcommand{\studentname}{Vorname Nachname}
|
||||
\newcommand{\matrikelnummer}{12345678}
|
||||
\newcommand{\kurs}{DLBDSOOFPP01\_D}
|
||||
\newcommand{\docdate}{\today}
|
||||
|
||||
\newcommand{\documentinfo}[2]{%
|
||||
\begin{center}
|
||||
{\LARGE #1}\\[0.5em]
|
||||
{\large #2}\\[0.5em]
|
||||
{\large \studentname\ (\matrikelnummer)}\\[0.25em]
|
||||
{\large Kurs: \kurs}\\[0.25em]
|
||||
{\large Datum: \docdate}
|
||||
\end{center}
|
||||
\vspace{1em}
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user