-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
BennerLukas
committed
Feb 20, 2021
1 parent
b725e1d
commit 3145072
Showing
1 changed file
with
61 additions
and
49 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,91 +1,103 @@ | ||
# Projektprozess | ||
# Learnings | ||
|
||
Für Learnings im Bereich Businessmodell & Konzeption siehe im Bereich Business. | ||
## gelernte Technologien | ||
|
||
## Untersuchte, Evaluierte Technologien | ||
__auch verwendet:__ | ||
|
||
- Typescript / JavaScript | ||
- Entwickeln mit TypeScript (TS) und JavaScript (JS) | ||
- 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: | ||
## Frontend | ||
|
||
- Angular | ||
- simple Tests / get started -> Vue hat uns aber besser gefallen. | ||
- simple Tests / get started -> Vue erschien uns aber sympathischer. | ||
- Anfangs Frontend von Tracer mit Vue -> kleinere Anpassungen am normalen Vue Template | ||
- Wir verstanden nicht die grundsätzliche Struktur von Vue z.B. Position von Komponenten ändern etc. | ||
- Daher wechsel auf Angular -> probieren mit vorgefertigtem 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 wir es nicht ganz verstanden haben | ||
- Endgültige Entscheidung auf Vue -> suchten zuerst den schnellsten weg eine schöne Frontend-Anwendung zu bauen | ||
- Ionic Tabs Template -> sah sehr gut aus und sagte vom Grundaufbau mit drei Tabs sehr gut zu | ||
- Jedoch Probleme das Projekt auf mehreren Clients zum Laufen zu bekommen | ||
- Lange Zeit probierten wir am Template herum -> Entschluss Vue Projekt von Grund auf selbst aufbauen | ||
- Aufbau Components -> Zuerst Standard Buttondesign aus Mockup | ||
-> dann „Confirmation Button“ usw. | ||
- Nach und nach ersten Plugins: z.B. QR-Scanner und QR Generator | ||
- Ab gewissem Zeitpunkt nicht mehr zufrieden mit dem Aussehen der App -> auf ein Framework einigen | ||
- Die Wahl viel auf Vuetify -> viele Components vorgefertigt -> Risikobewertung als „v-card“ | ||
- Tab Konzept aus Ionic Vorlage -> ebenfalls als v-buttom-navigation umgesetzt | ||
- Vue hat doch etwas besser zugesagt, obwohl es Startschwierigkeiten gab | ||
- gewählt wurde Vue da simple und moderne App gewünscht. | ||
- Vue UI | ||
- vuetify | ||
- ionic (getestet aber nicht verwendet) | ||
- 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 | ||
- 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 | ||
- 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 | ||
|
||
|
||
- 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 (Ordnerstruktur) | ||
|
||
- 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 performer: | ||
- 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 | ||
- 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 | ||
- Mit der Bibliothek CUID konnten beide Probleme gelöst werden | ||
|
||
- Docker | ||
- Dockerize und Dockerfile | ||
- Dockercontainer -> Evaluierung der Umsetzung | ||
## 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 | ||
|
||
- Business | ||
- Schreiben von Businessplans | ||
- Erstellen Pitch-Decks | ||
- Erstellen Businessmodel Canvas und Value Proposition Canvas | ||
- Logodesign | ||
- Mockups & Wireframes erstellen | ||
weitere Learnings und Informationen können aus unserer [README](https://github.com/michael-spengler/Tracer-wwi19dsa) entnommen werden. |