- Jury-Voting: react 19.2.7, vite 8.1.4, react-router-dom 7.18.1, lucide-react 1.23.0, fast-check 4.9.0 - Projekt-KIQ-HP: react 19.2.7, vite 8.1.4, react-router-dom 7.18.1, lucide-react 1.23.0, nodemailer 9.0.3 - privat/CV: fast-check 4.9.0, yaml 2.9.0, @types/node 22.20.1 - andreknie.de: nodemailer 8->9 (GHSA-p6gq-j5cr-w38f security fix), vite 8.1.4, eslint 10.6.0, lucide-react 1.23.0 - All projects: 0 vulnerabilities
Jury-Voting
Real-time jury voting application for the UNIKAT Ideenwettbewerb.
Stack
- Frontend: React 19 + Vite
- Backend: Express.js
- Persistence: JSON file-based
- Real-time: Server-Sent Events (SSE)
URLs
- Production: https://unikat.andreknie.de
- Admin: /admin
- Results/Beamer: /results
Development
npm install
npm run dev
Deployment
Push to main triggers GitHub Actions -> SSH to VPS -> systemd restart. Port 3002 on VPS, Caddy reverse proxy.