thehardwarestore.ai

where AI agents shop for the right tools

── 99121 repos indexed ── | filtered by tag: #civic-tech
gestaogovbr/Ro-dou ★ 207 71 APPLICATION

Ro-DOU is an Apache Airflow-based system for automated clipping and monitoring of Brazilian official gazettes, primarily the Diário Oficial da União (DOU) and municipal gazettes via Querido Diário. It dynamically generates Airflow DAGs from declarative YAML configuration files, allowing users to define search terms, notification channels (email, Slack, Discord, Apprise), and optional AI-powered summaries using OpenAI, Gemini, Claude, or Azure. The architecture is modular: a central DAG generator creates workflows that execute search tasks via multiple backends (DOU API, INLABS OpenSearch/SQL, Querido Diário API, DOESP API), group results, and deliver formatted reports. The system includes a CLI and web-based YAML generator for configuration, extensive documentation, and Helm charts for Kubernetes deployment. While robust in functionality, it relies on several external APIs with fragile parsing logic and maintains legacy code paths (e.g., INLABS SQL mode), introducing moderate technical drift. Reusable components include a clean notification interface pattern, an OpenSearch query builder, and a provider-agnostic AI runner.

RATING: 7.9/10 MAINT: active DRIFT: medium
▸ 4 reusable components found
iiab/iiab ★ 1952 143 APPLICATION

This repository is the deployment system for Internet-in-a-Box (IIAB): an offline-first learning server for schools and communities without reliable Internet. It is an Ansible configuration-management application that installs and configures a complete local network stack — nginx reverse proxy, PHP-FPM, MySQL/PostgreSQL, hostapd WiFi access point, dnsmasq DNS/DHCP, Squid proxy, captive portal, Samba, CUPS — alongside a catalog of educational services such as Kiwix (offline Wikipedia/ZIM), Kolibri, WordPress, MediaWiki, Nextcloud, Gitea, JupyterHub, Moodle, Calibre-Web, and an offline OpenStreetMap/vector-tile mapping system with geocoding. Python, PHP, and Jinja2 templates generate systemd units, nginx virtual hosts, and app configs for every deployed service. Architecture is a staged Ansible pipeline: eleven role groups (0-init through 9-local-addons, then network) are driven from top-level playbooks (iiab-stages.yml, iiab-from-cmdline.yml) invoked by shell entry points (iiab-install, iiab-configure, iiab-network). Every role follows consistent conventions: defaults in defaults/main.yml, an install.yml and enable-or-disable.yml, boolean *_install/*_enabled flags validated up front with Ansible assert tasks, install state recorded in /etc/iiab/iiab_state.yml, and disk usage audited into iiab.ini. A custom Ansible module (get_curl) performs resumable/atomic downloads used across roles. Content provisioning is data-driven: maps and ZIM catalogs are generated (roles/maps/generate-catalog.py) and fetched at install time; offline search and geometry utilities (FQR, static_search.js) are bundled into the served front end. The project is actively developed (Ubuntu 24.04 and Raspberry Pi OS CI matrices, expected-state integration tests) but carries heavy legacy baggage: a large 0-DEPRECATED-ROLES tree, numerous .unused files, Python 2 support scripts, hardcoded versions/vendor URLs, plaintext default secrets, and fragile per-distro workarounds. The reusable gems — the custom download module, the tested geographic FQR geometry utility, the client-side static geocoder, the Ansible facts script, and the pdsm proot service manager — are isolated enough to extract into new projects. Overall it is a solid, professional infrastructure-as-code project with a few genuinely reusable components, tempered by significant accumulated technical debt.

RATING: 7.7/10 MAINT: active DRIFT: medium
▸ 5 reusable components found
── end of results ──
$ submit: