API Gestor é uma API que permite a comunicação com um Banco de Dados educacionais sobre a educação brasileira.

Overview

API Gestor

O projeto API Gestor é uma API que permite a comunicação de outras aplicações com os dados educacionais armazenados em um banco de dados, coletado e modelado pela equipe, que contém diversos dados abertos sobre a educação brasileira. Especificamente, a API permite a obtenção de dados e informações pertinentes para figura de gestores escolares.

Justificativa

Baseado em um modelo client-server, o projeto API Gestor busca reduzir o acoplamento entre os clientes e servidor(es), permitindo que diferentes clientes possam acessar os dados educacionais presentes no banco de dados, produzido pela equipe, através de uma API unificada e especializada para obtenção de dados pertinentes a gestores escolares.

Descrição

Em sua totalidade, o projeto busca desenvolver ferramentas que auxiliem na gestão escolar a nível do Ensino Fundamental (anos iniciais e finais) através de dados abertos sobre a educação brasileira. Especificamente, o projeto tem como objetivo permitir que gestores acessem indícies educacionais e informações da sua escola através de ferramentes de visualização de dados, permitindo que esses dados facilitem a tomada de decisões para melhoria da gestão escolar.

Projeto(s) Relacionado(s)

  • FrontEnd Gestor: ferramenta de visualização de dados para gestores escolares, que utiliza a API Gestor.

Equipe 💼

  • Arthur Fernandes Scanoni Github Profile Badge
    • Product owner, desenvolvedor back-end.
  • Átila Rodrigues de Almeida Github Badge
    • Scrum Master, desenvolvedor front-end.
  • Luan Lucas Dias Accioly Github Badge
    • Desenvolvedor front-end.
  • Mario Leandro Batista da Silva Github Badge
    • Desenvolvedor front-end.
  • João Pedro Freire de Andrade Github Badge
    • Desenvolvedor back-end.
  • Moésio Wenceslau da Silva Filho Github Badge
    • Desenvolvedor back-end.
  • Luiz Miguel França de Lima Github Badge
    • Desenvolvedor back-end.
  • Lucas Lins Pereira da Silva Github Badge
    • Desenvolvedor back-end.

Esse projeto foi desenvolvido durante a disciplina Engenharia de Software do curso Bacharelado em Ciência da Computação — DC/UFRPE (2021.1), sob orientação do professor Marcelo Marinho.

