Skip to content

mighty840/politiktok

Repository files navigation

PolitikTok Logo

PolitikTok

AI-powered political campaign operations platform

CI Docs Rust Dioxus PostgreSQL Qdrant

Keycloak Tailwind CSS DaisyUI Ollama

License Platform Modules PRs Welcome


About

PolitikTok is a comprehensive GenAI platform for political party operations. It provides 26 integrated modules covering everything from volunteer matching and policy chatbots to opposition research, sentiment monitoring, and campaign compliance -- all powered by local LLMs for data sovereignty.

Why? Political campaigns generate and consume massive amounts of data. PolitikTok brings AI capabilities in-house so parties can operate efficiently without relying on third-party cloud services that may compromise voter data privacy.

Modules

# Module Description
F01 Volunteer Matching AI-powered volunteer-task matching with churn prediction
F02 Policy Chatbot RAG-based Q&A over party documents for citizens
F03 Sentiment Monitor Real-time social media sentiment analysis with spike detection
F04 Campaign Copy Multi-format campaign content generation (email, social, press)
F05 Opposition Research Automated briefing generation and contradiction detection
F06 Canvassing Scripts Dynamic door-to-door conversation scripts
F07 Fundraising Assistant Donor engagement scoring and solicitation drafting
F08 Accountability Engine Manifesto promise tracking with evidence classification
F09 Empathy Simulator Audience persona-based policy impact analysis
F10 Narrative Contagion Message spread modeling and virality prediction
F11 Coalition Detector Coalition tension analysis and stress scoring
F12 Candidate Briefings Auto-generated event and meeting preparation briefs
F13 Call Intelligence Constituent call transcription and theme extraction
F14 Coaching & Debate AI-powered debate rehearsal with pressure simulation
F15 Multilingual Outreach Translation and cultural adaptation of campaign materials
F16 Question Anticipation Predicted voter questions with preparation checklists
F17 Local Issues Hyper-local issue mapping and prioritization
F18 Policy Diff Semantic policy comparison and mutation testing
F19 Faction Mapper Internal faction consensus and tension mapping
F20 Regulatory Monitor Plain-language regulatory change alerts
F21 Media Monitor Media bias and coverage tracking
F22 Disinfo Warning Disinformation early warning system
F23 Compliance Electoral compliance reporting and audit trails
F24 Meeting Summarizer Meeting transcription, summary, and action tracking
F25 Knowledge Base Internal knowledge base Q&A
F26 Admin Panel System administration, user management, module config

Tech Stack

Layer Technology
Frontend Dioxus 0.7.3 (fullstack SSR + hydration), Tailwind CSS 3, DaisyUI 4
Backend Axum 0.8, tower-sessions, Dioxus server functions
Database PostgreSQL 16 (via sqlx)
Vector Store Qdrant (semantic search, RAG)
Auth Keycloak 26+ (OAuth2 + PKCE)
LLM Ollama (OpenAI-compatible API)
Search SearXNG (meta-search for news/social feeds)

Getting Started

Prerequisites

  • Rust 1.89+
  • Dioxus CLI (dx)
  • Docker & Docker Compose (for services)

Setup

# Clone the repository
git clone https://github.com/mighty840/politiktok.git
cd politiktok

# Start external services
docker compose up -d

# Configure environment
cp .env.example .env
# Edit .env with your service URLs

# Run the dev server
dx serve --port 9000

External Services

Service Purpose Default URL
PostgreSQL Relational data store localhost:5433
Qdrant Vector database for RAG localhost:6335
Keycloak Identity provider / SSO localhost:8081
Ollama Local LLM inference localhost:11434
SearXNG Meta-search engine localhost:8889

Project Structure

src/
  app.rs              Root component, Router, auth shell
  lib.rs              Module declarations
  components/         Reusable UI components (sidebar, table, modal, etc.)
  pages/              Full page views for each module
  models/             Shared data models (web + server)
  infrastructure/     Server-side: auth, config, DB, LLM, vector store
  modules/            Per-module server logic and server functions
assets/               Static assets (CSS, icons, logo)
bin/                  Binary entrypoint
docs/                 Documentation (mdBook)

Documentation

Full documentation is available at https://mighty840.github.io/politiktok.

Development

# Check server compilation
cargo check --features server --no-default-features

# Check web/WASM compilation
cargo check --features web --no-default-features

# Run tests
cargo test --features server --no-default-features

# Format code
cargo fmt

# Lint
cargo clippy --features server --no-default-features -- -D warnings

Contributing

Contributions are welcome! Please read the contributing guidelines and submit pull requests.

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes using Conventional Commits
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

License

This project is licensed under the GNU Affero General Public License v3.0 -- see the LICENSE file for details.


Built with Rust, Dioxus, and a commitment to democratic technology.

About

AI-powered political campaign operations platform

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages