Skip to content

Latest commit

 

History

History
74 lines (56 loc) · 3.68 KB

File metadata and controls

74 lines (56 loc) · 3.68 KB

Lustra - Mirror Parliament 🏛️

License: AGPL v3 Flutter Platform

Lustra is a digital public infrastructure designed to track legislation and empower civic oversight. It parses raw government data, uses AI to generate neutral summaries, and provides a civic platform for voting on bills and drafting citizen initiative legislation. It's meant to transform democracies from indirect to direct.

👉 Live: lustra.news


🎯 The Mission

95% of legislation goes unnoticed because legal texts are unreadable for citizens. Media coverage is often biased or focused on outrage. Lustra aims to fix this by:

  1. Direct Source Access: Linking every summary to the raw PDF/XML source.
  2. Context Sterilization: Using LLMs with temperature=0 and strict JSON prompts to strip emotional language.
  3. Civic Projects: Enabling citizens to draft and vote on model laws (like The Human Preservation Act).
  4. FOIA Injection: Converting API failures into legal pressure.

🛠️ Tech Stack

  • Frontend: Flutter (Mobile & Web Monorepo)
  • Backend: Firebase (Auth, Firestore, Cloud Functions) + Google Cloud Run
  • AI Engine: Vertex AI (Gemini Flash) via strictly typed API calls.
  • CI/CD: Codemagic / GitHub Actions

🧩 Architecture & Contributing

The project uses a Service-Oriented Architecture.

  • Note to Contributors: Some legacy code comments are currently in Polish 🇵🇱. We are actively migrating documentation to English. Pull Requests translating comments are highly appreciated and a great way to start contributing!
  • Refactoring: We are in the process of breaking down larger UI monoliths into smaller widgets. Check the [Issues] tab for current tasks.

🔒 Transparency & AI Ethics

We believe in "Radical Transparency".

  • System Prompts: The exact instructions sent to our AI models are public and can be found in the app ("How it works" section).
  • Logs: We will publish raw AI input/output logs for contested bills soon.

🌍 Bring Lustra to Your Country

Lustra is designed to be global. The core logic (AI, UI, Voting) is separated from data sources.

Want to add Canada, Israel, or Ireland? You don't need to build an app. You just need to write a Data Adapter. If you have access to official APIs/JSONs for:

  1. Legislation text (PDF/HTML) + status
  2. MP profiles
  3. Voting records

...you can integrate your country in a few days. We provide the base classes and instructions. Open an Issue titled "New Country: [Name]" to get started!

🚀 Getting Started (For Developers)

Prerequisites

  • Flutter SDK (3.x+)
  • Firebase Project

Setup

  1. Clone the repo.
  2. Create your own Firebase project.
  3. Add firebase_options.dart (use flutterfire configure).
  4. Run:
    flutter pub get
    flutter run

📄 License

This project is licensed under the GNU AGPLv3.

Why AGPL? Lustra is a "Digital Common". We chose the Affero General Public License (AGPL) to prevent private interests or large institutions from "internalizing" this civic infrastructure. If you run a modified version of Lustra as a network service, you must share your source code with the community. This ensures the tools of democracy remain in the hands of the people, forever.

For AI Researchers & Civic Tech Builders

See /docs/ for technical specifications.


Maintained by the Lustra Initiative.