1. Set erstellen(Desktop)
1.1. name, beschreibung und sprache, (schwierigkeitsgrad) eingeben
1.2. Privat, Öffentlich-lesen(default), offentlich-bearbeiten
1.3. karteikarten hinzufügen
2. Sprachauswahl(Desktop, Mobile, App)
2.1. English default, wir achten darauf, dass alles übersetzt werden kann
3. Suche(Desktop, Mobile, App)
3.1. nice to have
3.1.1. nice to have:karteikarten suchen?
3.1.2. nice to have: Index auf Startseite für google crawler
3.1.3. nice to have: bei googlesuche wird nur die gefundene frage angezeigt. mit aufforderung zur registrierung
3.1.4. nice to have?: Seperate Datenbank mit gespiegelten Daten für schnellere Suche
3.2. Öffentliche Suche
3.2.1. Stichwortsuche, welche in folgenden Dignen sucht:
3.2.1.1. Kataloge: Name, Beschreibung
3.2.1.2. Sets: Name, Beschreibung
3.2.1.3. Karten: Text
3.2.2. Die Ergebnisse werden in einer Liste angezeigt
3.2.3. Nur Kataloge und Sets werden aufgelistet
3.3. Private Suche (filter)
3.3.1. Wie öffentliche Suche, nur sucht sie nur in eigenen Katalogen, Sets und Karten und filtert die Liste Mit Katalogen und Sets in der Hauptseite
4. (Nice to have) set kopieren(Desktop)
4.1. u.U. nützlich wenn man ein öffentliches (readonly) Set für sich anpassen oder erweitern will
5. Katalog erstellen(Desktop,Mobile, App)
5.1. name, beschreibung enigeben
5.2. Privat, Öffentlich-lesen(default), offentlich-bearbeiten
5.3. Aus meiner liste sammlungen hinzufügen
6. Katalog löschen(Desktop)
6.1. komplett löschen
6.1.1. Sammlungen bleiben bestehen
6.1.2. Katalog wird gelöscht
6.2. freigeben
6.2.1. aus eigener liste löschen
6.2.2. katalog kann nun von jedem öffentlich bearbeitet werden
7. Set löschen(Desktop)
7.1. komplett Löschen
7.1.1. samlung und karteikarten darin werden gelöscht
7.2. freigeben
7.2.1. aus eigener Liste löschen
7.2.2. set kann nun von jedem öffentlich bearbeitet werden
8. Katalog bearbeiten(Desktop)
8.1. Sammlungen hinzufügen/entfernen
8.2. beschreibung bearbeiten
8.3. Rechte bearbeiten
8.3.1. katalog ist entweder privat, öffentlich(lesen) oder öffentlich(bearbeiten)
8.3.2. Es gibt einen owner, der auch vom owner geändert werden kann
8.3.3. Bearbeiterliste (bei öffentlich bearbeiten obsolet): Alle user in dieser liste können den katalog bearbeiten (SW: Einladung)
8.3.4. Leseliste (bei öffentlich lesen obsolet): Alle user in dieser liste können den Katalog lesen und in ihre liste adden (SW: Einladung)
9. Set bearbeiten(Desktop)
9.1. Beschreibung bearbeiten
9.2. Karteikarten hinzufügen/entfernen
9.3. Karteikarten bearbeiten
9.3.1. es muss dastehen, dass man eher eine neue karte erstellen soll, als eine karte grundlegend zu bearbeiten
9.4. Rechte bearbeiten
9.4.1. Es gibt einen owner, der auch vom owner geändert werden kann
9.4.2. Bearbeiterliste (bei öffentlich bearbeiten obsolet): Alle user in dieser liste können das Set bearbeiten (SW: Einladung)
9.4.3. Leseliste (bei öffentlich lesen obsolet): Alle user in dieser liste können das Set lesen und in ihre liste adden (SW: Einladung)
10. Abprüfen (Desktop, Mobile, App)
10.1. Da nehmen wir an man hat schon gelernt
10.2. Aussuchen welche Kataloge und Sets man abprüfen will
10.3. Dann werden die Karten in zufälliger Reihenfolge durchgegangen
10.3.1. Antworten werden sofort angezeigt
10.3.2. Bei textfragen
10.3.2.1. Man kann (z.b. bei freeform fragen/antworten) nur sagen "hab ich richtig" und muss nicht die antwort eintippen
10.3.3. bei multipe-choice etc. muss man das Richtige auswählen
10.4. Em ende sieht man eine Liste mit den richtigen und falschen antworten und statistik
10.4.1. man kann auf jeden listeneintrag klicken, dann poppt die komplette frage/antwort auf
11. Lernen (Desktop, Mobile, App)
11.1. Lernsitzung
11.1.1. Aussuchen welche Sets/Kataloge gelernt werden sollen
11.1.2. nice to have: auf grund der userstatistik, werden die karten vorgeordnet
11.1.3. Karteikarten werden alle durchgegangen
11.1.4. Karten, die man schlechter kann werden häufiger angezeigt
11.1.4.1. benutzt LearningExperienceLevel (User)
11.1.5. karten die man gut kann werden auch als solche markiert
11.1.5.1. fortschrittsanzeige
11.1.6. das System merkt sich statistik (geht an den lernplan)
11.1.6.1. wenn sie relevant ist
11.1.7. Wenn die Lernsitzung fertig ist, wird sie gelöscht (keine persistenz)
11.1.7.1. (optional) oder doch?
11.2. Lernplan
11.2.1. Automatische generierung von Lernsitzung
11.2.2. hat eigene statistik
11.2.3. Lernplan erstellen
11.2.3.1. Name, Beschreibung
11.2.3.2. Kataloge & Sets hinzufügen
11.2.3.3. Deadline
11.2.3.4. Wieviel Zeit hab ich pro tag/Wie lange willst du pro tag lernen
11.2.4. Lernplan updaten
11.2.4.1. Mit Statistiken aus Lernplan werden die Lernsitzungen geupdated (optimal: der plan kann neu generiert werden)
11.2.5. Lernplan bearbeiten
11.2.5.1. Kataloge/Sets hinzufügen
11.2.5.2. Kataloge/Sets updaten
11.2.5.3. Kataloge/Sets entfernen
11.2.6. (CRITICAL)Lernplan generieren
11.2.6.1. Aus Deadline,Zeit, Kataloge, Sets, Statistiken, etc generiert der Lernplan Lernsitzungen (pro tag)unabhängig von einem zuvor erstellten plan
11.2.6.1.1. wenn alles passt
11.2.6.1.2. wenn zu wenig zeit ist
11.2.7. optional: Lernstatistik
11.2.7.1. Grafische Darstellung vom Lernerfolg ("Verlauf")
11.2.7.1.1. z.b. Kurve, die über die lernzeit anzeigt, wieviele karten "gekonnt" waren. (sollte am ende bei 100% sein)
11.2.8. optional: "Prüfungscountdown"
11.2.8.1. Beim Anschauen des Lernplans sieht man einen countdown der einem sagt, wie lange man noch Zeit hat?
12. PDF/Drucken (Desktop, Mobile, ?App?)
12.1. Karten zum ausschneiden ausdrucken
12.2. Einzelne Sets ausdrucken
12.3. wie können wir das realisieren?
12.3.1. seite in html vorbereiten und dann von dort ausdrucken? "Druckansicht"
12.3.2. optimal: wir bieten gleich das PDF zum download an
13. Einladungen (Desktop, Mobile, App
13.1. Für dieses Feature brauchen wir einen Weg Mails zu verschicken
13.2. Wenn man jemanden read, oder write access gibt, kann man (muss man aber nicht) ihm eine Mail schicken lassen
13.3. wenn jemand owner von einem Set/Katalog wird, kriegt er eine Mail geschickt
13.4. Man kann anderen Usern (über displayname oder email) Einladungen zu Sets oder Katalogen schicken
13.4.1. Dazu muss der Empfänger zumindest Leserechte auf das Set/Katalog haben
13.5. Man kann beliebigen Personen (mittels Angabe einer E-Mail-Adresse) Einladungen zu Sets/Katalogen schicken
13.5.1. die sets/kataloge müssen dann zumindest öffentlich lesbar sein
14. Karte ansehen
14.1. Wird angezeigt, wenn man einfach nur ein Set öffnet
14.2. Möglichkeit auf "Bearbeiten" zu klicken um die karte zu bearbeiten
14.3. Möglichkeit neue Karten hinzuzufügen
14.4. Möglichkeit Karten zu löschen
14.5. Ansichten
14.5.1. Listenansicht
14.5.1.1. Liste aller Karten zum schnellen Durchgehen
14.5.2. Detailansicht
14.5.2.1. Man sieht Frage & Antwort
15. Lerngruppen
15.1. Reichen Einladungen per mail aus?
15.2. wir haben kein soziales System (freunde, etc.)
16. Tutorial (Desktop, Mobile, App)
16.1. Eigentlich nur ein öffentlich lesbares Kartenset
16.1.1. Mittels Frage-antworten werden alle Features durchgegangen
17. Anmeldung (Desktop, Mobile, App)
17.1. email und passwort eingeben
18. Registrierung (Desktop, Mobile, App)
18.1. Displayname, E-Mail-Adresse und Passwort eingeben
18.2. Email wird zugeschickt, wo man einen Link zur Aktivierung klicken muss
19. Übersichtsansicht (Desktop, Mobile, App)
19.1. Link zur App
19.2. Benutzereinstellung
19.3. Liste von Sets/Katalogen
19.3.1. Hier findet sich auch das Tutorial als Set
19.3.2. Meine und fremde Sammlungen/kataloge haben unterschiedliche Icons
19.4. TODO: Auch statistiken
20. Karteikarte erstellen (Desktop)
20.1. Was für eine Art von Frage(Text, Multiple Choice)
20.1.1. Multiple Choice
20.1.1.1. Text
20.1.1.1.1. Frage eintippen
20.1.1.1.2. Eine leere Antwortmöglichkeit existiert bereits unter dem Fragefeld, schreibt man was rein, poppt darunter eine weitere Antwortmöglichkeit auf
20.1.1.1.3. Durch Klicken auf dasCheckbox-Icon neben den Antwortmöglichkeiten kann man die richtigen Antworten auswählen
20.1.1.1.4. Die Antwortmöglichkeiten in der Fragekarte werden jedesmal, wenn man die Frage sieht, geschuffelt
20.1.1.2. Pointer
20.1.1.2.1. Frage eintippen
20.1.1.2.2. Darunter existiert ein 2. Feld in das man Bilder/Text reingeben kann
20.1.1.2.3. Für jede Antwortmöglichkeit einen Pointer aus der Toolbox auf die Karte ziehen
20.1.1.2.4. Auf die Pointer klicken um zwischen richtiger und falscher Antwort zu wechseln
20.1.1.2.5. Das Antwortfeld wird automatisch befüllt
20.1.2. Anordnung
20.1.2.1. Frage eintippen
20.1.2.2. Eine leere Antwortmöglichkeit existiert bereits unter dem Fragefeld, schreibt man was rein, poppt darunter eine weitere Antwortmöglichkeit auf
20.1.2.3. In der Antwortkarte tauchen die Antwortmöglichkeiten automatisch auf
20.1.2.4. In der Antwortkarte kann man dann die Antworten mit drag-and-drop in die richtige reihenfolge bringen.
20.1.2.5. Die Antworten in der Fragekarte werden jedesmal, wenn man die Frage sieht, geschuffelt
20.1.3. Text
20.1.3.1. Frage eintippen
20.1.3.2. tab
20.1.3.3. Antwort eintippen
20.1.3.4. WICHTIG: Bei dieser Art von Frage wird die Antwort nicht automatisch überprüft, sondern man sagt dem Programm, ob man die Frage richtig beantwortet hat.
20.2. optional: voice-aufnahme oder audio-file für frage und antwort
20.3. Bilder: wenn möglich direkt in die karteikarte ziehen (vom desktop). sonst in die toolbox
20.3.1. bilder können entweder freeform sein (über dem text, aber unter icons)
20.3.2. oder links, rechts, oben, unten, etc. aligned mit dem text
20.3.2.1. mit float:left/right vielleicht ganz gut machbar
20.3.3. oder kleine Bilder können auch inline mit dem text stehen
20.3.3.1. Größere Bilder werden nicht Funktionieren. Aber wir konnen es trotzdem anbieten.
20.4. Icons
20.4.1. In der Toolbox befinden sich Icons (Pfeile, Kreise, ...), die man wie ein Bild über die Karte legen kann.
20.4.2. Sie liegen immer ganz obenauf.
20.5. Formeln
20.5.1. MathMl
20.5.1.1. Leider nur Firefox support
20.5.1.2. html5 recommendation
20.5.2. MathJax
20.5.2.1. JavaScript-Library
20.5.2.2. Alle Browser unterstützt so scheints
20.5.2.3. Kann sowohl MathML als auch LaTex Formeln rendern
20.5.3. Beide: DIV als Image rendern
20.5.3.1. Man kann mit jQuery aus html ein bild erstellen
20.5.3.1.1. http://html2canvas.hertzen.com/examples.html
20.5.3.2. könnte für die App notwendig sein
21. App Synchronisation
21.1. Alle Kataloge/Sets in deiner Liste werden in die App geladen (nur der Text, nicht Bilder etc.)
21.1.1. Auch refresh-button
21.2. Man kann ein Set offline verfügbar machen
21.2.1. Frage: XX MB werden runtergeladen, Ja/Nein
21.2.2. Lade Bilder, soundfiles, etc. runter
21.2.3. -> offline verfügbar
21.2.4. bereit sein, statistiken ebenfalls runterzuladen
21.3. wenn man online eine prüfung/lernsitzung startet, wird das Notwendige offline verfügbar gemacht.
21.4. Update
21.4.1. Automatische Updateflags werden in der liste angezeigt, wenn sich was ändert
21.4.2. manuelles update (pro set)
21.4.3. manuelles update (alles)
21.4.4. Optional: Automatisch Updaten (entweder ja, nein, nur WLAN)
21.4.5. gelöschte Sets/Kataloge verschwinden
22. Kommentare (notes) (Desktop, Mobile, App)
22.1. Kommentare werden immer nach antwort angezeigt
22.2. Aufklappbar
22.3. Kann man machen bei
22.3.1. Karten
22.3.2. Sets
22.3.3. Katalogen
22.4. Besteht aus
22.4.1. Username
22.4.2. Timestamp
22.4.3. Text (plain)
22.4.3.1. optional Link-support
22.5. Ist eine reine Liste
23. Statistik/Karte (Desktop, Mobile, App)
23.1. was berechnen wir
23.1.1. LearningExperienceLevel: wie gut kannst du die karte (in LernSession)
23.1.1.1. wie oft war die karte schon dran
23.1.1.2. wie oft hast du sie richtig beantwortet
23.1.1.3. wenn anzahlseitletzterkarte >= anzahlkarten*0.5 dann +1 oder -1 je nachdem ob richtig oder falsch. Minimum:0 Maximum:3
23.1.1.3.1. wenn man eine karte beantwortet kann sie nach mindestens 0.5*anzahlderkarten runden wiederkommen (oder anderen threshhold)
23.1.1.4. wie lange ist es her, dass du sie beantwortet hast
23.1.1.4.1. falsche antwort, wenn lange her, schlimmer
23.1.1.4.2. richtige antwort, wenn lange her, besser
23.1.1.5. Dazu brauchen wir
23.1.1.5.1. anzahl der karten in der LernSession
23.1.1.5.2. anzahl der karten die gemacht wurden seit die karte das letzte mal dran war
23.1.2. LearningExperienceLevel: Wie gut kannst du die karte (in User)
23.1.2.1. nimm letzte lernsession (wie gut kannst du die karte)
23.1.2.2. je länger die letzte lernsession her ist, desto kleiner wird der wert
23.1.2.2.1. wie lange ist dieser zeitraum?
23.1.3. LearningTime: durchschnittslernzeit (User, Global)
23.1.3.1. user
23.1.3.1.1. wird pro karte nur EINMAL generiert
23.1.3.1.2. wenn die karte noch keine durchschnittslernzeit hat
23.1.3.2. global
23.1.3.2.1. mittelwert ausdurchschnittszeiten von allen usern (pro karte)
23.1.3.2.2. regelmäßig geupdated
24. Rechteverwaltung (Desktop, Mobile, App)
24.1. Es gibt Lese- und Schreibrechtelisten für jedes Set und jeden Katalog (siehe "Set bearbeiten", "Katalog bearbeiten")
24.2. Rechtevererbung
24.2.1. Es gibt KEINE vererbung
24.2.1.1. Ein öffentlicher Katalog kann auch private Sets enthalten
24.2.1.1.1. In diesem Fall tauchen die nur als z.B. "3 private Sets" auf. Kein Name, kein Zugriff.