markuswet / ey-mann-wo-ist-mein-autoverleih Goto Github PK
View Code? Open in Web Editor NEWFHTW SINT Projekt SS2018
License: MIT License
FHTW SINT Projekt SS2018
License: MIT License
Tests für alle Webservices schreiben (auch für Frontend, @web-weber?) und in Travis CI durchlaufen lassen bei Build.
id=999999999999999999999999999999999999
id=-1
id=nope
id=<nur Leerzeichen>
@MarkusWET
Flask Testing Guide
Flaskr @ GitHub
/api/car/<car_id>/rent
car_id
id=999999999999999999999999999999999999
id=-1
id=nope
id=<nur Leerzeichen>
start
start=morgen
start=<nur Leerzeichen>
end
end=gestern
end=<nur Leerzeichen>
/api/car/<car_id>/return
car_id
id=999999999999999999999999999999999999
id=-1
id=nope
id=<nur Leerzeichen>
/api/car/<car_id>/gps
car_id
id=999999999999999999999999999999999999
id=-1
id=nope
id=<nur Leerzeichen>
latitude
und longitude
longitude=999999999999999999999999999999999999
latitude=nope
latitude=<nur Leerzeichen>
/api/car/available
start
start=morgen
start=<nur Leerzeichen>
end
end=gestern
end=<nur Leerzeichen>
/api/car/all
/api/user/<user_id>/rented
user_id
id=999999999999999999999999999999999999
id=-1
id=nope
id=<nur Leerzeichen>
/api/car/<car_id>/img
car_id
id=999999999999999999999999999999999999
id=-1
id=nope
id=<nur Leerzeichen>
Route Conventions: singular nomen and verbs.
GET /api/token
- login mittels basic auth
GET /api/user/{id}/cars
- liefert alle ausgeborgten autos zurück
PUT /api/car/available
- liefert alle verfügbaren Autos zurück
GET /api/car/all
- liefert alle Autos zurück
PUT /api/car/{id}/rent
- Auto ausborgen/buchen
PUT /api/car/{id}/return
- Auto retonieren
200
- Everything OK
400
- Bad Request (e.g. string instead of int etc.)
401
- Not Authorized
404
- Requested resource not found
409
- Good request but could not be fulfilled (e.g. requested resource not available)
500
- Server Error
https://de.wikipedia.org/wiki/HTTP-Statuscode
TBD:
It would be nice to also have corresponding pictures for each car (and with three cars, the effort is manageable right now).
Da wir bei dem AWS-Account von @ddrexler ziemlich sicher sind, dass es sich nicht um einen Student-Account mit Gratiskontingent handelt.
Tests für alle Webservices schreiben (auch für Frontend, @web-weber?) und in Travis CI durchlaufen lassen bei Build.
id=999999999999999999999999999999999999
id=-1
id=nope
id=<nur Leerzeichen>
CrossConvert()
ConvertToEur()
Implementing basic GMaps functionality
Adding coordinates to GMaps, logic via javaScript (data delivered via array)
Wie gehen wir mit dem Ausfall eines WS um? Fail Safely!
TODO:
Wir sollten die Findings aus der Abgabe dann auch noch in die Repo-README reingeben.
TODO: Define TODOs
TODO: login page html+css
TODO: app page html+css
TODO: generel requests/user-feedback JS logic
TODO: login JS logic
TODO: dashboard JS logic
TODO: rent car JS logic
TODO: return car JS logic
TODO: add rent counter in nav function
TODO: change Max Maier to Hi!
TODO: Adapt cars output - change to cards
TODO: add time period selection in view
TODO: add time period selection in rent process
TODO: add google maps functionality
TODO: testing
static/styles.css für die WS1 Homepage/README.md wird nach einem Deploy auf AWS nicht gefunden. Lokal ist sie verfügbar, wird gefunden und angewandt.
Liegt daran, dass der gesamte /static/ Ordner in AWS nicht gefunden wurde!
We need HTTPS support on all our environments.
Task change: According to our lecturer no HTTP implementation is required, instead a theoretical explanation is recommended.
Optional: Register a domain to use the AWS certificate manager (recommended setup)
Get Certificate from e.g. Let's Encrypt
Enable HTTPS:
Das Setting des Autoverleihs war FH-Vorgabe und ist - selbst als weiterzuführendes Übungsprojekt - eher wenig praktisch. Wir sollten also nach Projektabgabe mal über einen möglichen besseren Nutzen nachdenken und schauen, wie wir mit den Lessons Learned ein vernünftiges, verwendbares Projekt aufziehen, von dem wir auch langfristig lernen und es langfristig weiterverwenden können.
Die ganzen Methoden sollten noch schön dokumentiert werden. Siehe https://hairycode.org/2014/01/18/api-testing-with-flask-post/:
@app.route('/someendpoint/' methods=['POST'])
def some_endpoint():
"""API endpoint for submitting data to
:return: status code 405 - invalid JSON or invalid request type
:return: status code 400 - unsupported Content-Type or invalid publisher
:return: status code 201 - successful submission
"""
do_stuff(stuff=something)
GET /
POST /api/users
GET /api/users/<user_id>
GET /api/token
PUT /api/car/<car_id>/rent
PUT /api/car/<car_id>/return
PUT /api/car/<car_id>/gps
PUT /api/car/available
GET /api/car/all
GET /api/user/<user_id>/rented
GET /api/car/<car_id>/img
Vorher noch ein bisschen Code aufräumen und dann wird das Projekt mal gepublished 😄
Das hat auch den Vorteil, dass wir Code Insight Tools wie zB Codacy oder Coveralls nutzen können (die sind sonst meist für Private Repos kostenpflichtig)
Wie mit @web-weber besprochen, werden jetzt bei /available
und /all
leere JSON zurückgegeben, wenn keine Autos verfügbar sind:
HTTP/1.0 200 OK
Content-Type: application/json
Access-Control-Allow-Origin: *
Content-Length: 20
Server: Werkzeug/0.12.2 Python/3.6.4
Date: Sun, 15 Apr 2018 08:45:49 GMT
{
"rentals": ""
}
Ziel ist es, ein Error Handling umzusetzen, bei dem zuzüglich zu den eigentlichen Rückgabe-Werten auch eine Message mitgegeben wird, die Fehler-/Validierungsmeldungen o.ä. enthält.
Weitere interessante Links:
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.