Das System soll Mitarbeiter in einer unter Umständen großen Organistation bei der Verwaltung ihrer Termine
unterstützung.
Die Mindestanforderungen:
- Einheitlicher Client unter MacOS X, Windows, Linux
- Unterstützung des CalDAV-Protokolls
- Online- und Offline-Modus
- gleiche oder bessere Kalender-Funktionalität als bisherige Clients:
- Termine anlegen, verschieben, verlängern, löschen
- individuelle Kalender und Gruppenkalender (mit kombinierten Sichten)
- Tages-, Wochen-, Monatssicht
- private Termine
- beliebige Gruppenzugehörigkeit
- Wiederholungstermine
- Suchmöglichkeiten
- Zeitzonen und Zeitumstellungen berücksichtigen
- Import und Export ausgewählter Termine im ICS-Format
- Unterstützung für Todo-Listen
Nicht-Funktionale Anforderungen
- hoher Anspruch an Datenschutz und -sicherheit
- Private Termine dürfen nicht öffentlich zugänglich sein
- Das Überschreiben von Änderungen anderer Benutzer soll unter allen umständen vermieden werden
- hoher Anspruch an Benutzbarkeit/Ergonomie (wie z.B. beim Google-Kalender)
- ansprechendes Layout auch bei vielen parallelen Terminen
- Zugehörigkeit der Termine klar erkenntlich
- Drag+Drop für Terminverschiebungen
- ...
Technische Randbedingungen:
- Implementierung in Java 5 oder höher
- GUI mit Swing (bzw. nach Absprache mit dem Tutor)
- keine Webanwendung
- Client/Server-Anwendung: es muss ein frei verfügbarer CalDAV-Server verwendet werden
- relationale Datenbank muss benutzt werden für die lokale Persistenz (Offline-Modus):
- Persistenz-Frameworks erlaubt (z.B. JPA), aber dann deklarative Verwendung von SQL-ähnlichen Abfragen verlangt
- keine große Datenbank (wie Postgres, MySQL) auf dem Clienten, stattdessen eingebettete z.B. SQLite, Apache Derby
- Platformunabhängigkeit: Die Anwendung muss auf WinXP 32bit,
Vista 32bit und 64bit, Linux 32bit und 64bit, MacOS 32bit und
64bit (aber nur auf den Macs, für welche Apple ein JDK 1.6 zur
Verfügung stellt) und Solaris 64bit laufen.
- Eventuell benutzte Fremdbibliotheken muessen für den Einsatz
in Forschung und Lehre keine Beschränkungen (Geld, Benutzung,
...) aufweisen.
- Quelltext in Deutsch oder Englisch dokumentiert. Auch die
Variablen-, Klassen-namen können in einer der beiden Sprachen
sein. Alle anderen Dokumente in Deutsch.
Seite erstellt von Raimar Falke
- $Id$