Add a democratic idea submission and AI synthesis platform

Implement a full-stack application with a React frontend and a Python Flask backend. The backend integrates with an AI agent to filter political ideas for democratic values and synthesize accepted ideas into a collective voice. Includes API endpoints for idea submission, retrieval, and synthesis, along with database persistence.

Replit-Commit-Author: Agent
Replit-Commit-Session-Id: 923ae0e3-a363-4db8-b04a-e8baca2a1330
Replit-Commit-Checkpoint-Type: full_checkpoint
Replit-Commit-Event-Id: 31c5f770-9905-46af-a938-9d40ef3d4404
Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/8af7d2ec-2cc3-4ece-8af3-9f071488d072/923ae0e3-a363-4db8-b04a-e8baca2a1330/Xzzm5QH
Replit-Helium-Checkpoint-Created: true
This commit is contained in:
pironantoine
2026-04-03 16:25:11 +00:00
parent 4d26b95657
commit f9c4073d21
92 changed files with 8199 additions and 23 deletions
@@ -0,0 +1,69 @@
import React from "react";
import { Link } from "wouter";
import { ArrowLeft, Shield, Brain, BookOpen } from "lucide-react";
import { Button } from "@/components/ui/button";
export default function About() {
return (
<div className="min-h-[calc(100vh-4rem)] bg-background flex justify-center py-12 px-4 md:px-8">
<div className="max-w-3xl w-full">
<Link href="/">
<Button variant="ghost" size="sm" className="mb-8 font-mono tracking-widest uppercase text-xs">
<ArrowLeft className="mr-2 h-4 w-4" /> Return to the Agora
</Button>
</Link>
<header className="mb-12 space-y-4">
<h1 className="text-4xl md:text-5xl font-serif font-bold text-primary">About La Voix du Peuple</h1>
<p className="text-xl font-serif text-muted-foreground leading-relaxed">
A digital town square where individual voices forge a collective democratic manifesto, protected by artificial intelligence.
</p>
</header>
<div className="space-y-12">
<section className="space-y-4">
<div className="flex items-center gap-3 text-xl font-bold font-serif border-b border-border/50 pb-2">
<BookOpen className="h-6 w-6 text-primary" />
<h2>The Concept</h2>
</div>
<p className="leading-relaxed text-foreground/90 font-serif text-lg">
Democracy requires both free expression and a shared foundation of values. "La Voix du Peuple" (The Voice of the People) provides a platform where citizens can submit their ideas for the betterment of society. These distinct, fragile voices are woven together in real-time to create a living, breathing synthesisa modern digital pamphlet reflecting our collective aspirations.
</p>
</section>
<section className="space-y-4">
<div className="flex items-center gap-3 text-xl font-bold font-serif border-b border-border/50 pb-2">
<Shield className="h-6 w-6 text-primary" />
<h2>The Democratic Filter</h2>
</div>
<p className="leading-relaxed text-foreground/90 font-serif text-lg mb-4">
Not all speech serves the public good. To protect the integrity of the agora, an AI agent acts as a civic guardian. Every submitted idea is evaluated against core democratic principles before it can enter the collective synthesis.
</p>
<div className="bg-muted/30 p-6 rounded-none border-l-4 border-primary">
<h3 className="font-bold font-mono uppercase tracking-widest text-sm mb-3">Protected Values</h3>
<ul className="space-y-2 font-serif list-disc pl-5">
<li>Respect for human rights and dignity</li>
<li>Equality and anti-discrimination</li>
<li>Constructive civic discourse (no hate speech or violence)</li>
<li>Commitment to democratic processes</li>
</ul>
</div>
<p className="leading-relaxed text-foreground/90 font-serif text-lg mt-4">
If an idea violates these principles, it is rejected with a clear explanation. This transparency ensures the filter remains accountable to the people it serves.
</p>
</section>
<section className="space-y-4">
<div className="flex items-center gap-3 text-xl font-bold font-serif border-b border-border/50 pb-2">
<Brain className="h-6 w-6 text-primary" />
<h2>The Synthesis</h2>
</div>
<p className="leading-relaxed text-foreground/90 font-serif text-lg">
Once accepted, an idea doesn't just sit in a list. A second AI agent constantly reads the stream of accepted ideas and weaves them into a single, cohesive narrative. This textupdated every 15 secondsrepresents the prevailing mood, concerns, and hopes of the populace. It is the voice of the people, distilled.
</p>
</section>
</div>
</div>
</div>
);
}