Projeto desenvolvido como parte do desafio Celero - back-end.
A API tem por objetivo reunir dados sobre os atletas e resultados das Olimpíadas, e foi desenvolvida tendo como base os dados do dataset "120 years of Olympic history: athletes and results".
O diagrama entidade-relacionamento pode ser encontrado aqui.
A API foi inteiramente desenvolvida usando Python 3.7, com o framework Django REST Framework 3.12.4. O banco de dados escolhido foi o PostgreSQL 13.3.
Primeiramente, após clonar o repositório, é preciso criar o ambiente virtual e instalar as dependências do projeto Python:
python -m venv venv
pip install -r requirements.txt
Após isso, na raiz do projeto Django, crie um novo arquivo chamado local_settings.py e faça as configurações do banco de dados nesse arquivo criado. É possível encontrar um arquivo de exemplo em desafiocelero/local_settings_sample.py. A SECRET_KEY necessária para o projeto pode ser tanto adicionada nesse arquivo quanto nas variáveis de ambiente!
Então, efetue a migração dos models e das importações necessárias:
python manage.py migrate
Para iniciar o projeto, utilize o seguinte comando:
python manage.py runserver
Após iniciar o projeto, é possível encontrar uma documentação detalhada de todas as rotas da API na seguinte URL:
Caso deseje, é possível fazer a importação do dataset "120 years of Olympic history: athletes and results" utilizando o seguinte comando:
python manage.py extract_athletes file_path
Sendo "file_path" substituído pelo caminho do CSV no seu computador.
O projeto possui configurações para criar o container do banco de dados! Caso deseje utilizá-lo, na raiz do projeto crie um arquivo chamado .env e adicione as variáveis necessárias. É possível encontrar um arquivo de exemplo em .env_example. Após a criação desse arquivo, rode o seguinte comando:
docker-compose up -d db
Após criação do container, lembre de configurar o banco de dados criado ao projeto, como explicado no passo "Instruções de execução"!