feat(elections): scaffold elections app + Convex backend
Open
Nobody has claimed this yet.
- Dominant language
- HTML
- Stars
- 33
- Forks
- 104
- Avg merge
- 12h 3m
- Merged PRs (30d)
- 10
Description
Summary
Create `apps/elections` as a Vite + React + TypeScript app that consumes the shared design-system and provision a Convex backend for it.
Part of #1933.
Requirements
- Create `apps/elections` with Vite + React 19 + TypeScript (match `apps/web` config)
- Import the shared design-system tokens as a workspace dependency
- Set up Convex project (dev + prod deployments) and wire `convex/` directory into `apps/elections`
- Configure Convex client provider and a minimal `ping` query to prove end-to-end connectivity
- Add `dev`, `build`, `typecheck`, `lint` scripts that hook into the Turborepo pipeline
- Add `apps/elections/README.md` covering local dev setup
- Commit no secrets; document required env vars (`VITE_CONVEX_URL`, etc.) in `.env.example`
Context
- Epic: #1933
- Depends on monorepo migration issue
- Convex was chosen for reactive DB + functions + scheduled jobs + auth helpers in one platform
Implementation notes
- Use the `convex-backend` plugin skills in this repo for idiomatic schema/function patterns
- Keep routing minimal in this scaffold — `/`, `/vote/:token`, `/admin` as empty placeholders
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Compare apps/web configuration, then scaffold apps/elections with its Vite, React, TypeScript, design-system, and Turborepo integration. Read the Convex backend plugin guidance before wiring convex/, the client provider, and the minimal ping query. Done means dev, build, typecheck, and lint work, local setup is documented in README.md, and required variables are listed in .env.example without secrets.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- react, typescript, vite
- Domain
- backend, build-system, full-stack
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100