lehrcraft
  • NEW!
    NEW!  Connect Ideas Across Notes
    Save time and share insights. With Paragraph Citation, you can quote others’ work with source info built in. If someone cites your note, you’ll see a card showing where it’s used—bringing notes closer together.
    Got it
        • Sharing URL Link copied
        • /edit
        • View mode
          • Edit mode
          • View mode
          • Book mode
          • Slide mode
          Edit mode View mode Book mode Slide mode
        • Customize slides
        • Note Permission
        • Read
          • Owners
          • Signed-in users
          • Everyone
          Owners Signed-in users Everyone
        • Write
          • Owners
          • Signed-in users
          • Everyone
          Owners Signed-in users Everyone
        • Engagement control Commenting, Suggest edit, Emoji Reply
      • Invite by email
        Invitee

        This note has no invitees

      • Publish Note

        Share your work with the world Congratulations! 🎉 Your note is out in the world Publish Note No publishing access yet

        Your note will be visible on your profile and discoverable by anyone.
        Your note is now live.
        This note is visible on your profile and discoverable online.
        Everyone on the web can find and read all notes of this public team.

        Your account was recently created. Publishing will be available soon, allowing you to share notes on your public page and in search results.

        Your team account was recently created. Publishing will be available soon, allowing you to share notes on your public page and in search results.

        Explore these features while you wait
        Complete general settings
        Bookmark and like published notes
        Write a few more notes
        Complete general settings
        Write a few more notes
        See published notes
        Unpublish note
        Please check the box to agree to the Community Guidelines.
        View profile
      • Commenting
        Permission
        Disabled Forbidden Owners Signed-in users Everyone
      • Enable
      • Permission
        • Forbidden
        • Owners
        • Signed-in users
        • Everyone
      • Suggest edit
        Permission
        Disabled Forbidden Owners Signed-in users Everyone
      • Enable
      • Permission
        • Forbidden
        • Owners
        • Signed-in users
      • Emoji Reply
      • Enable
      • Versions and GitHub Sync
      • Note settings
      • Note Insights New
      • Engagement control
      • Make a copy
      • Transfer ownership
      • Delete this note
      • Insert from template
      • Import from
        • Dropbox
        • Google Drive
        • Gist
        • Clipboard
      • Export to
        • Dropbox
        • Google Drive
        • Gist
      • Download
        • Markdown
        • HTML
        • Raw HTML
    Menu Note settings Note Insights Versions and GitHub Sync Sharing URL Help
    Menu
    Options
    Engagement control Make a copy Transfer ownership Delete this note
    Import from
    Dropbox Google Drive Gist Clipboard
    Export to
    Dropbox Google Drive Gist
    Download
    Markdown HTML Raw HTML
    Back
    Sharing URL Link copied
    /edit
    View mode
    • Edit mode
    • View mode
    • Book mode
    • Slide mode
    Edit mode View mode Book mode Slide mode
    Customize slides
    Note Permission
    Read
    Owners
    • Owners
    • Signed-in users
    • Everyone
    Owners Signed-in users Everyone
    Write
    Owners
    • Owners
    • Signed-in users
    • Everyone
    Owners Signed-in users Everyone
    Engagement control Commenting, Suggest edit, Emoji Reply
  • Invite by email
    Invitee

    This note has no invitees

  • Publish Note

    Share your work with the world Congratulations! 🎉 Your note is out in the world Publish Note No publishing access yet

    Your note will be visible on your profile and discoverable by anyone.
    Your note is now live.
    This note is visible on your profile and discoverable online.
    Everyone on the web can find and read all notes of this public team.

    Your account was recently created. Publishing will be available soon, allowing you to share notes on your public page and in search results.

    Your team account was recently created. Publishing will be available soon, allowing you to share notes on your public page and in search results.

    Explore these features while you wait
    Complete general settings
    Bookmark and like published notes
    Write a few more notes
    Complete general settings
    Write a few more notes
    See published notes
    Unpublish note
    Please check the box to agree to the Community Guidelines.
    View profile
    Engagement control
    Commenting
    Permission
    Disabled Forbidden Owners Signed-in users Everyone
    Enable
    Permission
    • Forbidden
    • Owners
    • Signed-in users
    • Everyone
    Suggest edit
    Permission
    Disabled Forbidden Owners Signed-in users Everyone
    Enable
    Permission
    • Forbidden
    • Owners
    • Signed-in users
    Emoji Reply
    Enable
    Import from Dropbox Google Drive Gist Clipboard
       Owned this note    Owned this note      
    Published Linked with GitHub
    • Any changes
      Be notified of any changes
    • Mention me
      Be notified of mention me
    • Unsubscribe
    # Projektauftrag für "lehrcraft" von QSE_10@SEPM2020S Dieser Auftrag baut auf diesem [Projektvorschlag](https://reset.inso.tuwien.ac.at/repo/2020ss-SEPM-group/ss20_sepm_qse_10/-/wikis/Project/Projektvorschlag) auf. [[_TOC_]] ## Entwickler-Team | Team-Mitglied | Gitlab-Username | E-Mail | Rolle | 2. Rolle | | ------ | ------ | ------ | ------ | ------ | | Christoph Bogner | @11808591 | bb.bogner@hotmail.com | Backend-Architekt | | | Jakob Hitzelhammer | @11734084 | jakobrhitzelhammer@gmail.com | Qualitätsmanager | | | Markus Hinkel | @11703479 | markus.hinkel@tuwien.ac.at | Dokumentation/Git-Manager | Scrum-Master | | Michael Kiran Huber | @11712763 | mikhub@gmx.at | Frontend-Architekt | Grafischer Designer | | Tamas Schöberl | @11810348 | tamas.schoeberl@tuwien.ac.at | Teamleiter| Scrum-Master | | Thomas Stimakovits | @01551905 | t.stimakovits@gmx.at | Test-Manager | | | Alexander Firbas | @alexander.firbas | | Haupt-Tutor | | | Hans-Jörg Schnedlitz | @hans-joerg.schnedlitz | | Tutor | | ## Ausgangssituation Aus Gesprächen mit Lehrerinnen und Lehrern ging hervor, dass für sie eine Website zum Finden und Erstellen von Aufgaben und Übungsblättern sehr nützlich wäre. Nach kurzer Recherche stellte sich heraus, dass es momentan keine Applikation gibt, welche die Elemente des Findens und Erstellens von Aufgaben und die automatische Generierung von Übungsblättern vereint. ## Projektbeschreibung lehrcraft.at soll eine kollaborative Web-Applikation werden, die den Austausch und die Erstellung von Übungsaufgaben und Arbeitsblättern für den Schulunterricht ermöglicht. Ziel des Projekts ist es, eine schnelle und einfache Möglichkeit für das Kreieren ansprechender Arbeitsaufgaben zu bieten. Auf lehrcraft.at können dafür einerseits bestehende Aufgaben gefunden werden, andererseits können auch neue Aufgaben erstellt und für andere zugänglich gemacht werden. Diese Aufgaben können beliebig zu Aufgabenblättern zusammengestellt werden, welche ebenfalls von anderen gefunden werden können. Das Finden und der Austausch von qualitativ hochwertigen Übungsmaterialien (Aufgaben & Aufgabenblättern) soll durch eine übersichtliche Sortierung, eine Upvote-/Downvotefunktion und eine Kommentarfunktion erleichtert werden. Das Erstellen von Aufgaben soll in zwei Varianten durchführbar sein: Erstens sollen User komplette, "statische" Aufgaben (z.B. offene Fragen) kreieren können. Zweitens können User "dynamische" Aufgaben erstellen. Als "dynamische" Aufgaben oder Aufgabentemplates bezeichnen wir Aufgaben, bei denen konkrete Werte durch Variablen ersetzt werden. Diese Variablen werden später durch einen Generator mit konkreten Werten befüllt. Die Werte, die mittels des Generators eingefügt werden sollen, können mit Einschränkungen (z.B. Intervall, Zahlenmenge) versehen werden. Dynamische Aufgaben sollen also das Erstellen mehrerer Versionen einer Aufgabe einfach möglich machen. Folgende Dynamische Aufgaben sollen erstellbar sein (Erweiterungen vorbehalten): - Lückentext - Mathematische Textaufgaben - Mathematische Terme Wie bereits erwähnt kann ein User aus mehreren Aufgaben(templates) Aufgabenblätter zusammenstellen ("craften"), welche über einen Generator in ein herunterladbares PDF-Dokument formatiert werden. Zusätzlich zum Aufgabenblatt werden hierbei auch die Lösungen bereitgestellt. ## Zielbenutzergruppen In erster Linie richtet sich lehrcraft.at an **Lehrerinnen und Lehrer**. Insbesondere soll der Fokus, für das in der Lehrveranstaltung zu entwickelnde Projekt, auf Volksschullehrkräfte gelegt werden. Für diese Hauptnutzergruppe soll durch lehrcraft.at eine mühselige Arbeit vereinfacht werden und der Zugang zu interessanten Übungsideen anderer Berufskollegen geschaffen werden. Für **Schülerinnen und Schüler** (bzw. deren Eltern) kann lehrcraft.at als Sammlung von Arbeitsaufgaben für eigenständiges Üben fungieren. ![target_group](uploads/fc669ba21495a3c0ba57c256694573e8/target_group.png) |Aktor|Rechte im System|Anmerkungen |-----|-------------|----------| |Admin|Uneingeschränkter Zugriff auf alle Inhalte.| Nur Administratoren können neue Templates für Beispiele erstellen, Beispiele aller Nutzer entfernen und neue Katogerien in der Suche einrichten oder entfernen.| |Gast|Kann nur die hochgeladenen Beispiele/Übungsblätter einsehen. |Hat die Möglichkeit AufgabenTemplates zu sehen, kann aber keine Beispiele erstellen.| |User| Zugriff auf alle angebotenen Services.| User können Beispiele/Übungsblätter erstellen, suchen, teilen, kommentieren, up-/downvoten, auswählen und downloaden. Können jedoch nur eigene Beispiel/-blätter löschen. | ## Funktionale Anforderung, Anwendungsfälle ### Featureliste Die Kundenpriorität ist von 1-5 bewertet, wobei 5 die höchste Priorität darstellt. Die Aufwandsabschätzung ist mit Fibonacci-Zahlen von 1-13 bewertet, wobei eine höhere Zahl einen höheren Aufwand darstellt. Folgende Featurelist ist grob in 4 Kernbereiche unterteilt: - 1.* betrifft Authentifizierung, Rollen - 2.* betrifft Aufgabentemplates - 3.* betrifft Aufgabenblätter - 4.* betrifft Generator |ID|Feature|Beschreibung|Priorität|Aufwand| |------ |------ |------ |:------:|:------: | |1.1|Lokale Registrierung der Nutzer|Nutzer haben die Möglichkeit, sich mit gültiger Email registrieren/anzumelden. Bestätigungs-Email ist Vorraussetzung. Benutzerdaten werden in lokaler Datenbank gespeichert. |3|5| |1.2|Oauth Registrierung der Nutzer|Nutzer haben die Möglichkeit, sich über externe Dienste zu registrieren/anzumelden. (Vorerst geplant sind Google, Microsoft, Apple)|2|3| |1.3|Nutzerrollen|Nutzer haben verschiedene Rollen. **Gäste** (nicht angemeldet) als readonly; **Nutzer** können Erstellen und eigene Sachen editieren; **Admin** können auch fremde Inhalte bearbeiten und löschen.|3|1| |2.1|Nutzer kann Aufgabentemplates erstellen|Nutzer kann Aufgabentemplates erstellen, welche von einem Generator benutzt werden können. Der Ersteller kann Variablen in der Aufgabe definieren.|5|13| |2.2|Variableneinschränkungen|Variablen im Aufgabentemplate können auf verschiedene Weisen eingeschränkt werden (Zahlenmengen, Intervalle, Nachkommastellen, Liste mit Werten)|5|8| |2.3|Vorlagen/Kategorien für Aufgabentemplateerstellung|Vorlagen z.B: Lückentext, Textaufgaben, Formen, Umrechenaufgaben etc.|4|3| |2.4|Sichtbarkeit von Aufgabentemplates einschränken|Aufgabentemplates sind standardmäßig öffentlich, aber die Sichtbarkeit soll beschränkbar sein|1|1| |2.5|Up/Downvotes/Reports/Favoriten von Aufgabentemplates|Aufgabentemplates sollen bewertet und auch gemeldet werden können, falls diese gegen Richtlinien verstoßen oder unbrauchbar sind. Auch sollen Nutzer Aufgabentemplates als Favorit speichern können.|2|2| |2.6|Auflisten von Aufgabentemplates|Die erstellten Aufgabentemplates werden in einer Liste angezeigt, der Nutzer kann suchen/filtern (Kategorie, Schwierigkeit, Fach, Schulstufe, Tags)|5|2| |2.7|Aufgabentemplatekommentare|Nutzer können Aufgabentemplates kommentieren (z.B. für Verbesserungsvorschläge)|1|3| |3.1|Zusammenstellen von Arbeitsblättern|Nutzer haben die Möglichkeit, diverse Aufgabentemplates zu einem Arbeitsblatt zusammenzufügen (ähnlich Einkaufswagen im e-Commerce).|4|3| |3.2|Arbeitsblätter können gespeichert/gesucht werden|Nach ähnlichen Punkten wie in 2.6. |2|3| |3.3|Sichtbarkeit von Arbeitsblättern einschränken|Arbeitsblätter sind standardmäßig öffentlich, aber die Sichtbarkeit soll beschränkbar sein.|1|1| |3.4|Up/Downvotes/Reports/Favoriten von Arbeitsblättern| Wie 2.5. |1|2| |4.1|Generator erstellt Aufgabenblätter|Der Generator nimmt ausgewählte Aufgabentemplates und füllt die angegebenen Variablen mit entsprechenden Zufallswerten und fügt diese zu einem Arbeitsblatt zusammen.|5|8| |4.2|Generator formatiert Arbeitsblatt|Generator soll Kopfzeile (z.B. Nutzername, Arbeitsblattname, Datum...) oder Seitenzahlen hinzufügen und Aufgaben nummerieren können.|4|2| |4.3|Arbeitsblattexport|Nutzer können ein fertiges Arbeitsblatt (als PDF) herunterladen.|3|2| |4.4|Lösungsblätter|Generator soll ebenfalls Lösungsblätter zu den jeweiligen Arbeitsblättern erstellen können|3|5| Aus Gründen der Lesbarkeit wurde in der Featureliste die männliche Form gewählt, nichtsdestoweniger beziehen sich die Angaben auf Angehörige aller Geschlechter. ### Anwendungsfall Übersicht 1. **User-Verwaltung** (3): nur Grundfunktionalität notwendig 2. **Aufgabentemplate-Verwaltung** (5): Unbedingt erforderlich, kritisch 3. **Arbeitsblätter-Verwaltung** (5): Unbedingt erforderlich, kritisch 4. **Social-Features** (1): Erweiternde Features, können auch nach dem Projekt implementiert werden 5. **Generator** (5): Unbedingt erforderlich, kritisch ### Iceberglist Dies ist eine erste Version der Iceberglist. Die Spalte ID(FL) referenziert hierbei die IDs der Featureliste (FL). AT steht in der Liste für Aufgabentemplate, AB für Arbeitsblatt. | Id(FL) | Feature, Aktor | Anwendungsfälle | Kundenpriorität | Aufwand | Version | Zuständiger | |--------|-------------------------|------------------------------------------------------------------------------------------------------------|-----------------|---------|---------|-------------| | 1.1 | User-Verwaltung, Anonym | Account anlegen | 3 | 5 | 1 | Markus | | 1.1 | User-Verwaltung, User | Account-Daten ändern | 2 | 5 | 1 | | | 1.1 | User-Verwaltung, User | An-/Abmelden | 3 | 3 | 1 | | | 1.1 | User-Verwaltung, User | Account löschen | 2 | 1 | 1 | | | | User-Verwaltung, User | User suchen | 1 | 5 | 3 | | | | User-Verwaltung, User | User-Profil einsehen (AT/AB von User, Statistiken) | 1 | 13 | 3 | | | | User-Verwaltung, Admin | User-Daten einsehen | 1 | 5 | 3 | | | | User-Verwaltung, Admin | User-Daten bearbeiten | 1 | 5 | 3 | | | | User-Verwaltung, Admin | User löschen | 1 | 1 | 3 | | | 1.2 | User-Verwaltung, Anonym | Account über OAuth anlegen | 2 | 5 | 1 | | | 1.2 | User-Verwaltung, User | An-/Abmelden über OAuth | 2 | 3 | 1 | | | 2.6 | AT-Verwaltung, Anonym | AT suchen | 5 | 5 | 1 | | | 2.6 | AT-Verwaltung, Anonym | AT ansehen | 5 | 13 | 1 | | | 2.1 | AT-Verwaltung, User | Statische AT erstellen (Multiple Choice, Lückentext, Offene Fragen) | 5 | 13 | 1 | | | 2.1 | AT-Verwaltung, User | Statische AT bearbeiten | 4 | 13 | 1 | | | 2.1 | AT-Verwaltung, User | Statische AT löschen | 3 | 2 | 1 | | | 2.1 | AT-Verwaltung, User | Dynamische AT erstellen (Mathematische Textaufgaben, Grundrechnungsarten/Umwandlungen, Einfache Grammatik) | 5 | 20 | 2 | | | 2.1 | AT-Verwaltung, User | Dynamische AT bearbeiten | 4 | 20 | 2 | | | 2.1 | AT-Verwaltung, User | Dynamische AT löschen | 3 | 2 | 2 | | | 3.2 | AB-Verwaltung, Anonym | AB suchen | 5 | 5 | 2 | | | 3.2 | AB-Verwaltung, Anonym | AB ansehen | 5 | 8 | 2 | | | 3.1 | AB-Verwaltung, User | AB erstellen | 5 | 5 | 2 | | | 3.1 | AB-Verwaltung, User | AT zu AB hinzufügen | 5 | 3 | 2 | | | 3.1 | AB-Verwaltung, User | AT von AB entfernen | 5 | 3 | 2 | | | 2.5 | Social-Features, User | AT upvoten/downvoten | 2 | 3 | 3 | | | 2.5 | Social-Features, User | AT reporten | 2 | 3 | 3 | | | 2.5 | Social-Features, User | AT favorisieren | 2 | 3 | 3 | | | 2.7 | Social-Features, User | AT kommentieren | 2 | 5 | 3 | | | 3.4 | Social-Features, User | AB upvoten/downvoten | 2 | 3 | 3 | | | 3.4 | Social-Features, User | AB reporten | 2 | 3 | 3 | | | 3.4 | Social-Features, User | AB favorisieren | 2 | 3 | 3 | | | | Social-Features, User | AB kommentieren | 2 | 5 | 3 | | | | Social-Features, Admin | Reports einsehen | 1 | 5 | 3 | | | 4.2 | Generator, User | AB konfigurieren/formatieren | 5 | 13 | 2 | | | 4.1 | Generator, User | AB generieren (AT mit Werten befüllen) | 5 | 13 | 2 | | | 4.3 | Generator, User | AB generieren (PDF-Dokument erstellen) | 5 | 8 | 2 | | | 4.4 | Generator, User | AB generieren (Lösungs-PDF erstellen) | 5 | 8 | 2 | | ## Domänenmodell ## Arbeitsstruktur und grober Projektplan ### Rollenverteilung | Team-Mitglied | Gitlab-Username | E-Mail | Rolle | 2. Rolle | | ------ | ------ | ------ | ------ | ------ | | Christoph Bogner | @11808591 | bb.bogner@hotmail.com | Backend-Architekt | | | Jakob Hitzelhammer | @11734084 | jakobrhitzelhammer@gmail.com | Qualitätsmanager | | | Markus Hinkel | @11703479 | markus.hinkel@tuwien.ac.at | Dokumentation/Git-Manager | Scrum-Master | | Michael Kiran Huber | @11712763 | mikhub@gmx.at | Frontend-Architekt | Grafischer Designer | | Tamas Schöberl | @11810348 | tamas.schoeberl@tuwien.ac.at | Teamleiter| Scrum-Master | | Thomas Stimakovits | @01551905 | t.stimakovits@gmx.at | Test-Manager | | | Alexander Firbas | @alexander.firbas | | Haupt-Tutor | | | Hans-Jörg Schnedlitz | @hans-joerg.schnedlitz | | Tutor | | ### Horizontale Verantwortlichkeiten #### Backend Architekt: Christoph Bogner * Kontrolle der Schichtenarchitektur * Design der Programmarchitektur * Komponentendiagramm * Dependency Management * Externe Apis/Plugins * Expertenwissen der verwendeten Technologien #### Frontend Architekt: Michael Huber * Design der Frontend-Architektur * Design des UI * Erstellen der Coroporate Identity * Logo * Colouring * Expertenwissen/Kontrolle der Frontend Technologien * Angular Material #### Teamleiter : Tamas Schöberl Der Teamleiter ist zuständig für die Koordination innerhalb das Teams und für das allgemeine Projektmanagement. * Organisation & Planung * Einhalten der Deadlines * Risikoanalyse * Erstellung und Überwachung des groben Projektplans * Organisation und Führung von Meetings * Controlling & Tracking * Stundenlisten * Arbeitsverteilung * Ansprechpartner für Dritte * Einhaltung des Scrum Prozesses (Scrum Master) #### Dokumentationsbeauftragter: Markus Hinkel * Versionskontrolle * Kontrolle der Commits (messages, Regelmäßigkeit) * Kontrolle des Branchings und Mergings * Gitlab Dokumentation * Templates für * Wiki -Einträge * Issues * Überwachung/Führung der Meeting-Protokolle * Kontrolle des Javadoc * Swagger Kontrolle #### Testmanager: Thomas Stimakovits * Ausarbeiten einer Teststrategie * Frontend Testing * Backend Testing (jUnit, restAssured) * Kontrolle der Testkonventionen * Unabhägigkeit der Unittests * verwendete Libraries * Test-Driven Development * Kontrolle der Testabdeckung * Optional: Continous Integration #### Qualitätsmanager: Jakob Hitzelhammer * Reviews * Einhaltung des Projektvauftrags * Einhaltung der Codingkonventionen * Überprüfung von Qualitätsmerkmalen * Userfreundlichkeit * Ausführungsgeschwindigkeit (Ladezeiten) ### Grober Projektplan ## Projektabgrenzungen ## Schichtendiagramm ## Lieferkomponenten In den nachfolgenden beiden Abschnitten wird die dem Kunden übermittelte Software inklusive aller Artefakte und Dokumentationen beschrieben und festgelegt. Teile dieser Pakete sind bereits während der Entwicklungsarbeit verfügbar. Mit den kompletten Auslieferung der hier genannten Punkte kann aber erst bei finaler Projektauslieferung gerechnet werden. ### Software Nach Projektabschluss werden dem Kunden folgende Kernkomponenten der Software in produktionsfähigen Zustand übergeben: - Angular (Node.js) Applikation mit Node-Package-Managment, um das Frontend zu bedienen. - Springboot (Java) Applikation mit Maven Dependency-Managment, um das Backend zu bedienen. - H2 Datenbank inklusiver initialer (Test-)Datensätze um das Programm in Betrieb zu nehmen und zu testen. - Konfigurationsdaten für Datenbanken und Server, soweit für Wartung und Weiterentwicklung notwendig. ### Artefakte & Projektdokumentation - Domänenmodell & Komponentendigramm - Funktionale Anforderungen - Anwendungsfallbeschreibung - Anwendungsfalldiagramme, Pakete & Aktorenhierarchie - Testplan, Funktionale Testfälle, Testberichte (soweit für die Wartung und Weiterentwicklung notwendig) - Datenbankbeschreibung & ER Diagramm - Präsentationen zu den Reviews (MRs) - Stundenübersicht - Swagger-UI als REST-Spezifikation - Projektendbericht ### Meilensteine ### 1. Projektauftrag * Einreichen des Projektvorschlags * Verarbeiten des Feedbacks * Nachjustieren der bereits eingereichten Auftragskomponenten * Erstellen des Projektauftrags * Featurliste vervollständigen * Grober Projektplan erstellen ### 2. Arbeitsinfrastruktur aufsetzen * Technischer Setup (Sprint 1) * Code-Template * Lauffähige pre-release Version der Applikation * Alle Schichten funktionstüchtig * Grundlegende CRUD-Operationen unterstützt * Git/Release Workflow * Coding Guidelines * Agiles arbeiten * SCRUM-Regeln * User Stories dokumentiert * Kanban-Board ### 3. Alpha-Version, 40% der US * Rahmenfeatures umgesetzt * Accountverwaltung (User-Side) * Template-Speicher (Statische Templates) * UI-Prototyp fertig * Basic-Features umgesetzt (CRUD, Display, Search) * Design * Template-Aufbau finalisieren * Technische Details des Generators ### 4. Beta-Version, 70% der US * Produkt mit eingeschränkter Funktionalität * Selling-Features funktionieren, bestimmte Beispiele * Dynamische Templates * Generator * Erweitbarkeit vorhanden * Service-Layer getestet * Vorbereitung für die Hauptversion * Bugs identifizieren * Agile Anpassung basierend auf kontinuierliches Testen ### 5. Fertiges Produkt, 100% der US * Alle Use Cases erfüllt * Low-Prio Features umgesetzt * Admin-Benutzerverwaltung * Social-Features * Bereit für Abnahme (Akzeptanztests) * Fertige Dokumentation ### Abgrenzung des Lieferumfangs ## Nichtfunktionale Anforderungen * Verfügbarkeit - Anwendung soll stabil laufen und mehrere Anfragen parallel bedienen können. * Browser-Konformität - Sämtliche features sollen auf Firefox und Chrome fehlerfrei benutzbar sein. * Userfreundlichkeit - Die Benutzeroberfläche sollte einfach zu bedienen und klar strukturiert sein. * Wartbarkeit - System muss möglichst einfach wartbar und änderbar sein. Dafür benötigt es eine vollständige Codedokumentation. * Skalierbarkeit - Die Anwendung sollte unter unterschiedlichen Speicherbedarfen und Nutzerzahlen funktionieren. * Ästhetik - Die Nutzeroberfläche sollte visuell ansprechend sein. * Feedback Nutzer - Die Anwendung sollte dem Nutzer beim Auftreten von Fehlern sinnvolles Feedback geben um das Problem einfach lösen zu können. * Feedback Entwickler - Feedback der Nutzer oder innerhalb des Teams soll verwendet werden um Fehler und Qualitätsmängel schnell verbessern zu können. * Datensicherheit - Private Daten der Nutzer sollen nur für Admins einsehbar sein. * Wiederherstellung ?? TODO ??? ## Risikoabschätzungen ## Informationswesen Die Informationsstruktur für das Projekt wird folgendermaßen aussehen: - Mindestens ein Wöchentliche Treffen intern (Jour-Fixe) über Discord, bei diesen werden auch Sprint-Retrospectives abgehalten - Wöchentliche Treffen mit dem Tutor (Tutortreffen) mittels Zoom - Insgesamt 5 Reviews (2 IRs, 3 MRs) mit 5 Statusberichten mittels Zoom - Elektronische Kommunikation synchron mit Discord und hackmd.io, asynchron über Gitlab mittels Issues und Wiki-Einträgen - Kommunikation mit den Auftraggebern und Tutor per Email - Informationen zu Richtlinien im Tuwel-Forum Die zur Verfügung gestellte Infrastruktur umfasst: - Gitlab-Repository - Gitlab-SCRUM - Gitlab-Wiki - Email-Adresse des Tutors - Grundlegendes Code-Template - Frontend: Angular.io - Backend: Springboot - Datenbank: H2 ## Besonderheiten

    Import from clipboard

    Paste your markdown or webpage here...

    Advanced permission required

    Your current role can only read. Ask the system administrator to acquire write and comment permission.

    This team is disabled

    Sorry, this team is disabled. You can't edit this note.

    This note is locked

    Sorry, only owner can edit this note.

    Reach the limit

    Sorry, you've reached the max length this note can be.
    Please reduce the content or divide it to more notes, thank you!

    Import from Gist

    Import from Snippet

    or

    Export to Snippet

    Are you sure?

    Do you really want to delete this note?
    All users will lose their connection.

    Create a note from template

    Create a note from template

    Oops...
    This template has been removed or transferred.
    Upgrade
    All
    • All
    • Team
    No template.

    Create a template

    Upgrade

    Delete template

    Do you really want to delete this template?
    Turn this template into a regular note and keep its content, versions, and comments.

    This page need refresh

    You have an incompatible client version.
    Refresh to update.
    New version available!
    See releases notes here
    Refresh to enjoy new features.
    Your user state has changed.
    Refresh to load new user state.

    Sign in

    Forgot password
    or
    Sign in via Google Sign in via Facebook Sign in via X(Twitter) Sign in via GitHub Sign in via Dropbox Sign in with Wallet
    Wallet ( )
    Connect another wallet

    New to HackMD? Sign up

    By signing in, you agree to our terms of service.

    Help

    • English
    • 中文
    • Français
    • Deutsch
    • 日本語
    • Español
    • Català
    • Ελληνικά
    • Português
    • italiano
    • Türkçe
    • Русский
    • Nederlands
    • hrvatski jezik
    • język polski
    • Українська
    • हिन्दी
    • svenska
    • Esperanto
    • dansk

    Documents

    Help & Tutorial

    How to use Book mode

    Slide Example

    API Docs

    Edit in VSCode

    Install browser extension

    Contacts

    Feedback

    Discord

    Send us email

    Resources

    Releases

    Pricing

    Blog

    Policy

    Terms

    Privacy

    Cheatsheet

    Syntax Example Reference
    # Header Header 基本排版
    - Unordered List
    • Unordered List
    1. Ordered List
    1. Ordered List
    - [ ] Todo List
    • Todo List
    > Blockquote
    Blockquote
    **Bold font** Bold font
    *Italics font* Italics font
    ~~Strikethrough~~ Strikethrough
    19^th^ 19th
    H~2~O H2O
    ++Inserted text++ Inserted text
    ==Marked text== Marked text
    [link text](https:// "title") Link
    ![image alt](https:// "title") Image
    `Code` Code 在筆記中貼入程式碼
    ```javascript
    var i = 0;
    ```
    var i = 0;
    :smile: :smile: Emoji list
    {%youtube youtube_id %} Externals
    $L^aT_eX$ LaTeX
    :::info
    This is a alert area.
    :::

    This is a alert area.

    Versions and GitHub Sync
    Get Full History Access

    • Edit version name
    • Delete

    revision author avatar     named on  

    More Less

    Note content is identical to the latest version.
    Compare
      Choose a version
      No search result
      Version not found
    Sign in to link this note to GitHub
    Learn more
    This note is not linked with GitHub
     

    Feedback

    Submission failed, please try again

    Thanks for your support.

    On a scale of 0-10, how likely is it that you would recommend HackMD to your friends, family or business associates?

    Please give us some advice and help us improve HackMD.

     

    Thanks for your feedback

    Remove version name

    Do you want to remove this version name and description?

    Transfer ownership

    Transfer to
      Warning: is a public team. If you transfer note to this team, everyone on the web can find and read this note.

        Link with GitHub

        Please authorize HackMD on GitHub
        • Please sign in to GitHub and install the HackMD app on your GitHub repo.
        • HackMD links with GitHub through a GitHub App. You can choose which repo to install our App.
        Learn more  Sign in to GitHub

        Push the note to GitHub Push to GitHub Pull a file from GitHub

          Authorize again
         

        Choose which file to push to

        Select repo
        Refresh Authorize more repos
        Select branch
        Select file
        Select branch
        Choose version(s) to push
        • Save a new version and push
        • Choose from existing versions
        Include title and tags
        Available push count

        Pull from GitHub

         
        File from GitHub
        File from HackMD

        GitHub Link Settings

        File linked

        Linked by
        File path
        Last synced branch
        Available push count

        Danger Zone

        Unlink
        You will no longer receive notification when GitHub file changes after unlink.

        Syncing

        Push failed

        Push successfully