Comments
  • feat: add response entities

    feat: add response entities

    Essa é uma entidade abstrata que representa uma resposta para as solicitações feitas a API. A ideia é seguir algumas das especificações do JSON:API 1.0 acerca da estrutura de JSONs que serão consumidos por diferentes APIs.

    A estrutura básica do JSON é a seguinte:

    • No top level devem existir ao menos um dos elementos data, meta e error. Especificamente, se existe o elemento error não deve existir o elemento data. Para permitir esse comportamento, a classe AbstractResponse permite que subclasses sobrescrevam métodos que tratam a adição de erros e/ou meta-dados.
    • O elemento data pode ser um único recurso ou uma coleção de recursos. Independente do caso, todo recurso deve possuir ao menos um id e um type. Abaixo um exemplo seguindo as especificações onde a API retornou um recurso utilizado pela home para exibir dados da educação brasileira a nível nacional.
    {
      "data": {
        "type": "eduData",
        "id": 1,
        "attributes": {
          "ied": {
            "meanCategory": "Docente que tem entre 25 e 300 alunos e atua em um ou dois turnos em uma única escola e etapa.",
            "mean": 2.88
          },
          "ird": {
            "meanCategory": "Média-baixa",
            "mean": 2.9615
          },
          "tdi": {
            "mean": 16.2
          },
          "icg": {
            "meanCategory": null,
            "mean": null
          },
          "afd": {
            "meanCategory": "Docentes com licenciatura em área diferente daquela que leciona, ou com bacharelado nas disciplinas da base curricular comum e complementação pedagógica concluída em área diferente daquela que leciona.",
            "mean": 2.062
          },
          "country": "Brasil"
        }
      }
    }
    

    A classe AbstractResponse facilita a geração das respostas nesse formato e permite que subclasses escolham especificamente o tipo de resposta através do uso de generics.

    opened by moesio-f 8
  • feat: add entity AFD

    feat: add entity AFD

    Essa é um exemplo de Pull Request (PR) com solicitação de revisão e comentários.

    Nesse branch, foi implementada a entidade AFD utilizando as anotações do JPA (Java Persistence API). Para utilizada o JPA, foi adicionada uma nova dependência no pom.xml (spring-boot-starter-data-jpa)

    opened by moesio-f 5
  • feat: Workflows, Dockerfile and compose

    feat: Workflows, Dockerfile and compose

    Adição das automações usando Github Actions. Por conta das mudanças realizadas no pom.xml, só vamos conseguir rodar a aplicação se for possível a conexão com o banco de dados (no application-dev.properties existe a configuração padrão do url e do usuário que deve ser utilizado pelo Spring).

    Realizei vários testes em outro fork e funcionou como esperado. Quando integrarmos esses códigos, para cada PR que abrirmos serão executados os testes unitários (ainda precisam ser produzidos). Ao realizar o merge na main, passando um número de versão no commit de merge, uma imagem Docker da aplicação é criada e um release aqui no Github também é gerado.

    opened by moesio-f 4
  • HomeController: dataCountry

    HomeController: dataCountry

    Podemos liberar a primeira versão pro front já ter como testar e possivelmente encontrar alguns erros também. Atualmente, já temos o controlador dos dados nacionais pronto (faltando apenas os dados do Ideb, que serão utilizados quando tivermos o BD pronto).

    Já foram adicionas as correções do CORS (#35) e outras correções menores. O controlador já consegue lidar com dados faltantes (colocamos os valores para null).

    O quê vocês acham? @Arthursca @mrjohnnus @LuizMFL @lucas-lins

    opened by moesio-f 3
  • Feat: estrutura das classes e pacotes

    Feat: estrutura das classes e pacotes

    Organizei (sem implementações complexas) as classes necessárias para o funcionamento do sistema (seguindo o documento de análise e projeto).

    src
    └───main
        └─java
        |  └─edu/apigestor
        |    └─control
        |      └─controllers
        |      └─services
        |           └─imp
        |      └─mappers
        |    └─data
        |      └─repositories
        |    └─entity
        |      └─domain
        |      └─response
        |
        └─resources
    

    entity-package

    data-package

    control-package

    opened by moesio-f 2
  • Home: country, region and school list

    Home: country, region and school list

    Segunda versão com novas funcionalidades. Todas funcionalidades da home estão implementadas:

    • Indicadores educacionais a nível nacional;
    • Indicadores educacionais a nível regional;
    • Lista de escolas com nome similar;
    opened by moesio-f 1
  • feat: add new method to AvailableYears

    feat: add new method to AvailableYears

    Adiciona um método utilitário para checar se existe Ideb para um dado ano. Podemos checar antes de fazer chamadas ao BD se existe Ideb para aquele ano, facilitando a construção das respostas :)

    opened by moesio-f 1
  • feat: constructors domain

    feat: constructors domain

    Adiciona construtores às classes de domínio e aplica o estilo Java do Google (indentação, ordenamento, etc). Não foram realizadas mudanças estruturais nas classes.

    opened by moesio-f 1
  • test: Home Controller

    test: Home Controller

    Salvando esse PR como rascunho para discutirmos com calma depois. Aqui tem uma pequena implementação do controlador para os dados da home (dados gerais sobre educação brasileira e lista de escolas dado um nome de escola).

    Se já tiverem tudo configurado localmente, é possível acessar http://localhost:8080/home/country/brazil, onde é retornado o seguinte JSON:

    {
      "data": {
        "type": "eduData",
        "id": 2,
        "attributes": {
          "ied": {
            "meanCategory": "Docente que tem entre 25 e 300 alunos e atua em um ou dois turnos em uma única escola e etapa.",
            "mean": 2.88
          },
          "ird": {
            "meanCategory": "Média-baixa",
            "mean": 2.9615
          },
          "tdi": {
            "mean": 16.2
          },
          "icg": {
            "meanCategory": null,
            "mean": null
          },
          "afd": {
            "meanCategory": "Docentes com licenciatura em área diferente daquela que leciona, ou com bacharelado nas disciplinas da base curricular comum e complementação pedagógica concluída em área diferente daquela que leciona.",
            "mean": 2.062
          },
          "country": "Brasil"
        }
      }
    }
    

    Caso seja solicitado dados de um outro país (e.g., http://localhost:8080/home/country/japan) é retornado um JSON informando um erro (o código HTTP da resposta é 400, indicando um BAD REQUEST por parte dos clientes):

    {
      "error": {
        "id": "3",
        "status": "400",
        "title": "Country 'japan' not found"
      }
    }
    
    opened by moesio-f 1
Releases(v0.0.8)
Owner
null
A Java API wrapper for the pastemyst api

Pastemyst.java What is pastemyst.java? pastemyst.java is a pastemyst API Wrapper, written in Java. The library is in early development, and all contri

YeffyCodeGit 8 Sep 28, 2022
Dio-api-1 - Repositório com os artefatos da mentoria de API

dio-api-1 Repositório com os artefatos da mentoria de API Reference Documentation For further reference, please consider the following sections: Offic

Ricardo Lucas Chagas 5 Feb 25, 2022
Leading REST API framework for Java

Restlet Framework The leading REST API framework for Java Thanks to Restlet Framework's powerful routing and filtering capabilities, unified client an

Restlet Framework 633 Dec 18, 2022
Simple JSP Servlets REST api.

Simple JSP Servlets REST api.

MisterFunny01 3 May 9, 2021
A simple API wrapper for discords.com (alias botsfordiscord.com) written in Java.

Discords.com / BotsForDiscord.com Java Library A simple API wrapper for discords.com (alias botsfordiscord.com) written in Java 8. Installation This w

Dorian 3 Aug 6, 2021
绕过安卓hidden api 限制

背景 非 SDK API 名单(谷歌官方) 随着每个 Android 版本的发布,会有更多非 SDK 接口受到限制。 我们知道这些限制会影响您的发布工作流,同时我们希望确保您拥有相关工具来检测非 SDK 接口的使用情况、有机会向我们提供反馈,并且有时间根据相应新政策做出规划和调整。 为最大程度地降低

null 67 Nov 29, 2022
Disable the 1.8x Click delay with this sleek API.

Tecknix Client Click Delay API A simple solution to remove Minecraft 1.8's click delay timer. Installation: Tecknix Click Delay API requires a Bukkit

Tecknix Client 2 Nov 16, 2021
API de Clientes - Java+Quarkus

com.clientes.api Project This project uses Quarkus, the Supersonic Subatomic Java Framework. If you want to learn more about Quarkus, please visit its

null 5 Oct 12, 2021
API RESTful Challenge

developer-challenge API RESTful Challenge API feita com java e hospedada no Heroku #Adicionar país Metodo: [POST] https://challenge-rest-api.herokuapp

Albertino Augusto Marrengule 2 Sep 7, 2022
An easy to use api to interact with many versions of minecraft in a version independent environment.

Glass - API An easy to use api to interact with many versions of minecraft in a version independent environment. Setup Instructions should be relative

null 2 Jan 25, 2022
API - Aprendizagem por Projetos Integrados

API - Aprendizagem por Projetos Integrados Participantes Nome Função GitHub Everton Ricardo Wanderley da Rocha Product Owner Gustavo Konflanz Mezzomo

null 5 Apr 15, 2022
Back end da plataforma KdMeuBichinho que surgiu com a missão de ajudar as pessoas que querem encontrar seu melhor amigo 🐶 🐱 🐰 que foi perdido ou encontrar alguém que está doando.

?? Kd meu bichinho? A plataforna ainda se encontra em fase de construção ✔️ ?? ?? Sobre o projeto KdMeuBichinho? - O projeto surgiu com a missão de aj

Mateus Araújo 134 Dec 2, 2022
Twiscord es una simple aplicación que permite conectar Twitter y Discord para poder publicar cosas en ambas plataformas a la vez.

Twiscord Twiscord es una simple aplicación que permite conectar Twitter y Discord para poder publicar en ambas plataformas a la vez dedicado a streame

null 2 Jan 10, 2022
Utilizando do Java swing e do banco de dados MySQL, criei esse projeto com intuito de práticar a conexão do Java com MySQL e as janelas do Java swing

MeusCursos.com Meu primeiro projeto sozinho Utilizando do Java swing e do banco de dados MySQL, criei esse projeto com intuito de práticar a conexão d

João Vitor Ferreira Peixoto 1 Apr 2, 2022
DIO - desafio de desenvolver uma API Rest de consulta de cidades do Brasil com dados comparativos.

Fora utilizado o mesmo readme do criador do projeto Professor Responsavel UTILIZE ALGUMA DISTRIBUIÇÃO LINUX PARA EVITAR DORES DE CABEÇA Cities API Req

Sidney Roberto 1 Oct 22, 2021
Clean-architecture-guide - Guia sobre Clean Architecture criado a partir dos meus estudos sobre o tema.

Clean Architecture Guide Arquitetura são as práticas e fundamentos de como organizamos um sistema. Tem relação e como os componentes estão relacionado

Jean Jacques Nascimento Barros 3 Apr 23, 2022
Crud sobre el mundo del cine, y listado de películas que un usuario puede tener en su casa.

FilmHome ?? ??️ Crud sobre el mundo del cine, y listado para gestionar las películas que un usuario puede tener como colección en su casa. ??️ VIDEO Y

Adrian Egea Hermoso 5 May 16, 2022
Curso que apresenta conceitos introdutórios sobre como podemos trabalhar com debugging na linguagem Java.

Debugging Java Curso que apresenta conceitos introdutórios sobre como podemos trabalhar com debugging na linguagem Java. Curso este ministrado por mim

Camila Cavalcante 414 Jan 4, 2023
Uma API REST com funcionalidades de CRUD que simula um sistema de leilão 💰.

Leilão API REST Essa aplicação foi feita para ajudar aqueles que ainda estão com alguma dúvida, sobre o funcionamento de um API REST em Spring. Já que

Fábio Henrique 4 Feb 23, 2022