Git Product home page Git Product logo

einfachgarten.io's Introduction

EinfachGarten.io

Hier soll eine App entstehen, die alle Bedürfnisse des Hobby-Gärtners erfüllt.

Das sind erstmal Ideen. Vielleicht bleiben wir in den Kinderschuhen stecken, vielleicht kommen wir aber auch weit oder weiter. Stell' Dir vor, Du lebst im Land der unbegrenzten Möglichkeiten ...

1. Start:

  • Die App enthält alle Gemüse, Salate, Kräuter, kleine Obstsorten wie Erdbeeren, Preiselbeeren.
  • Man kann sich über die App ermitteln lassen, welche Gemüse, Salate, ... harmonieren und sich gegenseitig fördern (gute Nachbarn) und welche Pflanzen man nicht zusammen anbauen soll (schlechte Nachbarn).
  • Es gibt einen Bereich mit Tipps und Tricks, z.B. bei der Nährstoffversorgung des Bodens, Beetplanung und -Bau.

2. Im nächsten Schritt:

  • Über die App lassen sich Vor- und Nachkulturen der entsprechenden Pflanzen anzeigen.
  • Die einzelnen Pflanzen sind genauer beschrieben: Lateinischer Name, Vorlieben, empfohlene Anbauzeit, Erfahrungen von Gärtnern.
  • Der Nutzer kann einzelne Funktionen verbergen lassen (z.B. die lateinischen Namen + Vorlieben + Erfahrungen von Gärtnern), weil ihn nur bestimmte Informationen interessieren.
  • Gute Nachbarn / Schlechte Nachbarn lassen sich für die einzelnen Monate anzeigen: Es macht beispielsweise keinen Sinn, Rosenkohl zur gleichen Zeit anzubauen wie Kürbis.
  • Die Tipps und Tricks werden nun um Anbauformen erweitert, z.B. kann es einen eigenen Bereich für Permakultur geben.
  • Die App wird auf Englisch und Spanisch übersetzt.

3. Ausblick

  • Wildkräuter und deren Funktion im Garten lassen sich anzeigen. (Z.B. ist Vogelmiere ein wundervoller Bodendecker und enhält gleichzeitig viel Vitamin C.)
  • Die App kann Nährwerte der Pflanzen ausgeben.
  • Man kann sich für eine bestimmte Beetgröße einen Anbauplan generieren lassen.
  • Die App wird in weitere Sprachen übersetzt.

einfachgarten.io's People

Contributors

ennah75 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

einfachgarten.io's Issues

Projekt-Plan: Projekt APP für Gärtner - verfasst von Reinhold

Projekt-Auftrag

Das Projekt hat zum Ziel, eine Online-Applikation „APPNAME“ zu erstellen (das PRODUKT), die einen Gärtner bei der Bewirtschaftung seines Gartens unterstützt: (APPNAME muss noch gefunden werden)

Dazu stellt APPNAME Informationen über relevante Dinge und relevante Zusammenhänge bereit.

APPNAME hilft dem Gärtner, die richtige Kombination von Pflanzen in der richtigen Pflanzfolge zu planen und zu überwachen.

APPNAME soll eine Mischkultur und naturnahen Anbau fördern.

APPNAME soll als Online-Lösung zur Verfügung stehen.

Aufbau von APPNAME:

Dieser Abschnitt zeigt auf, aus welchen Komponenten APPNAME besteht, mit dem Ziel einzelne Aufgabenpakete mit entsprechenden Anforderungen an die Qualifikation festzulegen.

Exkurs zu „System-Architektur“

Für die Verwaltung von Informationen bestehen folgende grundsätzlich unterschiedliche technische Lösungen. Ausgehend davon, dass jemand im Besitz von Informationen ist und diese für sich oder dritte festhalten will, unterscheide ich folgende Stufen:

Stufe 1: der Zettelkasten

Die Informationen werden systematisch gesammelt und auf Zetteln, evtl. mit Formularcharakter festgehalten. Die Zettel werden systematisch abgelegt. Im Vordergrund dieser Stufe stehen der INHALT, aber es gibt wenig Ansätze für eine STRUKTUR – im Sinne von Regeln wie die Zettel beschriftet, abgelegt oder durchsucht werden sollen.

Stufe 2: der elektronische Zettelkasten

