Files
html5-restaurant/README.md
2016-03-30 15:31:36 +02:00

4.5 KiB

Restaurant Reiskorn

Installation

  1. Herunterladen des aktuellen Release.
  2. Starten der main.js im Hauptprojekt-Ordner.
    • node path/to/main.js
    • Relative und absolute Pfade erlaubt
  3. Aufrufen der lokalen Node-Anwendung oder dem gehosteten Service

Login

Anmeldedaten finden sich in der data/users.json, die, falls Änderungen vorgenommen werden sollen, manuell vor dem Start der nodejs-Anwendung durchgeführt werden müssen.

Standard-Login-Daten

{
	"Richard Reis": {
		"pwd": "secret",
		"rights": [
			null,
			true,
			true,
			true
		]
	},
	"Ursula Ulstein": {
		"pwd": "ultimativ",
		"rights": [
			null,
			true,
			true,
			false
		]
	}
}

Funktionen

  • Unterschiedliche CRUD-Routinen für Reservierung und Speisekarte
  • Verwendung von Bootstrap mit minimalistischem, eigenen CSS
  • Einbindung einer eigenen Schriftart
  • Implementierung einer eigenen, komplexen Angular-Direktive zur Anzeige einer Google Map
  • Responsive Design für alle Bildschirmgrößen und nicht JS-Benutzer
  • Serverseitige Implementierung mit Node.js
  • Persistierung des Speiseplans und der Reservierungen nach Serverneustart
  • Login/Speicherung der Nutzer in externer Datei
  • Eigenen AngularJS-Service und Controller implementiert
  • Verwendung des AngularJS-Service $http
    • Name der Tagesreisempfehlung per Agular nachgeladen
  • Persönliche Formulierungen
    • Realitätsnahe Sprache

Dateistruktur

data

  • Daten zur Speicherung der
    • Reservierungen
    • Speisekarte
    • Benutzerliste
  • Mit jeweiligen Beispielwerten zum manuellen Einladen

modules

  • eigene nodejs-Module
  • entspricht im MVC-Modell einem Model
  • CRUD-Routinen
    • Reservierungen
    • Speisekarte
    • Benutzerliste

node_modules

  • von npm installierte Pakete

public

  • Client-Assets
    • CSS
    • Client-JS
    • Bilder
    • Bootstrap/AngularJS
  • werden über HTML nachgeladen

views

  • JADE-Views
  • HTML-Template-Engine

Requests

Min. Vers. Methode URI Parameter Beschreibung Benötige Rechte
0.1 GET / keine Zeigt die Startseite an keine
0.1 GET /login keine Zeigt die Loginseite an keine
0.1 POST /login username:
[Benutzername]
password:
[Passwort des Benutzers]
Loginversuch keine
0.1 POST /login targetLogout:
logout
Logout keine
0.1 GET /speisekarte keine Zeigt die Speisekarte an keine (Bearbeitungsfunktionen mit MENU)
0.1 POST /speisekarte nametag:
[f|d]-[Index in der Liste "food"/"drinks"]-new
name:
[Name des Gerichts]
desc:
[Beschreibung des Menüeintrags]
Hinzufügen eines Menüeintrags MENU
0.1 POST /speisekarte nametag:
[f|d]-[Index in der Liste "food"/"drinks"]-[Index in der Liste "items"]
name:
[Name des Gerichts]
desc:
[Beschreibung des Menüeintrags]
Aktualisieren der Informationen eines Eintrages MENU
0.1 POST /speisekarte nametag:
[f|d]-[Index in der Liste "food"/"drinks"]-[Index in der Liste "items"]-del
Löschen eines Eintages aus der Speisekarte MENU
0.1 GET /kontakt keine Zeigt die Kontaktseite an keine:
Reservierungsformular
RESERVATION:
Liste aller eingegangenen Reservierungen
1.0 GET /kontakt nametag:
[Index der Reservierung]
Öffnet das Fenster zum Bearbeiten eines Eintages RESERVATION
1.0 POST /kontakt nametag:
new
name:
[Name des Reservierenden]
desc:
[Kommentarfeld]
email:
[gülige E-Mail-Adresse]
person:
[positive, natürliche Zahl]
time:
^(([01][0-9]|2[0-4]):[0-5][0-9])$
date:
^(([0-2][0-9]|3[01]).(0[0-9]|1[012]).[0-9]{4})$
Hinzufügen einer Reservierung keine
1.0 POST /kontakt nametag:
[Index der Reservierung]
name:
[Name des Reservierenden]
desc:
[Kommentarfeld]
email:
[gülige E-Mail-Adresse]
person:
[positive, natürliche Zahl]
time:
^(([01][0-9]|2[0-4]):[0-5][0-9])$
date:
^(([0-2][0-9]|3[01]).(0[0-9]|1[012]).[0-9]{4})$
Aktualisieren der Informationen einer Reservierung RESERVATION
1.0 POST /kontakt nametag:
[Index der Reservierung]-del
Löschen einer Reservierung aus der Liste RESERVATION
1.1.1 GET /api/specialOffer.json keine JSON, der aktuell gültigen Angebote keine