Was benötige ich um ein online Terminkalender zu programmieren?

4 Antworten

Wenn du alles selber machen willst, braucht du eine Datenbank,z. B. MYSQL und dann kanns du wählen zwischen Java oder PHP (einfacher).

In der DB wird jeder Termin mit Startzeit und endzeit eingetragen und dann noch die Darstellung.

noskill187  15.12.2017, 16:28

Wär auch meine spontane Behauptung gewesen: PHP und MySQL-Datenbank wird wohl gewöhnlich für eine solche Weblösung verwendet.

MySQL-Datenbank ist im Grunde sowas wie eine Exceltabelle und der PHP-Code diktiert wie der Spass dargestellt und ausgegeben werden soll.

Am Ende landet man wohl bei: HTML, CSS, PHP und MySQL-Kenntnissen.

0
osion  15.12.2017, 16:32
@noskill187

PHP hat gar keinen Zugriff auf MYSQL, sondern nur eine Schnitstelle resp. geht alles über SQL.

Du brauchst natürlich Javascript resp. kannst du das JQuery Framework nehmen, welches dir viel Arbeit abnimmt und Bootstrap für die Darstellung.

0

Ich würde dir für deine Webseite eher empfehlen, eine bereits bestehende Lösung zu wählen, wie den Google Kalender. Man muss das Rad nicht stets neu erfinden.

Was genau brauche ich denn, wenn ich ein webbasiertes Buchungs/ Terminvergabe System programmieren will?

Einen Webserver, auf dem die Webanwendung laufen kann - aber den hast du ja eh schon, wenn bereits eine Webseite existiert. Daher solltest du dich darüber informieren, um was für einen Server es sich handelt und welche Sprachen er überhaupt interpretieren kann. Dies schränkt deine Wahl nämlich ein.

Für die Speicherung der Daten empfiehlt sich ein Datenbanksystem (MySQL, MSSQL, MariaDB, etc.).

Welche Programmiersprachen und Programme werden dafür heutzutage genutzt?

Bei der Wahl einer Programmiersprache für die serverseitige Webanwendung bieten sich die gewohnten Optionen an:

  • Java
  • C# oder VisualBasic mit dem ASP.NET-Framework
  • JavaScript (auf nodeJS-Basis)
  • PHP
  • Ruby
  • Google Dart
  • etc.

Für die Webseite selbst stehen ebenso die üblichen Techniken im Raum: HTML + CSS für Markup und Design, JavaScript (vielleicht mit jQuery) für dynamisches Event-Handling, wenn nötig.

Wie würde ich anfangen?

Zuerst listest du auf, was du brauchst und welches Verhalten du dir von deinem System erwartest. Es geht darum, sich erst einen Überblick zu verschaffen. Dem folgt ein Umsetzungsplan, bei der konkreten Umsetzung würde ich das Backend-first-Prinzip vorschlagen, zumindest die Datenbank sollte zuerst designt werden.

So wie ich mir das, aufgrund deiner bisherigen Beschreibungen, vorstelle, benötigst du im Groben lediglich Datenbanktabellen, die den Nutzer mitsamt Termindaten speichern (ein sinnvolles Design, welches Redundanzen vermeidet, ist hier förderlich). Mittels Anfragen an die Datenbank lassen sich freie/besetzte Termine ermitteln.

Im View reicht ein Formular aus, bei Bedarf kann man dies noch visuell aufstocken (mit Kalenderansicht etc.). Eingabefelder für eine Datumsauswahl gibt es vermutlich wie Sand am Meer, man muss die dazugehörigen Bibliotheken nur einbinden.

Bsp.: https://jqueryui.com/datepicker/

(Tage u.ä. lassen sich dabei auch bereits ausgrauen: https://stackoverflow.com/questions/27451544/jquery-datetimepicker-disable-time)

Beim Rendern des Formulars muss also ebenso im Hintergrund schon eine Anfrage an die Datenbank erfolgen, welche Termine belegt sind. Diese Liste muss mit gerendert werden (z.B. als JSON-Objekt in einem data-Attribut) oder vielleicht besser (je nachdem, wie ausgebucht du bist - wenn so gut wie jeden Tag, dann ja), bei Wechsel eines Monats / Jahres erfolgt ein AJAX-Request via JavaScript an den Server, geblockte Termine für den ausgewählten Zeitraum zu liefern. Via JavaScript erfolgt nach Eintreffen der Daten vom Server auch die Aktualisierung der Oberfläche (ausgrauen der Tage usw.).

Das Speichern nach Versand des Formulars gestaltet sich auch wieder ziemlich simpel, die Daten müssen nur validiert werden (Stichwort: SQL Injection vermeiden), anschließend folgen wieder SQL-Anfragen an die Datenbank, die neuen Einträge einzufügen.

HTML, CSS, PHP, Javascript (jQuery) und du solltest dich mit SQL (MySQL oder sqlite) auskennen.

HTML, CSS und Javascript...und vielleicht SQL :)