Skip to content
Snippets Groups Projects
README.md 1.62 KiB
Newer Older
Daniel Palomar's avatar
Daniel Palomar committed
# SomOffice Demo App

Daniel Palomar's avatar
Daniel Palomar committed
Features:

* Login with Keycloak

Daniel Palomar's avatar
Daniel Palomar committed
## Setup

1. Install pyenv:
```bash

curl https://pyenv.run | bash

```
2. Install Python 3.8.6:
```bash

pyenv install 3.8.6

```
3. Create virtualenv
```bash

pyenv virtualenv 3.8.6 somoffice_demo

```
4. Activate env
```bash

pyenv activate somoffice_demo

```
5. Install requirements.txt
```bash

pyenv exec pip install -r requirements.txt

```
6. Make migrations
```bash

pyenv exec python manage.py makemigrations

```
7. Execute migrations
```bash

pyenv exec python manage.py migrate

```

## Run AppServer
Daniel Palomar's avatar
Daniel Palomar committed
In one shell start a Keycloak server:

```bash

docker run -p 8080:8080 -e KEYCLOAK_ADMIN=admin -e KEYCLOAK_ADMIN_PASSWORD=admin quay.io/keycloak/keycloak:18.0.1 start-dev

```
Daniel Palomar's avatar
Daniel Palomar committed
```bash

pyenv exec python manage.py runserver 0.0.0.0:8000

```

## Usage
Daniel Palomar's avatar
Daniel Palomar committed
### Create user
```sh

curl -X POST \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json;charset=utf-8' \
  --data-raw '
  {
    "username": "demo5",
    "password": "demo",
    "locale": "ca"
  }' \
  localhost:8000/api/admin/import_user/

```
Daniel Palomar's avatar
Daniel Palomar committed
### Login

curl -X GET \
  localhost:8000/

```bash

curl -X POST \
  -H 'Accept: application/json' \
  -H 'X-CSRFToken: aazWzC7fUt4rrYxRY6ZYgZZDmBUlQX8DvlM5Xo7psQHtZbOEfp0hLUdl0r8hjC09' \
  -H 'Cookie: csrftoken=aazWzC7fUt4rrYxRY6ZYgZZDmBUlQX8DvlM5Xo7psQHtZbOEfp0hLUdl0r8hjC09' \
  -H 'Content-Type: application/json;charset=utf-8' \
  --data-raw '{"username":"demo","password":"demo"}' \
  localhost:8000/api/auth/login/

```
### Profile
```bash

curl -X GET \
  -H 'Accept: application/json' \
  -H 'Cookie: sessionid=<SESSION ID>' \
  localhost:8000/api/profile/

```