Benötigt wird eine Kalendersoftware(engine) incl. Grafik zur ntegration in eine Webseite.
Als Scriptsprache ist Python oder PHP zu verwenden für die Datenspeicherung wird eine Mysql-DB Verbindungbenötigt. Wochenansicht, Monatsansicht und Tagesansicht müssen auswählbar sein. Überschneidung von Einträgen
gleicher Art soll nicht ermöglicht werden. Farblich soll der Kalender über eine includierte CSS Datei angepasst werden können,
auch für das Layout wird CSS bevorzugt. Eine Saubere Trennung von Daten und Inhalt (Templates) muss gewährleistet sein.
Der Quellcode muss vollständig dokumentiert sein.
Funktionalitäten:
1. Login ( zu Testzwecken reicht es wenn in der Datenbank nur Username und ein Kennwort gespeichert wird)
2. Terminverwaltung:
Man Trägt einen Termin in die Datenbank ein, der User kann sehen welche Termine noch frei sind.
Sprich man kann eine Vorgegebene Arbeitszeit definieren. bspw. 8--18 Uhr.
Der Termin ist dann geblockt bis er vom Administrator frei gegeben, bzw. abgelehnt wird.
Man muss einen Zeitraum für jeden Termin eintragen können (Vordefiniert in der Datenbank, Config).
Der User erhält eine Übersicht. Tages (mit den Terminen die noch frei sind, Wochen und Monatsübersicht zur schnellen Navigation beim Eintragen von Terminen).
Eine Überschneidung von Terminen gleicher Art ist nicht möglich.
Frames dürfen nicht verwendet werden, auch keine Iframes.
Scriptsprachenvorgabe: PHP oder Python (neuste stabile Version möglich)
Datenbankvorgabe: Mysql4 aufwärts, gerne in Verbindung mit mysqli unter Php 5...
Keine prozeduale Programmierung, Einsatz von Klassen erwünscht/gefordert.
Bandwurmprogrammierer nicht erwünscht.
1. Die Wochenenden und Feiertage müssen markiert werden und es darf dort keine Möglichkeit geben etwas einzutragen.
2. Die vergangenen Tage, Wochen und Monate dürfen NICHT angezeigt werden, sodass der Benutzer nichts sehen und eintragen kann
AUSNAHME: ADMIN
3. Der Admin muss den Namen FREI eintragen können, d.h. er muss auch Namen eintragen können die nicht als User angemeldet sind,da auch solche Termine vereinbaren können (telefonisch).
4. Der normale Benutzer soll folgendens sehen wenn er einen Tag, Woche oder Monat aufruft:
4.1. Bei seinen eigenen "bestätigten" Termin soll sein Name dort stehen
4.2. Bei einem unbestätigten Termin soll "Reserviert und sein Name" dort stehen
4.3. Bei den anderen Terminen soll dort nur "vergeben" stehen
5. Der Admin soll folgendes sehen wenn er einen Tag, Woch oder Monat aufruft:
5.1. Bei einem bestätigtem Termin soll dort nur der Name stehen
5.2. Bei einem unbestätigtem Termin soll dort "Reserviert und der Name" stehen
Ansonsten muss er immer die Möglichkeit haben Termin zu löschen oder zu ändern.
6. Ein User soll Termine zu definierten Usern vereinbaren können.
Bsp. der Mitarbeiter 1 hat mehrere Teamkollegen und soll für diese Termine vereinbaren können.
Wir möchten es so umsetzen, das der Administrator einen User wählen
kann dem er dann andere User zuordnet. Beim Auswählen des Termines kann dann der User auswählen ob er den Termin für sich oder die verbundenen User machen will. Dadurch muss es auch möglich sein die Termine der Verbundenen Benutzer mit einer Filtermöglichkeit (Nur Mitarbeiter2+3 oder Mitarbeiter4+5)im Kalender zu sehen.
7. Wir benötigen die Möglichkeit zu definieren dass mehrere Termine
gleichzeitig stattfinden können. Dieses soll über eine Einstellung in der Datenbank erfolgen. Steht da bspw eine 2 drin dann können zwei Termine gleichzeitig erstellt werden (zum gleichen Zeitpunkt), bevor der Zeitpunkt wie gehabt geblockt wird. Quasi Doppelbelegung. Dieser Doppelbelegung müsste man einen Namen geben können (Rein Optisch), damit man später die einzelnen Termine unterscheiden kann. Beispiel. Kunde Hubert hat einen Termin beim Berater Klaus um 15 Uhr, Kunde B hat einen Termin beim Berater Franz um 15 Uhr. Die Standarddefinition mehrerer Termine soll global erfolgen, wobei man später noch pro User die Definition ändern kann.
Bspw. dem Kunden Hubert wird der Berater Klaus fest zugewiesen, diese
einschränkung soll aber jederzeit aufgehoben werden können. Eine
Dynamische Möglichkeit wäre natürlich optimal. Sprich man kann
Berater anlegen und dementsprechend viele Termine gleichzeitig
zulassen, und diese Berater auch einem User zuweisen.
8. Man soll blocken können wie viele Termine ein User in den
Kalender eintragen kann. Hier ist es auch wichtig , das man einen
Termin als Abgeschlossen definieren kann. Sprich User XYZ kann bspw.
5 Termine nehmen, erst wenn ein Termin abgeschlossen ist bekommt er
wieder freigabe auf einen neuen Termin. (Hier soll es eingeschränkt
werden, das ein user über einen längeren Zeitraum feste Termine
Archiv für EDV, Telekommunikation