finds.dev← search

// the find

okfn-brasil/serenata-de-amor

★ 4,594 · Python · MIT · updated Jan 2024

🕵 Artificial Intelligence for social control of public administration | **This repository does not receive frequent updates. Check out the README**

Serenata de Amor is a Brazilian civic-tech project that uses ML classifiers to automatically flag suspicious expense reimbursements by members of Congress. Rosie is the AI component that runs the classifiers; Jarbas is the Django web app that exposes the findings for public browsing. It's aimed at developers interested in government accountability tooling, data science applied to public datasets, or civic tech in general.

The classifier architecture is clean — each suspicion type (meal price outliers, impossible travel speeds, irregular companies) is a separate scikit-learn classifier, which makes adding new checks straightforward. The project has real-world impact: Rosie has directly triggered congressional inquiries. The test suite is solid for the core classifiers, with fixture-based tests that don't need live data. Elm on the frontend is an unusual but principled choice that eliminates a whole class of runtime errors.

The project openly admits it's largely unmaintained — Rosie runs manually once a month, which is a fragile ops model for something meant to provide ongoing oversight. Travis CI badges are dead (Travis stopped free open-source builds in 2021), signaling the CI pipeline has rotted. The tech stack is a 2016-era Python/Django/Elm/DigitalOcean setup with no apparent migration path; the Elm frontend especially will be painful to pick up since Elm's ecosystem has stagnated. Brazil-specific scope limits reuse — the data pipeline is tightly coupled to the Brazilian Chamber of Deputies CSV format, so adapting it for another country's legislature would be a near-rewrite.

View on GitHub → Homepage ↗

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →