79 lines
1.4 KiB
Markdown
79 lines
1.4 KiB
Markdown
# Kompetenzinventar Backend
|
|
|
|
## Entwicklung
|
|
|
|
### Abhängigkeiten
|
|
|
|
- Python 3.8
|
|
- [Pipenv](https://github.com/pypa/pipenv)
|
|
|
|
### Entwicklungsumgebung aufbauen und starten
|
|
|
|
```
|
|
cp env.dev .env
|
|
pipenv install --dev
|
|
pipenv shell
|
|
export FLASK_APP=app.py
|
|
flask db upgrade
|
|
flask seed
|
|
flask run
|
|
```
|
|
|
|
http://localhost:5000/
|
|
|
|
|
|
### Tests ausführen
|
|
|
|
```
|
|
python -m unittest discover ki
|
|
```
|
|
|
|
|
|
### Testbenutzer
|
|
|
|
Für ein Login ohne LDAP werden die Benutzer aus der [`auth.yml`](./data/auth.yml) benutzt.
|
|
|
|
|
|
### Test-Requests
|
|
|
|
Beispiele brauchen curl und jq.
|
|
|
|
```
|
|
curl -s \
|
|
-D "/dev/stderr" \
|
|
http://localhost:5000/skills?search=ph | jq
|
|
```
|
|
|
|
```
|
|
curl -s \
|
|
-D "/dev/stderr" \
|
|
http://localhost:5000/languages?search=fr | jq
|
|
```
|
|
|
|
```
|
|
curl -s \
|
|
-D "/dev/stderr" \
|
|
-X POST \
|
|
-H "Content-Type: application/json" \
|
|
-d '{"username": "peter", "password": "geheim"}' \
|
|
http://localhost:5000/users/login | jq
|
|
```
|
|
|
|
```
|
|
curl -s \
|
|
-D "/dev/stderr" \
|
|
-H "Authorization: Bearer 22e6c5fc-8a5a-440e-b1f4-018deb9fd24e" \
|
|
http://localhost:5000/users/1/profile
|
|
```
|
|
|
|
### Produktionsumgebung
|
|
|
|
Für die Produktionsumgebung wird [waitress](https://docs.pylonsproject.org/projects/waitress/en/latest/) benutzt.
|
|
|
|
[`run_prod.py`](./run_prod.py) führt die DB Migrationen aus und startet den Server.
|
|
|
|
### Quellen
|
|
|
|
* [`./data/iso_639_1.csv`](https://de.wikipedia.org/wiki/Liste_der_ISO-639-1-Codes)
|
|
* [`./data/imgs/flags`](https://github.com/gosquared/flags)
|