MCPSERV.CLUB
Antragsgrün

Antragsgrün

Self-Hosted

Collaborative motion and amendment management for NGOs and parties

Active(95)
124stars
0views
Updated 1 day ago
Antragsgrün screenshot 1
1 / 3

Overview

Discover what makes Antragsgrün powerful

`Antragsgrün` (also known as *motion.tools*) is a PHP‑based web application designed for the full lifecycle of motion management in non‑profit and political organizations. From a developer standpoint, it functions as a **content‑management system (CMS)** with domain‑specific extensions: motion creation, amendment tracking, voting workflows, speaking lists, and multi‑format export. The core idea is to keep the data model simple (motions, amendments, users) while exposing a robust API layer that can be consumed by custom front‑ends or external services.

Language & Runtime

Framework

Database

Front‑End

Overview

Antragsgrün (also known as motion.tools) is a PHP‑based web application designed for the full lifecycle of motion management in non‑profit and political organizations. From a developer standpoint, it functions as a content‑management system (CMS) with domain‑specific extensions: motion creation, amendment tracking, voting workflows, speaking lists, and multi‑format export. The core idea is to keep the data model simple (motions, amendments, users) while exposing a robust API layer that can be consumed by custom front‑ends or external services.

Architecture

  • Language & Runtime: PHP ≥ 8.1 (recommended 8.3) running under FastCGI (php‑fpm).
  • Framework: Custom MVC architecture with a lightweight router; no heavy frameworks like Laravel or Symfony, which keeps the footprint small and the source easily comprehensible.
  • Database: MySQL/MariaDB (the only required DBMS). The schema is deliberately normalized, with separate tables for motions, amendments, users, votes, and audit logs.
  • Front‑End: Vanilla JS with a small set of helper libraries (jQuery, date‑picker). All UI components are rendered server‑side using PHP templates; client‑side interactivity is limited to form validation and AJAX calls for voting or amendment submissions.
  • Container Support: A Docker image (devops-ansible/docker-antragsgruen) is maintained by the community, providing a reproducible environment that bundles PHP‑fpm, Nginx, and MariaDB. This makes CI/CD pipelines straightforward.

Core Capabilities

  • REST‑like API: Endpoints for creating motions, posting amendments, and retrieving voting results. Although not fully documented as a Swagger spec, the source code exposes clear patterns (e.g., /api/motions/{id}) that developers can mimic.
  • Webhooks: Optional POST hooks for voting events and amendment approvals, enabling integration with external notification systems or data warehouses.
  • Export: PDF and CSV generators for motions, amendments, and voting tallies; the PDF engine uses TCPDF (bundled with PHP).
  • Plugin Hooks: The core contains an event dispatcher (EventDispatcher) that allows developers to attach listeners for custom logic (e.g., sending Slack messages when a new amendment is approved).
  • Internationalization: All strings are stored in messages.{lang}.php files, making it trivial to add new locales or override translations.

Deployment & Infrastructure

  • Self‑Hosting: Requires a LAMP/LEMP stack with PHP, MySQL/MariaDB, and either Apache or Nginx. The provided sample configs (nginx.sample.conf, apache.sample.conf) illustrate typical reverse‑proxy setups.
  • Scalability: Stateless PHP processes allow horizontal scaling behind a load balancer. The database can be read‑replicated; however, write contention is minimal due to the low volume of motion edits typical in small to medium organizations.
  • Containerization: The official Docker image exposes environment variables for database credentials and base URL, making it ready for Kubernetes or Docker‑Compose deployments.
  • Backups: Standard MySQL dumps are sufficient; the application also ships a CLI script (cli/backup.php) for automated snapshots.

Integration & Extensibility

  • API: The internal API can be accessed via authenticated sessions (session cookie or token). Developers can build custom front‑ends in React, Vue, or even mobile apps.
  • Webhooks: Enable real‑time notifications; the payload contains JSON with motion IDs, amendment statuses, and user data.
  • Plugins: By extending the PluginInterface, developers can introduce new modules (e.g., a calendar view for speaking lists or an external authentication provider).
  • Customization: The templating system allows overriding layouts and CSS without touching core code. Themes can be swapped by changing the theme configuration.

Developer Experience

  • Configuration: A single JSON file (config/config.json) holds all runtime settings; the web‑based installer populates it automatically.
  • Documentation: The README is comprehensive for end users, while the source code contains inline PHPDoc comments. Community support is active on GitHub Discussions and a dedicated Discord channel.
  • Testing: PHPUnit tests cover the data layer and API endpoints; continuous integration is set up on GitHub Actions.
  • Licensing: MIT‑licensed, allowing unrestricted commercial use and internal modifications.

Use Cases

ScenarioWhy a developer would choose Antragsgrün
NGO conferenceRapid deployment of a motion workflow with minimal configuration.
Political party congressBuilt‑in voting, speaking lists, and amendment tracking; export to PDF for official minutes.
University student unionCustom plugin to integrate with existing authentication (LDAP) and a mobile‑friendly front‑end.
Open‑source governanceAPI hooks allow integration with GitHub PRs or Discord bots for real‑time updates.

Advantages

  • Lightweight: No heavyweight framework overhead, leading to fast page loads and low memory consumption.
  • Domain‑specific: Features like amendment nesting, voting mechanisms, and speaking lists are baked in, saving developers from building them from scratch.
  • Open‑source & Flexible: MIT license plus a modular architecture means you can replace or extend almost any component

Open SourceReady to get started?

Join the community and start self-hosting Antragsgrün today

Weekly Views

Loading...
Support Us
Most Popular

Infrastructure Supporter

$5/month

Keep our servers running and help us maintain the best directory for developers

Repository Health

Loading health data...

Information

Category
other
License
AGPL-3.0
Stars
124
Technical Specs
Pricing
Open Source
Database
MySQL
Docker
Community
Supported OS
LinuxDocker
Author
CatoTH
CatoTH
Last Updated
1 day ago