====== TALIT Abschluss-Projekt 3M ====== * Eines von drei **offiziellen TALIT-Projekten** * **Abgabe** * **Deadline:** erster Montag nach Herbstferien, 23:59 * **Wie:** Teams-Nachricht an Betreuer inkl. Link zum Repo * Das Projekt kann ein reines Software-Projekt sein, oder ein kombiniertes Hardware-/Software-Projekt. * Der Makerspace steht zur Verfügung. ===== Ideen ===== * Webprojekt mit Server-Komponente. * Arduino-Projekt * Mobile-App * ... ===== Vorgehen ===== * Idee entwickeln und planen (Deadline: 17. Februar 2025) * GitRepo mit passendem Namen erstellen, mit Betreuer teilen * **Product Requirements Document** (PRD, mehr Infos unten) und **Zeitplan** *in Repo* erstellen und Betreuer mitteilen (per Teams inkl. Link) * PRD mit Betreuer besprechen (vor Ort oder per Teams) * Umsetzung * Mit arbeiten beginnen * Regelmässige Commits (mind. 1 pro Woche) und Pushes * Ab jetzt kann **zuhause gearbeitet werden** * Aus **eigenem Antrieb treffen mit LP abmachen, mind 1. pro Monat!** * Bei Fragen, Problemen in Lektion kommen ===== Product Requirements Document (PRD) ===== * PRD ist kurzes Markdown-Dokument (1-2 Seiten), welches alles zusammenfasst, was das Produkt (also das Resultat der Arbeit) sein soll. * Inhalt: * **Abstract:** Zu oberst in 2-3 Sätzen das Allerwichtigste kurz zusammengefasst. * **Programmbeschrieb:** * Beschreibe dein Programm in etwas mehr Detail. * Welche Features, Modi usw. soll es haben? * **Skizze:** Fertige Skizze an von Hauptbildschirm, wie etwa aussehen könnte. Von Hand oder mit Wireframe-Tool, z.B.: * Empfehlung [[https://app.diagrams.net]]. Für Beispiele siehe: Neues Diagramm erstellen -> Drahtgittermodelle / Wireframe -> eines auswählen * [[https://wireframe.cc]] * Funktioniert, Bilder lassen sich aber nicht direkt einbetten. * [[http://pencil.evolus.vn]] (muss installiert werden) * **Technische Details:** * Wie soll das Projekt umgesetzt werden? * Welche Programmiersprachen, Frameworks usw. sollen verwendet werden? * Hat das Produkt eine Schnittstelle (Web-App, Konsolenprogramm, Programmbibliotheke)? * [[https://github.com/JungleState/ksr_junglestate/blob/main/doc/visualization.md|Beispiel]] * **Probleme** * Was sind die grössten Herausforderungen? * Woran könnte das Projekt scheitern? * [[https://github.com/JungleState/ksr_junglestate/blob/main/doc/requirements.md|Beispiel]] ==== Zeitplan ==== Erstellt einen groben Zeitplan für das Projekt. Was sind die grossen Brocken? Was lässt sich weglassen (_nice to have_) und was ist unverzichtbar? Was ist das _minimal viable product_ (MVP)? Für den Zeitplan könnt ihr eine Tabelle im Markdown-Dokument erstellen; alternativ dazu ist die Verwendung von github Milestones und [[https://github.com/issues|Issues]] in eurem Repository: * Jeder grössere Brocken wird als Issue erfasst. * ein Issue sollte in weniger als einer Woche umsetzbar sein. * Milestones (Meilensteine) sind regelmässige (z.B. alle 6 Wochen) Checkpoints. * ein Issue wird für einen Milestone eingeplant. * beim Ablauf des Milestones werden unerledigte Issues nach hinten geschoben und die Zeitplanung angepasst. ===== Kriterien und Anforderungen ===== * Die Projektidee muss mit der LP abgesprochen werden und muss dann so umgesetzt werden. Allfällige **Planabweichungen** müssen rechtzeitig beantragt und von der LP abgesegnet werden. * **Ressourcen** wie Bilder, Musik, Videos sollen möglichst selbst erstellt werden. Falls solche aus dem Internet verwendet werden, so müssen diese royalty free sein. * Der Code muss folgende **Kriterien** erfüllen * sauber strukturiert * passende Abstände im Code * sinnvolle Namen für Variablen, Methoden usw. * sinnvoll kommentiert (so dass LP in kurzer Zeit Code verstehen kann) * Dokumentation * Das Projekt muss im Repository sauber dokumentiert werden: * **PRD** * Hinweise zur Benutzung des Endprodukts (Link zu Webapp / App-Download / Abbildungen von Hardware-Komponenten)