997ee60d95ad0d1ff7f466e7ff14fd62070ce06c
Restaurant Reiskorn
Installation
- Herunterladen des aktuellen Release.
- Starten der
main.jsim Hauptprojekt-Ordner.node path/to/main.js- Relative und absolute Pfade erlaubt
- 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"]-newname: [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:newname: [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 |
Description
Languages
JavaScript
51.7%
Pug
43.5%
CSS
4.8%