Compare commits
2 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
bbe1fb59df | ||
|
|
486b7b6ae9 |
49
README.md
49
README.md
@@ -8,6 +8,51 @@
|
|||||||
- Relative und absolute Pfade erlaubt
|
- Relative und absolute Pfade erlaubt
|
||||||
3. Aufrufen [der lokalen Node-Anwendung](http://localhost:3000) oder [dem gehosteten Service](http://restaurant.sebse.de)
|
3. Aufrufen [der lokalen Node-Anwendung](http://localhost:3000) oder [dem gehosteten Service](http://restaurant.sebse.de)
|
||||||
|
|
||||||
|
## 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
|
||||||
|
|
||||||
|
```js
|
||||||
|
{
|
||||||
|
"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
|
## Dateistruktur
|
||||||
|
|
||||||
### data
|
### data
|
||||||
@@ -50,6 +95,9 @@
|
|||||||
| Min. Vers. | Methode | URI | Parameter | Beschreibung | Benötige Rechte |
|
| Min. Vers. | Methode | URI | Parameter | Beschreibung | Benötige Rechte |
|
||||||
|--------|--------|--------|--------|--------|--------|
|
|--------|--------|--------|--------|--------|--------|
|
||||||
| 0.1 | GET | / | keine | Zeigt die Startseite an | keine |
|
| 0.1 | GET | / | keine | Zeigt die Startseite an | keine |
|
||||||
|
| 0.1 | GET | /login | keine | Zeigt die Loginseite an | keine |
|
||||||
|
| 0.1 | POST | /login | username:<br> `[Benutzername]`<br>password:<br> `[Passwort des Benutzers]` | Loginversuch | keine |
|
||||||
|
| 0.1 | POST | /login | targetLogout:<br> `logout` | Logout | keine |
|
||||||
| 0.1 | GET | /speisekarte | keine | Zeigt die Speisekarte an | keine (Bearbeitungsfunktionen mit MENU) |
|
| 0.1 | GET | /speisekarte | keine | Zeigt die Speisekarte an | keine (Bearbeitungsfunktionen mit MENU) |
|
||||||
| 0.1 | POST | /speisekarte | nametag:<br> `[f\|d]-[Index in der Liste "food"/"drinks"]-new`<br>name:<br> `[Name des Gerichts]`<br>desc:<br> `[Beschreibung des Menüeintrags]` | Hinzufügen eines Menüeintrags | MENU |
|
| 0.1 | POST | /speisekarte | nametag:<br> `[f\|d]-[Index in der Liste "food"/"drinks"]-new`<br>name:<br> `[Name des Gerichts]`<br>desc:<br> `[Beschreibung des Menüeintrags]` | Hinzufügen eines Menüeintrags | MENU |
|
||||||
| 0.1 | POST | /speisekarte | nametag:<br> `[f\|d]-[Index in der Liste "food"/"drinks"]-[Index in der Liste "items"]`<br>name:<br> `[Name des Gerichts]`<br>desc:<br> `[Beschreibung des Menüeintrags]` | Aktualisieren der Informationen eines Eintrages | MENU |
|
| 0.1 | POST | /speisekarte | nametag:<br> `[f\|d]-[Index in der Liste "food"/"drinks"]-[Index in der Liste "items"]`<br>name:<br> `[Name des Gerichts]`<br>desc:<br> `[Beschreibung des Menüeintrags]` | Aktualisieren der Informationen eines Eintrages | MENU |
|
||||||
@@ -59,3 +107,4 @@
|
|||||||
| 1.0 | POST | /kontakt | nametag:<br> `new`<br>name:<br> `[Name des Reservierenden]`<br>desc:<br> `[Kommentarfeld]`<br>email:<br> `[gülige E-Mail-Adresse]`<br>person:<br> `[positive, natürliche Zahl]`<br>time:<br> `^(([01][0-9]\|2[0-4]):[0-5][0-9])$`<br>date:<br> `^(([0-2][0-9]\|3[01]).(0[0-9]\|1[012]).[0-9]{4})$` | Hinzufügen einer Reservierung | keine |
|
| 1.0 | POST | /kontakt | nametag:<br> `new`<br>name:<br> `[Name des Reservierenden]`<br>desc:<br> `[Kommentarfeld]`<br>email:<br> `[gülige E-Mail-Adresse]`<br>person:<br> `[positive, natürliche Zahl]`<br>time:<br> `^(([01][0-9]\|2[0-4]):[0-5][0-9])$`<br>date:<br> `^(([0-2][0-9]\|3[01]).(0[0-9]\|1[012]).[0-9]{4})$` | Hinzufügen einer Reservierung | keine |
|
||||||
| 1.0 | POST | /kontakt | nametag:<br> `[Index der Reservierung]`<br>name:<br> `[Name des Reservierenden]`<br>desc:<br> `[Kommentarfeld]`<br>email:<br> `[gülige E-Mail-Adresse]`<br>person:<br> `[positive, natürliche Zahl]`<br>time:<br> `^(([01][0-9]\|2[0-4]):[0-5][0-9])$`<br>date:<br> `^(([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:<br> `[Index der Reservierung]`<br>name:<br> `[Name des Reservierenden]`<br>desc:<br> `[Kommentarfeld]`<br>email:<br> `[gülige E-Mail-Adresse]`<br>person:<br> `[positive, natürliche Zahl]`<br>time:<br> `^(([01][0-9]\|2[0-4]):[0-5][0-9])$`<br>date:<br> `^(([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:<br> `[Index der Reservierung]-del` | Löschen einer Reservierung aus der Liste | RESERVATION |
|
| 1.0 | POST | /kontakt | nametag:<br> `[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 |
|
||||||
Reference in New Issue
Block a user