Skip to content

cultureic/celoween

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

60 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸŽƒ Celoween - Halloween Contest Platform

Decentralized talent competition platform with gasless voting on Celo

License: MIT Next.js TypeScript Celo


🎯 What is Celoween?

Celoween is a decentralized contest platform where creators can:

  • 🎨 Submit creative Halloween-themed content (music, art, stories)
  • πŸ—³οΈ Vote on submissions using gasless transactions
  • πŸ’° Win prizes in cUSD or CELO tokens
  • πŸ† Claim rewards securely on-chain

Built with Celo's Smart Account infrastructure for a seamless, gas-free user experience.


✨ Key Features

For Participants

  • 🎀 Submit entries to multiple contests
  • πŸ‘» Gasless voting (no transaction fees!)
  • πŸ… Track your submissions and votes
  • πŸ’Έ Claim prize rewards automatically

For Contest Hosts

  • πŸš€ Create custom contests with prize pools
  • πŸ“Š Track submissions and voting in real-time
  • 🎯 Set custom rules and deadlines
  • ⚑ Automated prize distribution

Technical Highlights

  • β›½ Gasless Transactions via Biconomy Smart Accounts
  • πŸ” Wallet Authentication with Privy
  • πŸ“± Responsive Design with Halloween theme
  • 🎨 Animated UI with Lottie animations
  • πŸ’Ύ PostgreSQL Database for off-chain data
  • πŸ”— Smart Contracts on Celo Alfajores

πŸš€ Quick Start

Prerequisites

  • Node.js 20.0.0+
  • PostgreSQL (or Supabase account)
  • Wallet with Alfajores testnet tokens

1. Clone & Install

git clone https://github.com/your-org/celoween.git
cd celoween
npm install

2. Configure Environment

cp .env.example .env.local

Fill in required values (see ENV_CONFIG.md):

  • NEXT_PUBLIC_PRIVY_APP_ID - Get from Privy Dashboard
  • DATABASE_URL - PostgreSQL connection string
  • PRIVY_APP_SECRET - Privy secret key

3. Setup Database

# Generate Prisma client
npx prisma generate

# Run migrations
npx prisma migrate dev --name init

# Seed sample contests
npm run prisma:seed

4. Start Development Server

npm run dev

Visit http://localhost:3000 πŸŽƒ


πŸ“ Project Structure

celoween/
β”œβ”€β”€ app/                      # Next.js 15 App Router
β”‚   β”œβ”€β”€ contests/            # Contest browsing and detail pages
β”‚   β”œβ”€β”€ create/              # Contest creation
β”‚   β”œβ”€β”€ profile/             # User profile and rewards
β”‚   β”œβ”€β”€ api/                 # API endpoints
β”‚   └── globals.css          # Halloween theme styles
β”œβ”€β”€ components/
β”‚   β”œβ”€β”€ contests/            # Contest UI components
β”‚   β”œβ”€β”€ animations/          # Lottie animations
β”‚   └── ui/                  # Reusable UI components
β”œβ”€β”€ contracts/               # Smart contracts (Solidity)
β”‚   β”œβ”€β”€ ContestFactory.sol   # Contest creation
β”‚   β”œβ”€β”€ VotingContract.sol   # Gasless voting
β”‚   └── PrizePool.sol        # Prize distribution
β”œβ”€β”€ prisma/
β”‚   β”œβ”€β”€ schema.prisma        # Database schema
β”‚   └── seed-contests.js     # Sample data
β”œβ”€β”€ lib/                     # Utilities and hooks
└── public/                  # Static assets

🎨 Halloween Design System

Color Palette

Color Hex Usage
πŸŽƒ Pumpkin Orange #FF6B00 Primary, CTAs
πŸ’œ Neon Violet #B873FF Secondary, accents
πŸ–€ Abyss Black #0B0B0C Background
πŸ”² Charcoal Gray #1B1B1E Surfaces
πŸ’š Acid Green #9FFF5B Success, rewards

Typography

  • Display: Creepster (Halloween headers)
  • Body: Inter, Poppins (readability)

Special Effects

  • Glow borders on hover
  • Floating ghost animations
  • Particle effects (bats, pumpkins)

πŸ”§ Available Scripts

# Development
npm run dev                  # Start dev server
npm run build                # Production build
npm run start                # Start production server
npm run lint                 # Run ESLint

