# Collaborative Hub Training Authentication API

Collaborative Hub Training Authentication API server-side machinery

## Overview

This is the server application that manages the authentication of peers in a collaborative training.

This API allows moderators of collaborative trainings to create and manage experiences which includes the allow listing
of hugging face users. This API also delivers passes to Hugging Face users who would like to join a collaborative training

More details in this [issue](https://github.com/learning-at-home/hivemind/issues/253)

API with fastapi & postgres database

## Developer guide

### Requirements for local development

-   Python 3.8
-   Docker (& docker-compose)

### Getting Started

Create an `.env` file in the `backend` folder. You can use the template in the `.env.template` file as inspiration.

Build & launch services with this command

```Bash
docker-compose up --build
```

Once your service is running, you can consult the documentation by copy-pasting this address in your search engine: `http://0.0.0.0:8000/docs#/`

### Test
Run tests

```Bash
docker-compose up -d --build
docker exec collaborative-training-auth_server_1 pytest -v
```


