All Projects → palmerabollo → egov

palmerabollo / egov

Licence: AGPL-3.0 license
eGov España - API abierto de acceso a datos púbicos

Programming Languages

typescript
32286 projects
python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to egov

Contribute To This Project
This project is waiting for your contribution. If you have never contributed code on GitHub before, this is the project to get you started.
Stars: ✭ 501 (+2285.71%)
Mutual labels:  community, help-wanted
Boxbilling
BoxBilling - Open source billing and client management software
Stars: ✭ 372 (+1671.43%)
Mutual labels:  community, help-wanted
cia
Citizen Intelligence Agency, open-source intelligence (OSINT) project
Stars: ✭ 79 (+276.19%)
Mutual labels:  open-data, help-wanted
Decidim
The participatory democracy framework. A generator and multiple gems made with Ruby on Rails
Stars: ✭ 894 (+4157.14%)
Mutual labels:  community, open-data
osm-extracts
Each day, OSM Extracts by Interline mirrors the entire OpenStreetMap planet and creates city and region sized extracts
Stars: ✭ 34 (+61.9%)
Mutual labels:  open-data
berlin-open-source-portal
Showcase of Open Source Software that is built, maintained and/or funded by Berlin state governmental agencies
Stars: ✭ 21 (+0%)
Mutual labels:  open-data
opentek
If it is about Open Source, it is on Opentek.
Stars: ✭ 74 (+252.38%)
Mutual labels:  community
Decoders-Community
This repository is for absolute beginners by making some small changes they can learn how to make a pull request and they can become a part of the #DecodersCommunity 🖤
Stars: ✭ 25 (+19.05%)
Mutual labels:  community
Project-jade
Welcome to our community 🎉 Join us!!
Stars: ✭ 14 (-33.33%)
Mutual labels:  community
devopsish.com
DevOps, Cloud Native, Hybrid Cloud, Open Source, industry news, culture, and the ‘ish between.
Stars: ✭ 33 (+57.14%)
Mutual labels:  community
Linkify
A site that lets you include all your links in a single-page website with easy customizations. It gives you your own URL to share with anyone you want on the internet.
Stars: ✭ 29 (+38.1%)
Mutual labels:  community
CityScoreToolkit
Open-source version of Boston's CityScore performance dashboard
Stars: ✭ 42 (+100%)
Mutual labels:  open-data
git-rdm
A research data management plugin for the Git version control system.
Stars: ✭ 34 (+61.9%)
Mutual labels:  open-data
WhiteCore-Dev
WhiteCoreSim - Software to create your own virtual world
Stars: ✭ 23 (+9.52%)
Mutual labels:  help-wanted
building-data-genome-project-2
Whole building non-residential hourly energy meter data from the Great Energy Predictor III competition
Stars: ✭ 112 (+433.33%)
Mutual labels:  open-data
friendly-plans
Supporting system of behavioral therapy of people with autism. Check starter kit:
Stars: ✭ 24 (+14.29%)
Mutual labels:  help-wanted
gdgpisa.github.io
Public website on github-pages for GDG Pisa 🌎🇮🇹💻
Stars: ✭ 14 (-33.33%)
Mutual labels:  community
community
Berty Planning, Management & Coordination threads
Stars: ✭ 39 (+85.71%)
Mutual labels:  community
corejam
A scaffolding for building progressive GraphQL powered jamstack applications.
Stars: ✭ 24 (+14.29%)
Mutual labels:  help-wanted
wbstats
wbstats: An R package for searching and downloading data from the World Bank API
Stars: ✭ 106 (+404.76%)
Mutual labels:  open-data

eGov España - API de acceso a datos púbicos

Build Status

¿Te entra la risa floja cuando oyes hablar de transformación digital? ¿Ya no crees en promesas de datos abiertos? ¿Crees que está feo dilapidar dinero público en "portalitos"? Estás en el sitio adecuado.

El plan es construir APIs decentes que consulten fuentes de datos públicas (por ejemplo, páginas web) para poder utilizar los servicios de la administración de forma programática.

Prueba a consultar algunos ejemplos en una demo real:

Faltan muchos servicios por incluir y no voy a poder hacerlo solo. ¡Colabora!

Organización del proyecto

El proyecto se divide en varios paquetes:

  • packages/egov-api-server: Servidor que expone un API GraphQL para acceder a los datos públicos.
  • packages/egov-data-providers: Contiene los servicios de consulta que extraen datos de fuentes públicas. El egov-api-server utiliza este paquete.
  • packages/egov-examples: Ejemplos de uso programático de los servicios de consulta.

egov-api-server

