A web app for majority judgment voting. Voters evaluate each candidate on a scale of mentions (Excellent, Very Good, Good, Fair, Insufficient) and the winner is the one with the best median mention.
The app consumes the Mieux Voter REST API.
- React Router v7 (framework mode, SSR with Vite)
- React 19 + TypeScript (strict)
- PrimeReact 11 + PrimeIcons for UI components (Aura theme)
- SASS + CSS Modules for styling
- better-sqlite3 for local storage (top N results, admin tokens)
- ESLint 9 + Prettier
- Node.js >= 20
- npm
npm installnpm run devThe app will be available at http://localhost:5173.
Run the app with an in-memory mock API (no calls to api.mieuxvoter.fr):
npm run dev:mockThis lets you test the full workflow (create, vote, results, admin) without creating real elections.
npm run build
npm start| Command | Description |
|---|---|
npm run typecheck |
Type checking (route types + tsc) |
npm run lint |
ESLint |
npm run format |
Prettier (write mode) |