This repository has been archived by the owner on May 28, 2023. It is now read-only.
-
-
Notifications
You must be signed in to change notification settings - Fork 18
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #66 from OpenDevUFCG/development
Reformulação do laguinho
- Loading branch information
Showing
36 changed files
with
490 additions
and
3,770 deletions.
There are no files selected for viewing
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
FLASK_APP=laguinho | ||
FLASK_RUN_PORT=8080 | ||
FLASK_ENV=development |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,32 @@ | ||
--- | ||
name: Reportar bug | ||
about: Reporte um bug e ajude-nos a melhorar | ||
labels: 'bug' | ||
|
||
--- | ||
|
||
**Descreva o bug** | ||
<!-- Uma descrição clara e concisa do que consiste o bug. --> | ||
|
||
**Reprodução do bug** | ||
<!-- Passos para reproduzir o comportamento indesejado: | ||
1. Vá para '...' | ||
2. Clique em '....' | ||
3. Role até '....' | ||
4. Veja o erro --> | ||
|
||
**Comportamento desejado** | ||
<!-- Uma descrição clara sobre como deveria ser o comportamento esperado. --> | ||
|
||
**Capturas de tela** | ||
<!-- Se aplicável, adicione capturas de tela para ajudar na descrição do problema. --> | ||
|
||
**Configuração do ambiente de desenvolvimento em que foi encontrado o bug:** | ||
<!-- Por exemplo: | ||
- SO: [e.g. Mac OS, Linux Mint, Ubuntu] | ||
- Navegador: [e.g. chrome, safari] | ||
- Software: [e.g. insomnia, postman] | ||
- Versão: [e.g. 22] --> | ||
|
||
**Contexto adicional** | ||
<!-- Adicione qualquer outro contexto ao problema reportado aqui. --> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,21 @@ | ||
--- | ||
name: Requisição de melhoria | ||
about: Peça uma melhoria para esse projeto | ||
labels: 'enhancement' | ||
|
||
--- | ||
|
||
**Descrição da melhoria:** | ||
<!-- Descreva a melhoria e suas características mais importantes. --> | ||
|
||
**Necessidade da melhoria:** | ||
<!-- Descreva o porquê da melhoria ser necessária. --> | ||
|
||
**Como ela pode ser implementada:** | ||
<!-- Dê ideias de como a melhoria pode ser implementada no projeto. --> | ||
|
||
**Imagens:** | ||
<!-- Se aplicável, adicione uma imagem que ajude no entendimento da melhoria. --> | ||
|
||
**Contexto adicional:** | ||
<!-- Adicione qualquer informação adicional que achar necessária. --> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
<!-- INSTRUÇÕES: --> | ||
|
||
<!-- 1. Seja descritivo no nome de sua PR. --> | ||
|
||
<!-- 2. Informe o número da issue a que sua PR se refere (usando #NUMERO_DA_ISSUE). --> | ||
|
||
<!-- 3. Nos conte mais sobre sua PR e o que você fez! (: --> | ||
|
||
<!-- 4. Garanta que sua contribuição esteja de acordo com as regras descritas nos links abaixo. --> | ||
|
||
- [X] Minha contribuição respeita o [código de conduta](../CODE_OF_CONDUCT.md) do repositório. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,4 +1,23 @@ | ||
node_modules/ | ||
build/ | ||
.DS_Store | ||
.env | ||
yarn-error.log | ||
*.pyc | ||
*.pyo | ||
env/ | ||
env* | ||
dist/ | ||
build/ | ||
*.egg | ||
*.egg-info/ | ||
_mailinglist | ||
.tox/ | ||
.cache/ | ||
.pytest_cache/ | ||
.idea/ | ||
docs/_build/ | ||
.vscode | ||
|
||
# Coverage reports | ||
htmlcov/ | ||
.coverage | ||
.coverage.* | ||
*,cover |
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,25 @@ | ||
# Changelog | ||
Todas as mudanças desse projeto serão documentadas nesse arquivo. | ||
|
||
O formato foi baseado em [Keep a Changelog](https://keepachangelog.com/pt-BR/1.0.0/), | ||
e esse projeto adere a [Semantic Versioning](https://semver.org/lang/pt-BR/spec/v2.0.0.html). | ||
|
||
## [Não publicado] | ||
|
||
## [2.0.0] - 24/10/2019 | ||
|
||
### Adicionado | ||
|
||
- API agora feita com `Python3`, utilizando `flask` e `pipenv`. | ||
- Endpoint `/datasets` para requisições GET, que vai retornar os datasets cadastrados. | ||
- Endpoint `/datasets` para requisições POST, para publicar um novo dataset. | ||
- Endpoint `/datasets/<nome>` para requisições GET, que vai retornar metadados a respeito de um dataset a partir do seu nome. | ||
- Esse arquivo de changelog para servir de exemplo para lançamentos futuros. | ||
|
||
### Modificado | ||
|
||
- Foi dado início à [reformulação do laguinho](https://github.com/OpenDevUFCG/laguinho-api/issues/31). | ||
|
||
### Removido | ||
|
||
- API feita em `node` (versão 1.0.0-legacy). |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,48 +1,51 @@ | ||
# Como contribuir? | ||
# Contribuindo para o Laguinho | ||
|
||
Aqui vai um tutorialzinho sobre como contribuir com o Laguinho API, qualquer dúvida que tiver pode criar issue ou chamar no [gitter](https://gitter.im/OpenDevUFCG/laguinho-api) ;) | ||
Contribuições sempre serão bem vindas, sejam pequenas ou grandes! | ||
|
||
## Código de Conduta | ||
|
||
Adotamos um [código de conduta](./CODE_OF_CONDUCT.md) que esperamos que todos sigam a participar do projeto. Leia para entender que ações toleramos e quais não antes de abrir qualquer issue ou pull request. | ||
|
||
## Estrutura do projeto | ||
|
||
A estrutura de arquivos do projeto se assemelha ao exemplo abaixo: | ||
|
||
``` | ||
/src | ||
/v1 | ||
/endpoint1 | ||
endpoint1-controller.js | ||
endpoint1-data.js | ||
[ talvez mais alguns arquivos ] | ||
/endpoint2 | ||
endpoint2-controller.js | ||
endpoint2-data.js | ||
[ talvez mais alguns arquivos ] | ||
/laguinho | ||
/models | ||
__init__.py | ||
metadata.py | ||
error_messages.py | ||
[ futuros outros arquivos de modelagem ] | ||
/routes | ||
__init__.py | ||
datasets.py | ||
[ futuros outros arquivos para rotas ] | ||
/errors | ||
__init__.py | ||
handlers.py | ||
[ futuros outros arquivos para gerenciamento de erros ] | ||
__init__.py | ||
``` | ||
|
||
Na pasta `/src` temos todo o código do projeto, dentro dele encontraremos subpastas que seguem a estrutura da URI, por exemplo, o endpoint `GET /v1/repositories` está definido na pasta `/src/v1/repositories` | ||
|
||
## Contribuindo com novos endpoints | ||
## Organização de Issues | ||
|
||
Para criar um novo endpoint, seguimos a receitinha abaixo: | ||
As issues são um espaço aberto para requisitar criação ou correção de funcionalidades da API. Também pode ser usada como um espaço de discussão sobre assuntos gerais do projeto. | ||
|
||
1. Procuramos a pasta da última versão da API, (Ex: se existir dentro do `/src` as pastas `/v1` e `/v2` escolhemos a `/v2`) | ||
1. Criamos nela uma nova pasta com o nome do endpoint a ser criado, por exemplo `/xerox-geolocalization` e dentro dela um controller com o padrão `[nome-endpoint]-controller.js` que vai ser o módulo que implementa e exporta a(s) nova(s) rota(s) | ||
1. Caso seja necessário um dataset para popular nosso(s) endpoint(s), criamos um `[nome-endpoint]-data.js` que vai ser responsável por conter os dados ou dados necessários para popular o(s) novo(s) endpoint(s) | ||
1. Importamos o router no módulo da versão da API (`/src/vX/index.js`, sendo X o número da versão) | ||
1. Adicionamos a documentação do(s) endpoint(s) no [docs](https://github.com/OpenDevUFCG/laguinho-api/blob/master/docs/README.md) baseados nos já existentes | ||
Veja sobre nossa [organização de Issues](https://github.com/OpenDevUFCG/laguinho-api/wiki/Organiza%C3%A7%C3%A3o-de-Issues)! | ||
|
||
Dica 1: Olhe a implementação e organização de endpoints existentes para entender melhor os padrões usados. | ||
## Propondo uma mudança | ||
|
||
Dica 2: Sinta-se livre para criar outros arquivos ou sub-diretórios caso julgue necessário (Seja pra modularizar melhor ou o que for). | ||
Caso deseje propor uma mudança, primeiro verifique se já não existe uma Issue sobre o que você deseja. Se não, [abra uma Issue](https://github.com/OpenDevUFCG/laguinho-api/issues/new) relacionada ao seu problema e espere a comunidade te responder. | ||
|
||
Dica 3: O endpoint pode ter sub-rotas (Ex: `/v1/repositories/contributors`) definidas no mesmo controller caso julgue desnecessário criar uma sub-pasta para isso. | ||
## Primeira contribuição | ||
|
||
## Contribuindo com endpoints existentes | ||
Caso tenha se interessado pela nossa comunidade, deseja contribuir para o nosso projeto, mas não sabe por onde começar, dê uma olhada em issues com a tag [`good first issue`](https://github.com/OpenDevUFCG/laguinho-api/labels/good%20first%20issue) que serão um bom ponto de partida. Também vale a pena olhar sobre Issues relacionadas a tecnologias que você já tem uma certa familiaridade. | ||
|
||
Como já foi dito anteriormente, a estrutura de arquivos do projeto é baseada na URI esperada do endpoint, nesse caso, se desejar contribuir para o endpoint `GET /v1/repositories` poderá facilmente encontrar o código do endpoint na pasta `/src/v1/repositories`, o endpoint estará definido num arquivo que segue o padrão `[nome-endpoint]-controller.js`. | ||
Se você decide fazer alguma mudança, e não existe uma Issue sobre, crie uma nova informando o que será feito e manifeste que você irá querer fazer. Caso exista a Issue, verifique nos comentários se já não existe alguém trabalhando nisso, e comente que você deseja fazer. | ||
|
||
## Sugerindo e/ou adicionando dados | ||
Não tenha medo de pedir por orientação ou ajuda, mas, acima de tudo, seja destemido e respeitoso. Você também pode participar de discussões para ajudar a comunidade a realizar boas escolhas! | ||
|
||
Caso você tenha um dataset interessante sobre a UFCG e queira compartilhar com a gente, sinta-se livre para criar uma issue falando sobre isso e até (caso desejar) fazer um PR [implementando um novo endpoint](#contribuindo-com-novos-endpoints) que sirva esses dados!!! | ||
## Enviando uma Pull Request | ||
|
||
Caso queira adicionar mais dados aos datasets existentes de algum endpoint, você poderá verificar na [documentação do endpoint](https://github.com/OpenDevUFCG/laguinho-api/blob/master/docs/README.md) se existe informação de como contribuir para esses dados, e caso não exista... cria uma issue, pfvr <3 | ||
Está pronto para submeter uma Pull Request? Primeiro dê uma olhada nesse [guia](https://github.com/OpenDevUFCG/laguinho-api/wiki/Submetendo-uma-Pull-Request)! |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,21 @@ | ||
FROM python:alpine | ||
|
||
EXPOSE 80 | ||
# set proper ENV to run app on docker | ||
ENV FLASK_RUN_HOST="0.0.0.0" | ||
ENV PIP_NO_CACHE_DIR="true" | ||
|
||
WORKDIR /opt | ||
|
||
# copy project files to /opt | ||
COPY . /opt/ | ||
|
||
# installs pipenv, and gcc to compile required cython and then purge it to save space. | ||
# this is needed to run on a single RUN to create only one container layer. | ||
RUN apk add --no-cache --virtual .build-deps gcc musl-dev \ | ||
&& pip install pipenv \ | ||
&& pipenv install waitress \ | ||
&& pipenv install --deploy --system \ | ||
&& apk del .build-deps | ||
|
||
ENTRYPOINT ["pipenv", "run", "waitress-serve", "--port=80", "--call", "laguinho:create_app"] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,19 @@ | ||
[[source]] | ||
name = "pypi" | ||
url = "https://pypi.org/simple" | ||
verify_ssl = true | ||
|
||
[dev-packages] | ||
python-dotenv = "*" | ||
pylint = "*" | ||
|
||
[packages] | ||
flask = "*" | ||
marshmallow = "*" | ||
|
||
[requires] | ||
python_version = "3" | ||
|
||
[scripts] | ||
lint = "pylint laguinho/" | ||
start = "flask run" |
Oops, something went wrong.