Ein modernes, lokales Abstimmungssystem mit Python-Backend und Svelte-Frontend.
✅ Admin-GUI (PyQT)
✅ Backend (Python + FastAPI)
✅ Frontend (Svelte)
easyWahl/
├── backend/
│ ├── admin_gui.py # Tkinter Admin-Panel
│ ├── api.py # FastAPI Server
│ ├── database.py # SQLite Manager
│ ├── models.py # Pydantic Models
│ ├── websocket_manager.py # WebSocket Handler
│ ├── requirements.txt # Python Dependencies
│ └── poll.db # SQLite DB (wird automatisch erstellt)
│
└── frontend/
├── src/
│ ├── lib/
│ │ ├── api.js # API Client
│ │ └── stores.js # Svelte Stores
│ ├── routes/
│ │ ├── +page.svelte # Voting Page
│ │ └── results/
│ │ └── +page.svelte # Results Page
│ └── app.css # Global Styles
└── package.json
# Backend-Build herunterladen
wget https://github.com/enl1qhtnd/easyWahl/releases/download/v1.1.0/easyWahl-v1.1.0.exe
# Backend starten
./easyWahl-v1.1.0.exe
Die API läuft dann auf: http://localhost:8000
# easyWahl-Repo herunterladen
git clone https://github.com/enl1qhtnd/easyWahl.git
cd easyWahl
# Docker-Image bauen und Frontend starten
docker compose up -d
Das Frontend ist erreichbar unter: http://localhost:9999
Der Server bietet eine automatische API-Dokumentation:
| Endpoint | Methode | Beschreibung |
|---|---|---|
/api/candidates |
GET | Alle Kandidaten abrufen |
/api/candidates |
POST | Kandidat erstellen |
/api/candidates/{id} |
PUT | Kandidat bearbeiten |
/api/candidates/{id} |
DELETE | Kandidat löschen |
/api/vote |
POST | Stimme abgeben |
/api/vote/check |
POST | Prüfen ob Client abgestimmt hat |
/api/results |
GET | Aktuelle Ergebnisse |
/api/admin/reset |
POST | Alle Stimmen zurücksetzen |
/api/admin/unlock |
POST | Clients entsperren |
/api/export |
GET | Excel-Export |
/ws |
WebSocket | Live-Updates |
Server kann im lokalen Netzwerk freigegeben werden:
0.0.0.0:8000 (alle Interfaces)--host Flag läuft ebenfalls auf allen Interfaceshttp://<SERVER-IP>:9999 (Voting)http://<SERVER-IP>:8000 (API)cd backend
# Virtuelle Umgebung erstellen (empfohlen)
python -m venv venv
source venv/bin/activate # Linux/Mac
# oder
venv\Scripts\activate # Windows
# Dependencies installieren
pip install -r requirements.txt
# Admin-GUI starten
python admin_gui.py
cd frontend
# Dependencies installieren
npm install
# Development-Server starten
npm run dev