Keeper

Aus TBZ_-_Wiki
Wechseln zu:Navigation, Suche


Einleitung

Ein Keeper ist eine mobile Applikation, welche Benutzernamen und Passwörter von verschiedenen Logins speichern kann und mit der zugehörigen Benutzeridentifikation aufgerufen werden können. Die Registrierung bzw. das Login erfolgt direkt auf dem Startbildschirm der App. Die gesamten Benutzerdaten werden in einer lokalen Datenbank verschlüsselt gespeichert. Die Verschlüsslung wird bei jedem Benutzer automatisch aufgrund von seinen Logindaten generiert. Dadurch ist die Verschlüsselung von den jeweiligen Logindaten abhängig. Weitere Features, welche implementiert werden könnten, sind z.B. Dateien vom Benutzer hochzuladen. Diese sollten ebenfalls verschlüsselt in der Datenbank gespeichert werden.


Projektbeschrieb

Unsere mobile Applikation besteht aus insgesamt neuen verschiedenen Views. Als erstes gelangt man auf die Homeseite, von welcher man aus auf das Login, die Registration, die Einstellungen und Modulprüfung kommt. Anschliessend kann man sich unter Login mit dem zugehörigen Benutzernamen und Passwort einloggen. Falls man noch keinen Account besitzt, kann man unter Registration einen neuen User erstellen. Wenn der User sich erfolgreich authentifiziert hat, gelangt man auf die Übersichtsseite mit den Einträgen. Bei einem falschen Login wird man auf eine separate Seite weitergeleitet und man muss sich erneut einloggen. Die Übersichtsseite beinhaltet alle Einträge, von welche jeweils der Webseitenname angezeigt wird. Die Einträge werden automatisch nach dem Alphabet chronologisch sortiert. Wenn man auf ein Eintrag klickt, lässt sich dieser anzeigen, editieren und löschen. Um einen neuen Eintrag hinzuzufügen, kann mithilfe des „Plus“ ein neuer Eintrag hinzugefügt werden. Schliesslich gibt es noch die Möglichkeit in den Einstellungen diverse Optionen festzulegen. Alle Einträge werden in einer lokalen Datenbank verschlüsselt gespeichert, welche nur von dem berechtigten User aufgerufen werden können.


Anforderungen

Muss Kriterien

  • Login mit Benutzername/Passwort
  • Registrierung mit Benutzername/Passwort und Passwortkontrolle
  • Lokale Datenbank für Speicherung von Einträgen (Logindaten von Webseiten)
  • Liste mit allen Einträgen
  • Einträge anzeigen/bearbeiten/erstellen/löschen
  • Daten verschlüsselt in Datenbank gespeichert
  • Ausloggfunktion

Optional Kriterien

  • Admin für Verwaltung von Benutzern
  • Weitere Benutzerangaben z.B. E-Mail Adresse bei Registrierung
  • „Benutzername merken“ Feld
  • Filter für Einträge (Suchfunktion)
  • Separate Ansicht bei vertikaler Haltung des Mobiltelefons
  • Einstellungen & Über uns
  • Separate Homeseite


Prioritätenliste

Prio.png


Arbeitsaufteilung

Bei der Arbeitsaufteilung haben wir bereits zu Beginn des Projektes erstellt. Dabei haben wir besonders darauf geachtet, dass jeder Projektteilnehmer etwa gleich viel Arbeit hat. Wir haben die Aufgaben in unserem Projekt wie folgt aufgeteilt:

  • Joel Strasser: Visualisierungen (elektronisches Storyboard mit Logik der Applikation, Use Cases), Views für Bearbeiten und Hinzufügen von Einträgen, Datenbank (Erstellung des Datenbankmodells, Erstellung des Datenbankadapters mit den dazugehörigen Activities und Testklasse), Dokumentation
  • Andri Feldmann: Views für Login, Registration, Einstellungen, Modulprüfung und dazugehörige Views, Activities der Views, Anbindung der Datenbank an die Applikation, Zusammenführung aller Views
  • Mischa Herzog: Erster Entwurf Storyboard auf Papier, View für die Hauptübersicht mit allen Einträgen und der dazugehörigen Activity, Zusammenführung der Views für bearbeiten und Hinzufügen von Einträgen inkl. Activities, Testcases

Während des Projektes mussten wir diverse Daten austauschen, da einige Aufgaben auf Aufgaben von anderen Teilnehmern basierten. Der Datenaustausch erfolgte dabei meistens über ein externes Speichermedium oder über Chatmessenger wie z.B. Skype.


Use Case

Use Case M335 V1.png


Story Board

Storyboard V1.png

ERD für Datenbank

ERD.png

Die Datenbank unserer App setzt sich lediglich aus 2 Tabellen zusammen. Dabei sind in der Tabelle „User“ der Benutzername und das Passwort für das Login gespeichert. In der Tabelle „Entry“ ist pro Eintrag der Webseitenname, der Benutzername und das Passwort verschlüsselt gespeichert. Da jeder Eintrag zu einem Benutzer gehört, muss auch noch ein Fremdschlüssel in der Tabelle Entry existieren. Die Beziehung ist 1:mc, da ein User mehrere oder keine Einträge erfassen kann, jedoch ein Eintrag nur zu einem User gehören kann.


Reflexion

Mithilfe dieser Projektarbeit konnten wir unser erstes Android App entwickeln, welches funktionsfähig ist und in der Praxis verwendet werden kann. Dabei haben wir auch sehr vieles im Bereich Java Programmieren mit Android Studio gelernt. Unsere App erfüllt alle Musskriterien, welche wir im Vorhinein definiert haben. Zusätzlich konnten wir sogar noch zwei optionale Features implementieren, nämlich die separate Homeseite sowie die Einstellungen. Insgesamt hatten wir während der Entwicklung keine grösseren Probleme. Bei der Erstellung der Datenbank gab es zuerst Probleme, dass die Daten nicht korrekt ausgelesen wurden. Dieses konnten wir jedoch schliesslich mit einer einfachen Änderung im Cursor ändern. Alle anderen Zusatzfeatures konnten wir jedoch aus zeitlichen Gründen nicht implementieren, da auch das Testing der Applikation sehr aufwändig war.


Dokumentation

Datei:Dokumentation Projektarbeit M335 Strasser Feldmann Herzog.pdf