Skip to content

Latest commit

 

History

History
103 lines (84 loc) · 4.02 KB

learnings.md

File metadata and controls

103 lines (84 loc) · 4.02 KB

Learnings

gelernte Technologien

auch verwendet:

  • Typescript
  • JavaScript
  • Deno
  • Vue
  • MySQL / MariaDB

in finaler Version nicht verwendet:

  • Angular
  • Docker
  • Datenbank auf Blockchain
    • Zu kostspielig für ein nicht finanziertes OS-Projekt
    • Krypto und Anwendung für Developer -> leider unpassend für Tracer.

Frontend

  • Angular

    • simple Tests / get started -> Vue erschien uns aber sympathischer.
    • Anfangs Frontend von Tracer mit Vue -> kleinere Anpassungen am normalen Vue Template
    • Zu Beginn Schwierigkeiten mit grundsätzlicher Struktur von Vue z.B. Position von Komponenten ändern etc.
    • Daher erneut Angular ausprobiert -> Jedoch bei Vue geblieben.
  • Vue

    • Vue hat doch etwas besser zugesagt, obwohl es Startschwierigkeiten gab
    • gewählt wurde Vue da simple und moderne App gewünscht.
    • Endgültige Entscheidung auf Vue -> da schnelle und dynamische Entwicklung möglich
  • Ionic Tabs Template

    • Template -> professinelle Oberfläche und passender Aufbaus
    • Probleme: Lief nich Fehlerfrei auf allen Plattformen und nicht einfach eigene Anpassungen zu machen
    • Daher: Vue Projekt von Grund auf selbst aufbauen
  • Eigenes Frontend

    • Aufbau Components
      • Standard Buttondesign aus Mockup
      • Confirmation Button
    • Plugins
      • QR-Scanner
      • QR Generator
  • Vuetify

    • Ab gewissem Zeitpunkt nicht mehr zufrieden mit dem Aussehen der App -> auf ein Framework einigen
    • Die Wahl viel auf Vuetify da:
      • viele Components vorgefertigt
      • Risikobewertung als „v-card“
      • Tab Konzept aus Ionic Vorlage -> ebenfalls als v-buttom-navigation umgesetzt
  • weitere Learnings

    • Vue UI -> Dashboard zum Entwickeln
    • Analysieren anderer Projekte und Templates
    • tiefergehendes Verständnis für HTML und CSS
  • Progressive Web App (PWA)

    • damit auch in erster Linie Mobile User die App verwenden können
    • Umsetztung mit Vue (Plugin)
    • Als Components und Seiten fertig waren -> Versuch händisch das Projekt zu einer PWA zu konvertieren -> sehr viele Probleme -> einfachere Lösung: Vue UI
    • In Vue UI: Plugins des Vue Projekts verwalten -> PWA Plugin installieren -> funktionierte

Backend

  • Deno als Backend (oder Node.js)

    • TypeScript und Javascript überschneiden sich stark, typesafety erspart aber auf langer sicht Kopfschmerzen
    • JavaScript packages funktionieren ebenfalls in Deno
    • da Deno ziemlich neu ist, sind viele Probleme noch undokumentiert
      • Errors müssen händisch gefixt werden, keine copy&paste quickfixes aus StackOverflow
  • Datenbanken und Datenspeicher

    • Für das gesamte Projekt waren zunächst nur einige JSON Files vorgesehen
      • Es stellte sich heraus, dass man als Client nicht auf .JSON Files zugreifen kann
      • Zudem wäre ein solcher Speicher nur bei bestehender Internetverbindung funktionsfähig
    • Im Backend wurde für eine kurze Zeit ein .JSON File zum Speichern benutzt, das Abfragen erwies sich jedoch als unnötig kompliziert
    • Cookies sind nicht persistent und somit nicht zuverlässig
    • Nach langer Recherche erwies sich Localbase als best performanter:
      • Es erfüllt alle Anforderungen: Persistent, leicht zu bedienen und abzufragen, offline funktionalität
  • Pseudonymisierung

    • Zunächst war geplant, allen usern einen zufälligen Hash als ID zu geben
    • Zwei Probleme: Kollisionen sind möglich & so gibt es keine binäre Suche
    • Mit der Bibliothek CUID konnten beide Probleme gelöst werden

Projektorganisation

  • Git (auch tiefergehende Möglichkeiten)
    • Github (KANBAN-Board, Issues, Aufgabenverteilung, License)
    • README und Markdown
    • Branches für paralleles Arbeiten
    • gitignore
  • flüssiges Zusammenarbeiten (wichtiges Learning für ggf. spätere (OpenSource) Projekte)
  • Projektstruktur (z.B. Ordnerstruktur)

Business

  • Schreiben von Businessplänen
  • Erstellen Pitch-Decks
  • Erstellen Businessmodel Canvas und Value Proposition Canvas
  • Logodesign
  • Mockups & Wireframes erstellen

weitere Learnings und Informationen können aus unserer README entnommen werden.