Anstelle von Zetteln werden die Informationen auf einem Computer abgelegt, allerdings nach einer festen Ordnung. Nun kommt Struktur zu den Daten (=Inhalte der Zettel). Dies kann im einfachsten Fall geschehen, indem die Zettel als einzelne Dok-Files (evtl. mit Formular) in Directories auf dem Computer abgelegt werden (man verwendet also das Bibliotheks-System zur Verwaltung der einzelnen Daten-Einheiten („Zettel“).

Ähnlich (nicht grundsätzlich verschieden) ist die Lösung eine Datenbank zur Verwaltung der „Zettel“ zu benutzen, indem jeder Zettel (also jede Informationseinheit) als eine Tabelle definiert wird. Die Zettel enthalten meist einen Schlüssel, einzelne beschreibende Attribute (z.B. den Namen, den lateinischen Namen…) und sogenannte Beziehungs-Attribute (also in einer Tabelle steht der Name einer anderen Tabelle, z.B. um die Beziehung der Nachbarschaft auszudrücken. Dies bietet neue Möglichkeiten, den Datenbestand zu durchsuchen. Die Umsetzung dieser Lösung ist eine klassische Anwendung von Excel oder Access in der Praxis.

Diese Lösung bietet eine systematische Datensammlung und erlaubt, die Daten mit wenig Aufwand in eine nächste Lösung zu übernehmen.

Stufe 3: Abstraktion mit 3-Level-Architektur

Wir gehen klassisch von einer Architektur mit 3 Ebenen aus.
(1) Die Daten-Ebene
(2) Die Applikations-Ebene
(3) Das Benutzer-Interface
Diese Architektur kann implementiert werden als

  • Single User Applikation
  • Multi-User Applikation mit gemeinsamer Datenbasis
    AUFGABE: Entscheidung für schrittweise von Single zu Multi-User?

Projekt-Aufbau

Das Projekt und seine Aktivitäten orientieren sich am 3-Ebenen-Modell. An den 3 Ebenen kann parallel gearbeitet werden mit jeweiliger Abstimmung der Inhalte.

Die Daten-Ebene

Zur Daten-Ebene – die Datenstruktur

Die Datenstruktur bildet ab, mit welchen „Dingen“ die Anwendung sich befassen soll: Beispiele

  • Gärtner: eher Hobby-Gärtner oder so – keine Großgärtnerei.
  • Pflanzen: die Eigenschaften von Pflanzen und ihre Zugehörigkeit zu Pflanzen-Familien - nicht beliebige Pflanzen, sondern eher Gemüse, Obst, Beeren im weitesten Sinn.
  • Garten bestehend aus Beeten. NAME verwaltet einen Anbauplan über die Zeit.
  • Anbauplan: Wann in welchem Beet welche Pflanzen gesät, bearbeitet, geerntet werden.
  • Nachbartauglich: welche Pflanzen können gut / schlecht / gar nicht zusammen wachsen.
  • Pflanzenfolge: welche Pflanzen können gut / schlecht / gar nicht vor/nach einer bestimmten anderen Pflanze in einem Beet angebaut werden.
  • Böden: Arten von Böden, Bodenbeschaffenheit und welche Pflanzen mögen/mögen nicht bestimmte Böden.
  • Dünger: welche Art von Dünger gibt es, welche Böden sind für welchen Dünger, welche Pflanzen verlangen welchen Dünger.

GrafikReinholdProjektplanung
Beispiel Datenmodell

  • Die Datenstruktur legt fest, welche Datentypen in eigenen Tabellen erfasst werden, welche Eigenschaften für jeden Datentyp erfasst werden und welche Beziehungen zwischen den Datentypen bestehen:
  • Beispiel: „Pflanzen“ ist ein Datentyp – „Brokkoli, Kartoffel, Spinat“ sind einzelne Ausprägungen (Instanzen) des Datentyps „Pflanzen“. Es wird also eine Tabelle für alle Ausprägungen eines Typs angelegt. In einem Garten gibt es Beete. Ein Datentyp „Bepflanzung“ könnte beschreiben, welche Pflanzen zu einem bestimmten Zeitpunkt in einem bestimmten Beet gepflanzt werden/sind.
    AUFGABE: Welche Datentypen gibt es?
  • Beispiel: Name, Name-Latein, Bild, Nährwert sind Attribute (Eigenschaften) eines Datentyps.
    AUFGABE: Für jeden Datentyp muss festgelegt werden, welche Attribute zu erfassen sind und was diese bedeuten.
  • Beispiel: Zwischen zwei Pflanzen besteht eine Beziehung „Nachbarschaftstauglich“. Diese ist keine Eigenschaft der beiden Pflanzen, sondern eben die Bezeichnung für eine Verbindung / Beziehung zwischen den beiden Pflanzen. Wir unterscheiden zwischen funktionalen Beziehungen und strukturellen Beziehung (z.B. Pflanzen gehören zu einer Pflanzen-Familie).
    AUFGBABE: Die relevanten Beziehungen sind zu definieren.
  • Ob etwas, das man ausdrücken will als Typ, Attribut oder Beziehung definiert wird, hängt von der Verwendung ab und ist oft nicht einfach zu entscheiden. Es kann also durchaus sein, dass dies im Laufe eines Projektes geändert wird: Nehmen wir das Beispiel „Bepflanzung“ – also welche Pflanze zu einem bestimmten Zeitpunkt in einem bestimmten Beet gepflanzt ist – hat Eigenschaften (z.B. wie viele Pflanzen gepflanzt sind, wann gepflanzt wurde, welcher Teil von welchem Beet in Anspruch genommen ist). „Bepflanzung“ hat also Eigenschaften und Beziehungen zu „Pflanze“, „Beet“…

Zur Daten-Ebene – die Daten-Implementierung

Die Implementierung legt fest, wie die Typen / Attribute und Beziehungen in Tabellen abgebildet werden. Besonders wichtig ist die Abbildung der Beziehungen, weil diese für die Struktur verantwortlich sind.

AUFGABE: Datenbank-Implementierung des Datenmodells. Vorschlag welches DBMS (MySql, MariaDB, SQLServer) einzusetzen sind. (Es wird sicher nicht mehr Access sein).

Dictionary:

AUFGABE: Ein Verzeichnis (Dictionary) mit allen Begriffen und deren Beschreibung aufbauen und pflegen.

Zur Daten-Ebene – der Datenzugriff

Wir gehen davon aus, dass eine relationale DB oder eine NOSql DB eingesetzt wird.
AUFGABE: Design des Interface von der Applikation zum Datenserver

Zur Daten-Ebene – Inhalte

Bis hierher wurde nur über die Struktur gesprochen. Jetzt geht es um die konkreten Inhalte.
AUFGABE: Es ist zu erarbeiten wie die Nutzdaten (Instanzdaten) in die Datenbank kommen sollen. Das beinhaltet den Initial Load, das Update, u.U. die Datenübernahme, die Datensicherung.

Die APPLIKATIONS-Ebene

Die Applikations-Ebene stellt technisch das Bindeglied zwischen Benutzer-Oberfläche und Daten-Ebene her.

Funktional: Welche Prozesse sollen mit welchen Eingaben / Ausgaben unterstützt werden? Genaue Beschreibung der Eingabe und der Ausgabe als Vorgabe für das Datendesign (Abstimmung mit Datenmodell: Die Funktion liefert welche Attribute / Beziehungen gebraucht werden, die Datenebene standardisiert die Bezeichnungen und achtet auf die Einhaltung der Sprach-Regelung).

Technisch: Hier sind Funktionen zu programmieren

Objekt-Dienste:

AUFGABE: Wie sollen die Daten der einzelnen Typen erfasst, geändert, gelöscht, gesucht und angezeigt werden?

Auswertung:

AUFGABE: Welche regelmässigen Auswertungen sind zu erstellen?
Beispiel Jahres / Monats-Zusammenstellungen von Arbeiten (Säen, Pflanzen, Bearbeiten, Ernten), die anfallen.

Planungs-Unterstützung

Beispiel: In einem Beet sind Broccoli und Zucchetti gepflanzt. Was soll als nächstes gepflanzt werden?

Benutzer-Oberfläche:

Wird inhaltlich getrieben von den Anforderungen der Anwendungs-Schicht.
Technische Implementierung:

  • Native GUI
  • Browser-basiertes GUI
    AUFGABE: Vorbereiten der technischen Lösung
    Unterstützung beim Entwurf von applikatorischen Funktionen.

Projekt hinzugefügt

Ich kenne mich noch gar nicht aus. Wenn jemand mehr weiß: Bitte loslegen oder hier 'mal eine kurze Anleitung schreiben.

Möchte jemand das Projekt und das Repository mit mir zusammen verwalten? Dann würde ich versuchen, diejenige Person bzw. Personen hinzuzufügen.
Ab Mittwoch weiß ich noch nicht, wie es zeitlich für mich aussieht: Da habe ich einen neuen Arbeitsplatz.

Ideensammlung für die enstehende App

Wie starten wir?
Was macht wer?
Wie kommunizieren wir?
Am besten wäre doch erstmal ein Board, auf dem in der Mitte "Garten-App" steht? Und dann all die unbegrenzten Möglichkeiten darunter und davon verwirklichen wir dann erstmal das, was schnell und einfach möglich erscheint?

Einfache Abfrage der App

Meine Abfrage in Access sieht derzeit wie im Bild aus. Die Daten sind alle händisch eingetippt und aus verschiedenen Quellen im Internet zusammen gesucht.
Wie leicht bzw. wie schwer lässt sich so etwas (also die Abfrage) in einer selbst programmierten App umsetzen?

AccessBeispiel1

Vorstellung der Teilnehmer

Bitte stellt Euch kurz vor, damit wir sehen können, wie Ihr Euch einbringen könnt.

Habt Ihr Programmiererfahrung? Oder sammelt Ihr gerade welche?

Oder werdet Ihr eher die Texte schreiben und korrigieren?

Welche Erfahrung mit Garten habt Ihr?

Kurze Zusammenfassung und Diskussion

Hallo zusammen!

Ich fasse 'mal kurz zusammen:

Reinhold hat einen Entwurf für das erweiterte Datenmodell auf seinen Google Drive geladen. Link:
https://drive.google.com/drive/folders/1_YU643CUvO4y9LafSLz6hC0XEBFhUC2g?usp=sharing

Simon hat das Grundgerüst einer App erstellt. Der Link befindet sich im Lernraum beim OpenHPI ... Darf er veröffentlicht werden oder bauen wir den erstmal ins Forum ein? Welches Forum werden wir nutzen bzw. nutzen wir? - Ich denke auch, dass es da einfacher ist, miteinander zu diskutieren.
Ich verweise auch nochmal auf den Projet-Plan von Reinhold:
#8

Reinhold und Simon haben ja inzwischen einiges getan. Ich fände es gut, andere Anwender ins Boot zu holen, denn wir wollen ja möglichst viele Anwender mit der App glücklich machen.

Ich würde die Access-Datenbank in nächster Zeit weiter füttern und, wenn es das noch her gibt, das eine oder andere Foto machen. Eventuell etwas zu Pflanzen oder auch Schädlingen schreiben.

Wie geht es weiter? Mir fehlt gerade der vollkommene Durchblick. Gäbe es eventuell auch die Möglichkeit kurze online-Konferenzen anzusetzen? Es ließe sich - in meinen Augen - besser abstimmen bzw. direkt Unklarheiten beseitigen.

Herzliche Grüße aus dem Bergischen Land
Eva

Name des Repositorys

Ich benenne das Repository gerne nochmal um, wenn Euch ein besserer, zutreffenderer Name einfällt.

Vorstellung Reinhold

Ich bin Reinhold, Ich habe ein ganzes Leben in der Informatik verbracht als Entwickler, Architekt, Berater,
Ganz besonders habe ich mich der Strukturierung von Projekten auf der Basis von Daten-Design und Anforderungsspezifikation befasst. Ich programmiere auch gerne (nachdem ich weit über ein Dutzend Sprachen gelernt und benuzt habe bin ich inzwischen bei Python angelangt) und helfe gerne anderen die programmieren lernen wollen.

Da haben wir nun die ganze Bandbreite von Projekt-Möglichkeiten - von einem wilden überschäumenden Garten oder einem disziplinierten Gemüse-Produzenten. Es gilt also den Focus auf das zeitlich überschaubar Machbare zu legen und mit ersten Erfolgen die Basis für weitere Erfolge zu legen.

Als einen ersten Beitrag könnte ich

  • einen Entwurf für ein Datenmodell mit Hinweis wie gemeinsam an der Komplettierung gearbeitet werden kann
  • ein Vorschlag für die Abgrenzung von Anforderungspaketen im Sinne eines schrittweisen Ausbaus.

Mir ist allerdings auch nach dem Kurs noch nicht ganz klar wie man kommunizieren soll - darum ein Anfang über einen Issue.
Der ursprüngliche Vorschlag über eine WhatsApp Gruppe zum Warmlaufen könnten wir doch noch mal überlegen: +41793241770

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.