/varal-aguas-back

Desafio de Front-end que tem como objetivo avaliar o conhecimento sobre desenvolvimento Web, além da qualidade do código em termos de escrita, padronização e performance na utilização de recursos e estruturas de dados.

Primary LanguagePHPBSD 3-Clause "New" or "Revised" LicenseBSD-3-Clause

Instruções para Configuração

Requisitos
  1. PostgreSQL
  2. PHP 7 ou superior
  3. Composer
  4. Driver do PostgreSQL para PHP

Docker

1 - Na pasta raiz do projeto, abra o terminal e execute os comandos abaixo para inicializar os containers:

docker-compose up -d
docker-compose exec php composer install
docker-compose exec php ./yii migrate --interactive=0
docker-compose exec php chmod 777 -R web/

Local

Resolvendo as dependências

1 - Na pasta raiz do projeto, abra o terminal e execute o comando abaixo para realizar o download das dependências:

composer install
Criação da Base de Dados, e conexão
  1. Crie uma base de dados no ProstgreSQL, e dê o nome de 'varal_aguas'

  2. Abra o arquivo 'config/db.php' e insira o 'host', 'username', e 'password' do seu banco

  3. Na pasta raiz do projeto abra o terminal, e execute o seguinte comando:

    ./yii migrate

    Haverá um pedido de confimação 'Apply the above migration? (yes|no) [no]:', basta de digitar yes.

    Caso ocorra algum erro, certifique-se que as dependências foram instaladas, e se os dados da conexão com o banco estão corretos.

Iniciando a API

Após ter realizado os passos anteriores, basta abrir o terminal na pasta raiz do projeto, e executar o seguinte comando:

./yii serve

Obs: A API será iniciada em modo dev, na porta 8080, apenas para testes.

Estrutura de dados da API

GET /participante responseBody

[
  {
    "id": int,
    "nome": "string",
    "local_foto": "string",
    "nome_foto": "string",
    "data_foto": "date string ISO-8601",
    "foto": "string file name in server",
    "termos": bool
  }
]

POST /participante requestBody

{
  "nome": "string",
  "local_foto": "string",
  "nome_foto": "string",
  "data_foto": "date string ISO-8601",
  "img_base64": "base64 string - non dataURL",
  "termos": bool
}