Announcement

Collapse
No announcement yet.

Vorschläge APIs/Frameworks/Sprachen für mein Projekt

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Vorschläge APIs/Frameworks/Sprachen für mein Projekt

    Hallo liebes Forum,

    ich möchte in Projekt realisieren und brauche eure Hilfe. Genauer gesagt brauche ich Vorschläge von euch mit welchen APIs/Frameworks/Programmiersprachen ich mein Projekt realisieren kann.

    Folgendes Szenario:
    Es gibt viele Mitarbeiter im Unternehmen. Jedem Mitarbeiter wird ein Login mit Benutzername und Passwort zur Verfügung gestellt. Jedem Mitarbeiter wird auch ein Mikrocontroller zugeordnet der Sensoren nach einem Event checkt. Es soll eine Webapplikation mit einer Art Kalender realisiert werden. Der User loggt sich mit Benutzername und Passwort ein, sieht seinen persönlichen Kalender und wählt einen Tag aus. Für diesen Tag kann er mehrere Uhrzeiten eintragen wo der Mikrocontroller eine bestimmte Aufgabe für ihn ausführt. Dann klickt er auf speichern und loggt sich wieder aus. Die gleiche Funktionalität soll in einer iOS-App realisiert werden.
    Der Mikrocontroller der über WLAN verbunden ist, holt sich die genauen Uhrzeiten und besitzt eine Real Time Clock. Dann führt er die Aufgaben zu den in der WebApplikation/iOS-Applikation hinterlegten Uhrzeiten/Tag aus.

    Die Frage ist jetzt:
    Welche APIs/Frameworks/Programmiersprachen eignen sich hier? Ich nehme an dass ich eine Datenbank brauche, wo Username und Passwort gespeichert werden. Außerdem sollen ja die Uhrzeiten von jedem Tag gespeichert werden. Gibt es eine API/Framework die man sowohl für die Webapplikation als auch für die iOS-Applikation nutzen kann? Im Anhang ist ein Bild hinterlegt, wie die Webapplikation ungefähr aussehen soll.

    Ich bedanke mich für die Antworten.
    Attached Files

  • #2
    Da es eine Webappliktion werden soll, stellt sichd die Frage nach "iOS-Applikation" nicht.

    Die Frage ist welchen Applikationsserver kannst du nutzen, davon hängen dann weitere Entscheidungen ab

    Würde JBOSS, Java, JSF, Primefaces nutzen.

    Wer eher auf der MS-Schiene ist, word dann wohl mehr NET vorschlagen.

    ...Passwörter speichert man nicht in einer DB ab.
    Christian

    Comment


    • #3
      Wie erfolgt die Zuordnung zwischen MC und Mitarbeiter?
      Ist ein "persönlicher Kontakt" der Mitarbeiter zu Ihrem MC vorgesehen/notwendig (Bedienung, An, Aus, ..)?

      Wenn iOS, warum dann nicht auch als Webanwendung?
      Also eine Browserkomponente mit einer Rahmenanwendung?

      (Auf dem Bild kann man eigentlich nichts erkennen außer Kästchen, die an einen Kalender erinnern könnten)
      Gruß, defo

      Comment


      • #4
        Originally posted by Christian Marquardt
        ...Passwörter speichert man nicht in einer DB ab.
        Du meinst im Klartext, oder? Ich kenne kaum eine Webapplikation, die nicht die Passwörter in einer Datenbank speichert, gehashed oder verschlüsselt allerdings.
        PHP rocks!
        Eine Initiative der PHP Community

        Comment


        • #5
          Wenn ein Passwort gehasht ist, wird nicht das Passwort gespeichert, sondern der Hash.
          Der Hash ist nicht das Passwort und aus dem Hash kann das Passwort erstmal nicht (je nachdem welche Hash-Methode genutzt wird; einige sind "verbrannt"[SHA256]) ermittelt werden
          Christian

          Comment


          • #6
            Hallo, danke für die Antworten!

            Bitte habt etwas Gnade mit mir. Für mich ist das Gebiet absolutes Neuland .

            @Christian
            Wie entscheide ich welchen Server ich verwenden kann/ welcher geeignet ist? Ich habe noch keinerlei Erfahrungen damit.

            @defo
            Der MC hat einen eingebauten WLAN-Chip. Ich würde sagen ich ordne jedem Mitarbeiter eine MAC-Adresse zu.
            Was den "persönlichen" Kontakt angeht: Der Mikrocontroller macht alles selbst. Dafür braucht er nur die Uhrzeiten. Er soll eine bestimmte Aufgabe erledigen und sich wieder schlafen legen bis zum nächsten angegebenen Zeitpunkt. Dann soll er aufwachen, die Aufgabe erledigen und dann wieder schlafen legen usw. Ein-/Ausschalten soll man ihn per WebApplikation nicht können.

            Wenn iOS, warum dann nicht auch als Webanwendung?
            Also eine Browserkomponente mit einer Rahmenanwendung?
            Du meinst ich programmiere die WebApplikation und die iOS-App stellt diese WebApplikation einfach nur "verbessert" auf dem Iphone dar?

            Wo lege ich denn die Passwörter ab? Also die Anwendung muss ja schauen ob der eingegebene User auch samt Passwort exisitert.

            Comment


            • #7
              Du meinst ich programmiere die WebApplikation und die iOS-App stellt diese WebApplikation einfach nur "verbessert" auf dem Iphone dar?
              Es gibt dann keine IOS-App. Wer das IOS nutzt, benutzt den dort hoffentlich vorhandenen BROWSER. Auch PC, Android, MAC -User nutzen dann den Browser

              Wo lege ich denn die Passwörter ab? Also die Anwendung muss ja schauen ob der eingegebene User auch samt Passwort exisitert.
              Überhaupt nicht -> Siehe Beitrag #5

              Wie entscheide ich welchen Server ich verwenden kann/ welcher geeignet ist? Ich habe noch keinerlei Erfahrungen damit.
              Welche Kenntnisse hast du in welchen Sprachen, Techniken?
              Christian

              Comment


              • #8
                @Christian
                Mir ist bewusst dass man auch einfach den Browser verwenden kann. Jedoch sind Push-Notifications auf dem Smartphone Teil der Anforderungen.

                Ich besitze was WebApplikationen angeht keine Erfahrungen. Ich habe Sprachen wie C, Java, etwas mySQL, Grundkenntnisse in Swift gelernt.

                Comment


                • #9
                  Mir ist bewusst dass man auch einfach den Browser verwenden kann. Jedoch sind Push-Notifications auf dem Smartphone Teil der Anforderungen.
                  Dann musst du für jedes Betriebssystem eine Anwendung bereitstellen

                  Ich besitze was WebApplikationen angeht keine Erfahrungen. Ich habe Sprachen wie C, Java, etwas mySQL, Grundkenntnisse in Swift gelernt.
                  Und was ist die Vorgabe bezüglich der Umgebung? Du kannst alles verwenden? Keine im Betrieb schon vorhanden Struktur, Server, Datenbanken?
                  Christian

                  Comment


                  • #10
                    Ich habe soweit ich weiß keine Vorgaben. Mir wurden keine genannt, daher denke ich dass ich alles verwenden darf. Ich kann mich diesbezüglich noch etwas genauer bei meinem Professor informieren. Die Info werde ich wohl frühestens Montag haben. Was würdest du denn vorschlagen wenn alles offen wäre? Was wäre das einfachste?

                    Comment


                    • #11
                      Das was du (wenn du es tatsächlich in diesem Umfang realisieren musst) am ehesten kannst und dir zutraust. Professor? Zeit dürfte dann ja eine untergeordnete Rolle spielen
                      Mein Vorschlag steht oben.
                      Jedoch wirst du immer unterschiedliche Antworten bekommen, je nachdem mit was die Leute vertraut sind.
                      Christian

                      Comment


                      • #12
                        So Leute ich hab mal etwas mehr recherchiert und habe nun ein Verständnisproblem.

                        Ich brauche für die Web-Applikation HTML, CSS, (JavaScript?), eine Datenbank, und ein Web-Framework richtig? Da ich Java kann sollte doch Grails als Web-Framework geeignet sein, oder?

                        Wenn wir jetzt weiter ins Detail gehen:
                        Also ich habe vor die "TimeStamps" in der Datenbank zu speichern. Jeder User bekommt eine Tabelle in der Datenbank mit seinen gesetzten Timestamps. Es wird eine WebSeite mit einem Kalender erstelllt und zwar mit HTML, CSS und JavaScript. Von der WebApplikation aus (also vom Kalender) schreibt der User die TimeStamps in die Datenbank rein. Der Microcontroller holt sich dann die TimeStamps (also wann er das nächste mal etwas ausführen soll) über die REST-API von der Datenbank. Die REST-API wird von GRAILS zur Verfügung gestellt, oder?
                        Ich merke deutlich dass ich noch Lücken habe was den Zusammenhang angeht... Hoffe ihr könnt mir helfen.

                        Comment


                        • #13
                          Für eine Webapplication ist es erforderlich ein Webserver zu haben

                          Da ich Java kann sollte doch Grails als Web-Framework geeignet sein, oder?
                          Die bessere Definition ist: Serverseitige Sprache
                          Warum willst du, wenn du Java kannst unbedingt Grails nutzen? Warum keinen Webserver der Java kann?

                          Das hängt von dem Webserver ab, den du nutzen kannst oder hast du die freie Wahl?
                          Dann wäre Tomcat oder JBOSS mit Java die bessere Wahl -> ggf. Tomcat PlugIn für grails http://grails.org/plugin/tomcat

                          Die REST-API wird von GRAILS zur Verfügung gestellt, oder?
                          Die musst du natürlich ausprogrammieren. Grails weiss ja nicht was du machen willst.
                          Wobei sich die Fragestellt, warum der Mikrocontroller (was soll man sich darunter vostellen? https://de.wikipedia.org/wiki/Mikrocontroller der kann sich keine Daten holen; was ist das für ein Programm, das sich die Daten von einem Webservice oder der DB holt?) sich die Daten dann nicht selbst aus der DB holt, sondern erst den Webserver befragt und der die Daten holt und weiterleitet.

                          Des Weiteren ist das jetzt eine etwas andere Aufgabenstellung, als im Eingangspost. Das lesen der Dateien und das schreiben einer neuen Datei fällt jetzt weg?

                          Teile doch mal die Rahmenbedingungen mit

                          Welche Datenbank?
                          Server?
                          Betriebssysteme?
                          Webserver?
                          Projektzeit?
                          Kosten?
                          Welche Entwicklungsumgebung willst du nutzen?
                          Wer Installiert und konfiguriert die Datenbank, den Webserver?

                          Ich befürchte, dir fehlt so der Überblick, wie das Internet funktioniert, welche Techniken wann genutzt werden sollten, Client- und Serverseite u.v.m.
                          Es ist m.E. weniger sinnvoll im Internet herum zu suchen und bei Teilfragmenten sich aus diese zu stürzen (Grails)

                          Sprich mit dem Auftraggeber die Anforderungen ab
                          Lege diese schriftlich nieder
                          Verifizierte diese dann nochmals mit dem Auftraggeber, so dass sie dann einen endgültigen Stand haben

                          Dann kannst du dieses Dokument jemanden zeigen und er hat dann den ganzen Überblick und nicht immer nur 2-3 Sätze in einem Forum.

                          Lege dann die Hardwarebedingungen fest (Server, Betriebssysteme). Dann kannst du über möglich Software nachdenken und dir verbalen Rat holen.

                          Eine Stunde reden beim Bier bringt mehr als 1 Woche im Internet rumsuchen.

                          Für das rumsuchen im Foren sollte der Rahmen (die Rahmenbedingungen) festgelegt sein. Ohne irgendwelche Beschränkungen oder Vorgaben wird wenig sinnvolles dabei herauskommen.

                          Wenn man ohne jegliche Vorgaben ein Haus bauen soll, baut der eine ein 10.000qm große Hauslandschaft, der andere baut Schloß Windsor mit beheizten Kerkerböden, der dritte ein 200m hohes Hochhaus.

                          Ein systematisches Vorgehen sollte helfen, wobei man das System erst in große Teilssysteme (Teilprobleme) zerlegt und dann in kleinere. Und nicht anfängt unsystematisch sich ein kleines Problem heraus zu suchen und das dann mit viel Zeit zu beackern
                          Zuletzt editiert von Christian Marquardt; 19.09.2017, 08:02.
                          Christian

                          Comment


                          • #14
                            Hallo Christian, danke dir für deine Mühe!

                            Ich versuche es mal genau zu beschreiben

                            Komponenten:
                            1. Mikrocontroller der per WLAN verbunden ist und mit einem Temperatursensor ausgestattet ist
                            2. Iphone

                            Wie sieht das Projekt aus?
                            Es gibt viele Mitarbeiter in einem Unternehmen. Jedem Mitarbeiter wird ein Microcontroller zugeordnet. Jedem Mitarbeiter sollen Zugangsdaten (Benutzername und PW)
                            vergeben werden. Mit diesen Daten loggt er sich in eine Webseite ein, wo er seinen persönlichen Kalender vorfindet. In diesen Kalender soll er für jeden Tag im
                            Jahr _mehrere_ Uhrzeiten eintragen können. Diese sollen natürlich nicht verloren gehen und müssen gesichert werden. Der Mikrocontroller soll sich dann die nächste Uhrzeit/Zeitpunkt
                            holen, schlafen legen, zu der geholten Uhrzeit aufwachen, den Sensor checken und dann eine Email UND eine Push-Benachrichtigung auf das Iphone senden. Anschließend soll er sich wieder die nächste Uhrzeit holen und wieder schlafen legen.
                            Das wiederholt sich.
                            Der User soll auf der Webseite einstellen können ob er eine Benachrichtigung auf dem Iphone bzw. eine Email bekommt oder nicht.
                            Die gleiche Funktionalität der Webapplikation soll auch nativ auf einem Iphone realisiert werden (das heißt einen Kalender oder ähnliches wo er die Uhrzeiten für jeden Tag bearbeiten kann).
                            Push-Benachrichtigungen sind eine Anforderung!

                            Meine Annahmen bis jetzt:

                            1.ich programmiere den Kalendar. Ich habe mal Beispiele für einen Kalendar rausgesucht. Einmal wurde einer per HTML+CSS+Javascript realisiert
                            http://www.mrknowing.com/2013/07/25/...nd-javascript/
                            und einer mit HTML+CSS+PHP
                            https://www.startutorial.com/article...alendar-in-php
                            ich passe diese natürlich meinen Anforderungen an und überarbeite diese. Diese dienen nur als Beispiel.

                            2. Diesen Kalender mit Funktionen muss ich ja online zugänglich machen. Also muss ich ja einen Webserver/Application Server aufsetzen...

                            3. Die Uhrzeiten müssen ja gespeichert werden, also nehme ich an ich komme um eine datenbank nicht herum. Schließlich sind es pro User in einem Jahr mindestens
                            hunderte von Uhrzeiten.

                            4. Da die Uhrzeiten gespeichert werden, wird von der WebApplikation aus auf die Datenbank zugegriffen. Also es muss gelesen/geschrieben werden, ergo es werden Funktionen aufgerufen.

                            5. Für die Umsetzung beim Iphone habe ich die Library "JTAppleCalendar" gefunden. Push-Benachrichtigungen realisiere ich mit Firebase (oder Alternativen von euch).


                            Meine Fragen jetzt:
                            Ich verstehe noch nicht den Zusammenhang/Kommunikation zwischen den Technologien/Frameworks/APIs...

                            1. Wie bringe ich die Webseite online? Was brauche ich dafür? (Ich weiß ich brauche einen Server, aber welche Tools?)

                            2. Wie mache ich das mit der Kommunikation zwischen der WebApplikation und dem Microcontroller? Es werden ja funktionen aufgerufen... Mach ich das mit JavaScript, der REST API, einem HTTP Request, Austausch einer JSON-Datei? Ich weiß nicht welche Möglichkeiten ich habe.

                            3. das gleiche für die Umsetzung beim Iphone... JavaScript/REST/HTTP/JSON?

                            4. Wozu braucht man ein WebFramework? Brauche ich eins?

                            Ich kenne mich gut in Java aus, möchte aber nicht dass man für den Aufruf der webseite ein Java-Plugin braucht. Viele haben das auf dem Rechner nicht installiert und ich habe bedenken dass man die Webseite mit einem Android Smartphone nicht
                            aufrufen kann. Ich wäre auch bereit PHP/Javascript anzuwenden.

                            Comment


                            • #15
                              Ich kenne mich gut in Java aus, möchte aber nicht dass man für den Aufruf der webseite ein Java-Plugin braucht. Viele haben das auf dem Rechner nicht installiert und ich habe bedenken dass man die Webseite mit einem Android Smartphone nicht
                              aufrufen kann.
                              Java, PHP, Grails und ggf. andere sind SERVERSEITIGE Sprachen, die laufen auf dem Webserver nicht auf dem Client (Browser)
                              PHP, Java, Grails -> Server
                              Javascript, HTML, CSS -> Client
                              Apache, Tomcat, JBOSS sind Webserver. Apache kann PHP und PERL, die anderen Java als SERVERSEITIGE Sprache

                              4. Wozu braucht man ein WebFramework? Brauche ich eins?
                              Wie definierst du Webframework? Im Sinne wie du das bisher benutzt hast -> ja. Irgendetwas muss serverseitig die Verarbeitung vornehmen (Daten in die DB schreiben, HTML-Seite rendern)

                              3. das gleiche für die Umsetzung beim Iphone... JavaScript/REST/HTTP/JSON?
                              Für deine Anforderung der Push-Benachrichtigungen reicht das nicht

                              2. Wie mache ich das mit der Kommunikation zwischen der WebApplikation und dem Microcontroller? Es werden ja funktionen aufgerufen... Mach ich das mit JavaScript, der REST API, einem HTTP Request, Austausch einer JSON-Datei? Ich weiß nicht welche Möglichkeiten ich habe.
                              Dazu muss man genaueres Wissen. Mikrokontroller sind per WLAN angebunden. Schön, aber das bedeutet nur, sie sind in einem Netzwerk. Was machen sie da? Kann man auf sie zugreifen? Liefern sie die Daten irgendwo ab? Sind sie in einem geschlossenen Firmennetzwerk? Oder allg. im Internet?
                              Wenn alles in einem geschlossenen Firmennetzwerk ist, wirst du wohl direkt darauf zugreifen können.

                              1. Wie bringe ich die Webseite online? Was brauche ich dafür? (Ich weiß ich brauche einen Server, aber welche Tools?)
                              Wo willst du das "online" bringen. Im Internet? in einem geschlossenen Firmennetzwerk (Intranet)?
                              Du brauchst eine Domain (eine Internetadresse wie www.meinetemperaturmessung.de). Wenn du dir einen Namen überlegt hast kannst du bei einem Webhoster diese Adresse beantragen. Dann bekommst du einen Webserver gestellt. Üblicherweise bieten diese als serverseitige Sprache meistens nur PHP und PERL an. Du hast auch von außerhalb keinen Zugriff auf die Datenbank. Alernativ kannst du dir einen Server "in Internet" mieten. Dann musst du alles dort selbst installieren (Webserver, Sprachen, Mail usw.). Der Zugriff erfolgt über FTP und SSH. Die nächste Möglichkeit sind vorkonfigurierte Server, die du nur bedingt selbst administrieren kannst.
                              In einem Firmennetzwerk (Intranet) wir irgendwo (wo alle Zugriff haben) ein Webserver installiert (Apache, Tomcat, JBOSS).
                              Christian

                              Comment

                              Working...
                              X