# Database
npm run prisma:generate      # Generate Prisma client
npm run prisma:migrate       # Run migrations
npm run prisma:seed          # Seed sample data
npm run prisma:studio        # Open database GUI

# Smart Contracts (after Phase 4)
npm run hardhat:compile      # Compile contracts
npm run hardhat:test         # Test contracts
npm run deploy:alfajores     # Deploy to testnet
npm run verify:alfajores     # Verify on block explorer

πŸ“š Documentation

Document Description
STATUS.md ⭐ Current development status (start here!)
CELOWEEN_QUICKSTART.md Quick start guide for developers
ENV_CONFIG.md Complete environment setup guide
MIGRATION_PROGRESS.md Detailed progress tracking
CLEANUP_REPORT.md Transformation from academy

πŸ› οΈ Tech Stack

Frontend

  • Framework: Next.js 15 (App Router, RSC)
  • Language: TypeScript 5.0
  • Styling: Tailwind CSS 3.4
  • UI: Radix UI, shadcn/ui
  • Animations: Framer Motion, Lottie

Backend

  • Database: PostgreSQL (Supabase)
  • ORM: Prisma 5.0
  • Auth: Privy (Wallet-based)
  • API: Next.js API Routes

Web3

  • Blockchain: Celo Alfajores Testnet
  • Smart Accounts: Biconomy (gasless transactions)
  • Web3 Library: Wagmi + Viem
  • Wallet: Privy (embedded wallets)

DevOps

  • Hosting: Vercel
  • Monitoring: Sentry (optional)
  • CI/CD: GitHub Actions

🌐 Environment Variables

See ENV_CONFIG.md for complete setup guide.

Required:

NEXT_PUBLIC_PRIVY_APP_ID=        # Privy authentication
PRIVY_APP_SECRET=                 # Privy secret
DATABASE_URL=                     # PostgreSQL connection

Phase 7 (Gasless Voting):

NEXT_PUBLIC_BICONOMY_PAYMASTER_API_KEY=  # Biconomy paymaster
NEXT_PUBLIC_BUNDLER_URL=                 # Transaction bundler

Phase 4 (Smart Contracts):

NEXT_PUBLIC_CONTEST_FACTORY_ADDRESS=     # Contest factory
NEXT_PUBLIC_VOTING_CONTRACT_ADDRESS=     # Voting contract
NEXT_PUBLIC_PRIZE_POOL_ADDRESS=          # Prize pool

🚦 Development Status

Current Phase: 3/10 Complete (30%)

βœ… Phase 1: Design System
βœ… Phase 2: Database Schema
βœ… Phase 3: Dependencies
πŸ”œ Phase 4: Smart Contracts
πŸ”œ Phase 5: Pages & Routes
πŸ”œ Phase 6: UI Components
πŸ”œ Phase 7: Web3 Integration
πŸ”œ Phase 8: API Routes
πŸ”œ Phase 9: Animations
πŸ”œ Phase 10: Testing & Deployment

See MIGRATION_PROGRESS.md for detailed status.


🀝 Contributing

We welcome contributions! Here's how:

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add: Amazing feature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

Development Guidelines

  • TypeScript strict mode (no any)
  • ESLint + Prettier configured
  • Conventional commits (feat:, fix:, docs:, etc.)
  • Test new features

πŸ› Troubleshooting

"Missing NEXT_PUBLIC_PRIVY_APP_ID"

# Copy .env.example and fill in values
cp .env.example .env.local

# Restart dev server
npm run dev

"PrismaClient failed to initialize"

npx prisma generate
npx prisma migrate dev

"Cannot connect to database"

# Test connection
npx prisma studio

# Check DATABASE_URL format
# postgresql://user:password@host:port/database

See ENV_CONFIG.md for more troubleshooting.


πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.


πŸ™ Acknowledgments


πŸ“ž Support


πŸŽƒ Ready to Build?

# Start developing
npm run dev

# Check the quick start guide
cat CELOWEEN_QUICKSTART.md

# Review environment setup
cat ENV_CONFIG.md

Happy Haunting! πŸ‘»


Celoween
Decentralized Halloween Talent Show on Celo

Quick Start Β· Configuration Β· Roadmap
# Force rebuild Fri Oct 31 15:10:41 PDT 2025

About

πŸŽƒ Celoween - Decentralized Halloween Talent Show on Celo with gasless voting and prize pools

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published