A tiny but production-minded full-stack polling app. Create a poll, share the link, vote, see live results.
| Layer | Tech |
|---|---|
| Backend | Node.js + Express + TypeScript |
| Database | PostgreSQL + Prisma |
| Cache | Redis |
| Auth | JWT in httpOnly cookies |
| Frontend | React + TypeScript + Vite |
| UI | shadcn/ui + Tailwind |
| State | Zustand + TanStack Query |
- Register and login
- Create a poll with multiple options
- Share poll via link
- Vote once per poll, change your vote anytime
- Live results with animated progress bars
- Redis cached results
- Dark mode
# 1. Start Docker services (Postgres + Redis + pgAdmin) docker compose up -d # 2. Backend cd backend && npm install cp .env.example .env # fill in values npx prisma migrate dev npm run dev # http://localhost:3000 # 3. Frontend cd frontend && npm install cp .env.example .env # fill in values npm run dev # http://localhost:5173
MIT