A lightweight, transparent and accessible planning poker experience built with Web3 in mind. Users can join with a crypto wallet or as a guest, enabling frictionless onboarding while maintaining decentralization principles.
- π Web3 Integration: Connect with MetaMask, WalletConnect, or continue as a guest
- π΄ Multiple Card Types: Fibonacci, T-shirt sizes, and custom number scales
- π₯ Real-time Collaboration: Join rooms with shareable codes
- π Vote Analytics: See vote distribution, averages, and variance
- π¬ Comments & Feedback: Share rationale and discuss estimates
- π¨ Modern UI: Beautiful, responsive design with smooth animations
- β‘ No Gas Fees: Lightweight Web3 experience without transaction costs
- π Transparent Voting: All votes recorded for auditability
- π± Mobile Optimized: Fully responsive design for all devices
- π― Complete UX Flow: All 9 steps from landing to session end
- Node.js 18+
- npm or yarn
-
Clone the repository
git clone https://github.com/your-username/web3-scrum-poker.git cd web3-scrum-poker
-
Install dependencies
npm install
-
Run the development server
npm run dev
-
Open your browser Navigate to http://localhost:3000
The application includes a fully functional demo mode that showcases all features:
- Landing Page: http://localhost:3000
- Interactive Demo: http://localhost:3000/demo
The demo includes sample data and allows you to experience the complete planning poker workflow without Web3 integration.
- Hero section with clear value proposition
- Two primary CTAs: "Connect Wallet" or "Continue as Guest"
- "How It Works" section explaining the process
- Web3 benefits without complexity
- Wallet Sign-in: Connect with MetaMask, WalletConnect, etc.
- Guest Access: Join with a custom nickname or auto-generated name
- ENS resolution for wallet users
- Create Room: Set name, card type, participant limit
- Join Room: Enter 6-character room code
- Shareable room links for easy access
- Vote: Select from Fibonacci, T-shirt sizes, or custom scales
- Reveal: Simultaneously show all votes
- Analyze: View vote distribution and statistics
- Discuss: High variance triggers re-vote suggestions
- Real-time participant status
- Vote progress tracking
- Comments and feedback system
- Session summary and export options
- End session with multiple action options
- Values: 0, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, ?
- Perfect for story point estimation
- Classic agile methodology
- Values: XS, S, M, L, XL, XXL, ?
- Quick relative estimation
- Great for high-level planning
- Values: 1-10, ?
- Simple and straightforward
- Ideal for teams new to estimation
- Frontend: Next.js 14, React 18, TypeScript
- Styling: Tailwind CSS with custom design system
- Animations: Framer Motion for smooth interactions
- UI Components: Lucide React icons
- State Management: React hooks with TypeScript
- Notifications: React Hot Toast
- Utilities: Nanoid for ID generation
- Web3 Ready: Foundation set up for wallet integration
web3-scrum-poker/
βββ app/ # Next.js app directory
β βββ globals.css # Global styles
β βββ layout.tsx # Root layout
β βββ page.tsx # Landing page
βββ components/ # React components
β βββ auth/ # Authentication components
β βββ poker/ # Planning poker components
β βββ providers/ # Web3 providers
β βββ room/ # Room management components
βββ types/ # TypeScript type definitions
βββ plans/ # Project documentation
βββ public/ # Static assets
Create a .env.local
file with the following variables:
# WalletConnect Project ID (get from https://cloud.walletconnect.com/)
NEXT_PUBLIC_WALLETCONNECT_PROJECT_ID=your_project_id_here
# Optional: Custom RPC endpoints
NEXT_PUBLIC_RPC_URL=https://eth-mainnet.alchemyapi.io/v2/your_key
- Ethereum Mainnet
- Polygon
- Optimism
- Arbitrum
- Local development networks
The app uses Tailwind CSS with custom design tokens. Key customization points:
- Colors: Defined in
tailwind.config.js
- Animations: Custom keyframes in
globals.css
- Components: Reusable classes in
globals.css
Add new card types in types/index.ts
:
export const CARD_TYPES: Record<CardType, CardTypeConfig> = {
// ... existing types
custom: {
name: 'Your Custom Type',
values: [1, 2, 3, 4, 5, '?'],
description: 'Your custom description'
}
}
- Push your code to GitHub
- Connect your repository to Vercel
- Add environment variables in Vercel dashboard
- Deploy automatically on push
The app can be deployed to any platform that supports Next.js:
- Netlify
- Railway
- DigitalOcean App Platform
- AWS Amplify
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature
) - Commit your changes (
git commit -m 'feat: add amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request
- Follow Conventional Commits for commit messages
- Use TypeScript for all new code
- Add tests for new features
- Update documentation as needed
This project is licensed under the MIT License - see the LICENSE file for details.
- Web3Modal for wallet connection
- Wagmi for React hooks for Ethereum
- Framer Motion for animations
- Tailwind CSS for styling
- π§ Email: support@web3scrumpoker.com
- π¬ Discord: Join our community
- π Issues: GitHub Issues
- π Documentation: Wiki
Built with β€οΈ for the Web3 community