/SME-PratoAberto-API

API da aplicação PratoAberto

Primary LanguagePythonGNU General Public License v3.0GPL-3.0

Maintainability

Pátio Digital

“Recurso público retorna ao público”.

Nós somos o pátio digital, uma iniciativa da Secretaria Municipal de Educação de São Paulo que, por meio do fortalecimento da transparência, da participação social e do desenvolvimento de novas tecnologias, aproxima diferentes grupos da sociedade civil por um objetivo maior: a melhoria da educação na cidade de São Paulo.

Prato Aberto

"Prato Aberto – Comida Boa Não Tem Segredo".

API do Prato Aberto

A API serve dados sobre as escolas e as refeições das escolas da rede pública da cidade de São Paulo.

Conteúdo

  1. Sobre o prato aberto
  2. Comunicação
  3. Roadmap de tecnologia
  4. Como contribuir
  5. Instalação

Sobre o prato aberto

Projetada para funcionar em computadores e dispositivos móveis como tablets e celulares. A ferramenta permite a consulta dos cardápios por dia e por escola, com visualização no mapa. É a primeira vez que os cardápios são divulgados por unidade escolar. Além de facilitar a consulta dos cardápios,a plataforma permite a avaliação da qualidade das refeições e prevê interação com usuários via Facebook e Telegram, por meio de um assistente virtual, o Robô Edu.

Nossos outros repositórios

  1. Robô Edu
  2. API
  3. Editor

Comunicação

Canal de comunicação Objetivos
Issues do Github - Sugestão de novas funcionalidades
- Reportar bugs
- Discussões técnicas
Telegram - Comunicar novidades sobre os projetos
- Movimentar a comunidade
- Falar tópicos que não demandem discussões profundas

Qualquer outro grupo de discussão não é reconhecido oficialmente.

Roadmap de tecnologia

Passos iniciais

  • Melhorar a qualidade de código
  • Iniciar a escrita de testes unitários
  • Configurar Docker
  • Iniciar escrita de testes funcionais
  • Melhorar documentação de maneira enxuta
  • CI com jenkins

Como contribuir

Contribuições são super bem vindas! Se você tem vontade de construir o prato aberto conosco, veja o nosso guia de contribuição onde explicamos detalhadamente como trabalhamos e de que formas você pode nos ajudar a alcançar nossos objetivos. Lembrando que todos devem seguir nosso código de conduta.

Instalação

Instale os requisitos através do requirements.txt e configure uma variável de ambiente chamada API_MONGO_URI com o apontamento para a base.

pip install -r requirements.txt
export API_MONGO_URI=localhost:27017
FLASK_APP=api.py flask run

Installe MongoDb Versão mínima 3.6:

Windows Mac

Após instalação:

mongod --fork --logpath <arquivo_para_logs (exemplo:/var/log/mongod.log)>
mongorestore -d pratoaberto -c cardapios ./cardapios.bson 
mongorestore -d pratoaberto -c escolas ./escolas.bson 

Endpoints

/escolas

Lista escolas da rede publica.

Argumentos de query string:

nome:   string - opcional
        Permite a filtragem da lista de escolas pelo nome

Retorno:

[
    {
        "_id": 91065,
        "nome": "EMEI ELIS REGINA - (TERCEI.)",
        "endereco": "R. ERNESTO MANOGRASSO, 340",
        "bairro": "CID. SÃO MATEUS",
        "lat": -23.611117,
        "lon": -46.479426
    },
    ...
]

/escola/int:id_escola

Lista detalhes de uma determina escola pelo seu identificador (código Escola Online - EOL)

Parametros:

id_escola:    int

Retorno:

{
    "nome": "EMEI ELIS REGINA - (TERCEI.)",
    "tipo_unidade": "EMEI",
    "tipo_atendimento": "TERCEIRIZADA",
    "agrupamento": 4,
    "endereco": "R. ERNESTO MANOGRASSO, 340",
    "bairro": "CID. SÃO MATEUS",
    "telefone": "(11)29199960",
    "lat": -23.611117,
    "lon": -46.479426,
    "idades": [
        "Z - UNIDADES SEM FAIXA"
    ]
}

/cardapios ou /cardapios/

Lista os cardapios disponíveis

Parametros:

data:   string - opcional
        Formato: YYYYMMDD

Argumentos de query string:

agrupamento:        string - opcional
tipo_atendimento:   string - opcional
tipo_unidade:       string - opcional
idade:              string - opcional
data_inicial:       string - opcional
data_final:         string - opcional

Retorno:

[
    {
        "data": "20170922",
        "idade": "1 A 3 MESES",
        "tipo_atendimento": "DIRETA",
        "tipo_unidade": "CEI_CONVENIADO",
        "agrupamento": "4",
        "cardapio": {
            "Jantar": [
                "FORMULA LÁCTEA"
            ],
            "Desjejum": [
                "FORMULA LACTEA"
            ],
            "Almoco": [
                "FORMULA LACTEA"
            ],
            "Lanche": [
                "FORMULA LÁCTEA"
            ]
        },
    },
    ...
]

/editor/cardapios

Permite a listagem e a alteração dos dados de cardápio.

Para acesso, é necessário enviar uma chave através do cabeçalho HTTP key. A chave deve ser a mesma que a variável de ambiente API_KEY

Argumentos de query string:

status:             string - opcional
agrupamento:        string - opcional
tipo_atendimento:   string - opcional
tipo_unidade:       string - opcional
idade:              string - opcional
data_inicial:       string - opcional
data_final:         string - opcional

Retorno:

[
    {
        "data": "20170922",
        "idade": "1 A 3 MESES",
        "tipo_atendimento": "DIRETA",
        "tipo_unidade": "CEI_CONVENIADO",
        "agrupamento": "4",
        "cardapio": {
            "Jantar": [
                "FORMULA LÁCTEA"
            ],
            "Desjejum": [
                "FORMULA LACTEA"
            ],
            "Almoco": [
                "FORMULA LACTEA"
            ],
            "Lanche": [
                "FORMULA LÁCTEA"
            ]
        },
    },
    ...
]

/status

Verifica se a API está online.

Retorno:

{
    "status": "ativo"
}

Baseado no Readme do i-educar