Projekt: Raumverwaltung #1
Hi,
über die Winterferien verfolge ich für den Informatik unterricht ein neues Projekt. Und werde darüber hier im Blog berichten.
Näheres zum Projekt im Anhang.
Geplant ist übrigens nicht alles neu zu Programmieren, sondern eher aus bestehenden, etwas neues zu machen. Deshalb wer anregungen hat, was man als Grundlage nutzen könnte, immer her mit den tips…
cu an other time
on an other place
der bagalutenGregor
Projekt: Raumverwaltung
Author : Christopher-Daniel Gregorczyk
Fach : Datenverarbeitung
Klasse : BOS 10
Lehrer : Herr xxxxx
Anwendungsziel:
- Eine Datenbankgestützte Raumverwaltung, für einen Schulbetrieb mit Mehreren Standorten!
- Es soll die Möglichkeit bestehen über ein Kalendermodul die gepflegten Räume zu Buchen, diese Buchungen müssen Freigegeben werden.
- Die Verwaltung der Daten soll über eine Ausgeprägte Zugriffsstruktur, mit unterschiedlichen Rollen geschehen.
Module:
- Raumkatalog (m)
- Raumbuchung (m)
- Kalender (m)
- ToDo (k)
- Reminder (o)
- Userverwaltung (m)
- Ausbaustuffe max (k)
(m) muss Kreterien (k) kann kreterien (o) optionale kreterien
Eingesetzte Technik:
- PHP 5
- MySQL 5
Datenbank Tabellen:
- Raum
- RaumNr int – primary key AUTO_INCREMENT
- Raumkurzbezeichnung Text
- Standort int – foreign key
- Ausstattungsart int – foreign key
- Raumgröße int
- Sitzplätze Longtext
- Standort
- Standort int – primary key AUTO_INCREMENT
- Beschreibung Longtext
- Ausstattungsart
- AusstattungsartID int – primary key AUTO_INCREMENT
- Ausstattungsart text
- Beschreibung longtext
- Kalender
- KalenderNr int – primary key AUTO_INCREMENT
- Datum von timestamp
- Datum bis timestamp
- User int – foreign key
- Zweck Text
- RaumNr int – foreign key
- RaumInfo longtext
- AenderungsDatum timestamp
- Reserviert bool
- User
- UserID int – primary key
- UserAlias text
- UserPass
- Gruppen
- GruppenID int – primary key AUTO_INCREMENT
- Beschreibung text
- GruppenZugehoerigkeit
- GZID int – primary key AUTO_INCREMENT
- UID int – foreign key
- GID int – foreign key
Nutzer Rollen:
- Admin
- Darf alles, kann alles …
- SuperUser A
- Schulleitung
- Raumbuchungen freigeben
- Freigaben zurückziehen
- Zurückgewiesene Freigaben der Abt.Leiter dennoch Freigeben
- Freigaben der Abt.Leiter zurückweisen
- Räume Ändern
- Räume Anzeigen
- Räume Buchen
- Eigene Buchungen zurückziehen
- Kalender Anzeigen
- Reminder
- Schulleitung
- SuperUser B
- Abteilungsleitung
- Raumbuchungen der Abteilung freigeben
- Freigaben zurückziehen
- Räume der Abteilung Ändern
- Räume Anzeigen
- Räume Buchen
- Eigene Buchungen zurückziehen
- Kalender Anzeigen
- Reminder
- Abteilungsleitung
- User
- Lehrer
- Schulbüro
- Räume Anzeigen
- Räume Buchen
- Eigene Buchungen zurückziehen
- Kalender Anzeigen
- Reminder
- Hausmeister
-
- Kalender Anzeigen
- ToDo Liste Abrufen
- EMail Reminder
-
- Gast
- Schüler
- Interessierte
- Kalender Anzeigen
Moin moin,
ich empfehle Dir für Autorisierung (Rollen), Datenbankzugriff und Trennung von Benutzungsschnittstelle, Modell und Anwendungslogik (MVC pattern) das Zend Framework: http://framework.zend.com
Für GUI im Browser ist ExtJS ein hervorragendes Framework (http://www.extjs.com). Frei, so lange man es nicht kommerziell verwendet. Einfach mal bißchen rumschnuppern auf deren Seite – damit kann man sehr tolle Oberflächen zaubern.
Als Kalender könnte der Google Kalender hinhalten – als IFrame oder so. Da ist dann natürlich die Zugriffssteuerung nicht umsetzbar. Sicherlich gibt es auch eine API, mit der man auf den Kalender zugreifen kann. Das ist natürlich datenschutztechnisch sehr bedenklich, aber zur Illustration reicht es vollkommen.
Raumkatalog und -buchung sind sehr spezielle Dinge, die solltest Du dann per Hand programmieren.
In das Zend Framework und ExtJS muss man sich sehr lange reinlesen, dafür ist es anschließend um so effizienter in der Handhabung.
Just my 2 cents,
David
Hi Danke für die Tipps da werde ich mich dann Morgen mal genauer Umschauen 😉
cu an other time
on an other place
der bagalutenGregor
Ich habe gerade durch Zufall entdeckt, dass ExtJS auch einen Kalender anbietet, den man nach Belieben anpassen könnte: http://dev.sencha.com/deploy/dev/examples/calendar/index.html