Servidor HTTP que expone un API GraphQL para acceder a datos públicos reales (probar demo). Está desarrollado en Node.js (TypeScript) con Apollo GraphQL y es la forma más sencilla de acceder a los datos.

Example API UI

Puedes consultar el esquema de datos. He empezado con datos de localizaciones geográficas y de servicios de telecomunicaciones disponibles en la zona (antenas, canales de televisión digital, redes disponibles).

Instalación local

Sólo necesitas Node.js 10+. Debes inicializar el proyecto después de clonarlo por primera vez:

git clone [email protected]:palmerabollo/egov.git
cd egov
npm install

Y ejecutarlo:

npm run start:api-server

En http://localhost:4000 tendrás la interfaz web de acceso al API GraphQL para ejecutar tus consultas. Si te apetece cacharrear, hay más detalles sobre el proceso de desarrollo en la guía para colaboradores.

Nota: algunas administraciones tienen servidores inseguros, afectados por vulnerabilidades (CVE-2009-3555) desde hace más de una década. Esto impide el soporte de Node.js >16 / OpenSSL 3.x. Hay que investigar si se puede ignorar con la variable SSL_OP_LEGACY_SERVER_CONNECT.

egov-data-providers

Incluye la implementación de los proveedores de datos: servicios de consulta que extraen datos de fuentes públicas. Algunos servicios consultan datos cuando se solicitan (online) y otros utilizan datos locales (offline).

Crear un nuevo servicio es muy sencillo. Actualmente están desarrollados los siguientes. Echa un vistazo y propón nuevas ideas en las issues o envía tu pull request con nuevos servicios. Es muy fácil.

Servicio Clase Origen de los datos Online
Búsqueda de poblaciones y códigos postales
Categoría: General
PostalCodeService geonames.org
(local file)
Localización de antenas de telefonía móvil
Categoría: Telco
AntennaService geoportal.minetur.gob.es
(api)
Comprobación de cobertura 4G a 800MHz
Categoría: Telco
NetworkService www.llega800.es
(api)
Señales de televisión por ubicación geográfica
Categoría: Telco
DigitalTelevisionService www.televisiondigital.gob.es
(html)
Radares de tráfico
Categoría: Tráfico
TrafficRadarService www.dgt.es
(html, pdf)
Información de vehículos
Categoría: Tráfico
TrafficVehicleService www.dgt.es
(html, pdf)

egov-examples

Ejemplos de uso programático de los servicios de consulta disponibles en egov-data-providers.

import * as egov from '@egov/data-providers';

let service = new egov.AntennaService();
let antennas = await service.findAntennas(41.73, -5.32);

console.table(antennas, ['code', 'latitude', 'longitude']);

// output
// ┌─────────┬───────────────────────────────────┬───────────┬───────────┐
// │ (index) │               code                │ latitude  │ longitude │
// ├─────────┼───────────────────────────────────┼───────────┼───────────┤
// │    0    │ 'VODAFONE ESPAÑA, S.A. - 144588'  │ 41.471472 │ -4.989911 │
// │    1    │ 'VODAFONE ESPAÑA, S.A. - 144589'  │ 41.479806 │ -5.048222 │
// │    2    │ 'ORANGE ESPAGNE, SAU - CYLR2147A' │ 41.471472 │ -4.989911 │
// │    3    │ 'ORANGE ESPAGNE, SAU - CYLR2223B' │ 41.479806 │ -5.048222 │
// └─────────┴───────────────────────────────────┴───────────┴───────────┘

Incubator

Adaptadores. Soporte de múltiples lenguajes de programación

El código de eGov está desarrollado en Node.js (TypeScript). Quienes quieran contribuir con nuevos proveedores de datos en otros lenguaje de programación, tienen la posibilidad de que se ejecuten como procesos independientes que expongan un interfaz HTTP. Estos procesos adaptadores pueden obtener los datos, procesarlos y ofrecerlos a eGov a través de ese interfaz HTTP.

Hay una prueba de concepto para obtener los radares de tráfico con un proceso Python que hace scraping de los datos de radares de la DGT. Este proceso se está ejecutando como una función serverless en AWS Lambda.

data-provider --(http)--> adapter --(http scrape)--> datasource

¿Por qué serverless? Porque es la manera de hacer el proyecto económicamente sostenible, sin tener que pedir dinero por ahora.

LICENSE

Copyright 2019 - Guido García (guido.garcia AT protonmail DOT com)

Licensed under the GNU Affero General Public License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.

Third parties

Some information about postal codes is provided by geonames under a Creative Commons Attribution 4.0 License.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].