# Arquiteturas

ibagem...

Tanto o `Competify server` quanto o `Competition server` compartilham inicialmente o mesmo modelo.


## Competify

### Client

A geração do cliente competify necessita de:

* Url da API do competify

### Server

É responsável por:

* Criar e gerenciar competições (Tanto o front quanto o back)
* Gerenciamento de hosts (usuários responsáveis pela competição)
* Proxy para *Competition servers*
* Autenticação (OAuth 2) - 3 tipos de usuários: SysAdmin, Host e Competifier

## Competition

### Client

A geração do cliente da competição necessita de:

* Variáveis de tematização
* Url da API da competição
* Token de identificação da competição
* Token do servidor de autenticação (por default é o próprio `Competify Server`)

O Client obterá dinamicamente os paths para assets que poderão ser personalizados
 pelo host da competição, já o restante dos assets serão servidos estaticamente.

### Server

É responsável por:

* Aplicar a competição
* Gerenciamento de competidores (usuários que participarão da competição)