Skip to content

JayRichh/riddlit

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

30 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

RiddleHero

Challenge Minds. Build Teams.

Riddlit is a team-based riddle-solving platform that brings teams together through daily challenges, friendly competition, and collaborative problem-solving. Built for peeps looking to engage their teams in fun, intellectual challenges.

๐ŸŽฏ Features

๐Ÿ† Team Competition

  • Team Formation: Create or join teams with colleagues and friends
  • Real-Time Leaderboards: Track individual and team progress with live rankings
  • Streak Tracking: Maintain solving streaks for bonus points and recognition

๐Ÿงฉ Daily Challenges

  • Time-Limited Riddles: New challenges every day, available for 24 hours
  • Multiple Formats: Support for multiple choice and freeform answers
  • One Shot Rule: Single submission per riddle - make it count!

๐ŸŽฎ Engaging Experience

  • Smart Scheduling: Automated riddle delivery on custom timelines
  • Progress Tracking: Detailed statistics and performance metrics
  • Social Features: Team collaboration and friendly competition

๐Ÿš€ Tech Stack

Frontend

  • Next.js 15 - React framework with App Router
  • TypeScript - Type-safe development
  • Tailwind CSS - Utility-first styling
  • Shadcn/ui - Beautiful, accessible components
  • Framer Motion - Smooth animations

Backend

  • Supabase - Postgres database and real-time features
  • Drizzle ORM - Type-safe database operations
  • Server Actions - Modern API patterns
  • Clerk - Authentication and user management

Deployment

  • Vercel - Serverless deployment platform
  • PostgreSQL - Production database on Supabase

๐Ÿ—๏ธ Project Structure

riddlit/
โ”œโ”€โ”€ app/                    # Next.js app router
โ”‚   โ”œโ”€โ”€ (auth)/            # Authentication routes
โ”‚   โ”œโ”€โ”€ (landing)/         # Landing page
โ”‚   โ”œโ”€โ”€ admin/             # Admin dashboard
โ”‚   โ”œโ”€โ”€ dashboard/         # User dashboard
โ”‚   โ”œโ”€โ”€ leaderboard/       # Rankings and statistics
โ”‚   โ”œโ”€โ”€ profile/           # User profile management
โ”‚   โ”œโ”€โ”€ riddles/           # Riddle browsing and solving
โ”‚   โ””โ”€โ”€ teams/             # Team management
โ”œโ”€โ”€ lib/                   # Shared utilities
โ”‚   โ”œโ”€โ”€ actions/           # Server actions
โ”‚   โ”œโ”€โ”€ components/        # React components
โ”‚   โ””โ”€โ”€ hooks/             # Custom hooks
โ”œโ”€โ”€ db/                    # Database schema and config
โ”‚   โ””โ”€โ”€ schema/            # Table definitions
โ”œโ”€โ”€ public/                # Static assets
โ””โ”€โ”€ supabase/             # Database migrations

๐ŸŽฎ How It Works

1. Join or Create a Team

Get your crew together or join an existing team already solving challenges.

2. Solve Daily Riddles

Each day brings a new challenge, available for 24 hours. Miss it, and you'll have to wait for the next one.

3. Compete and Climb

Points, streaks, and rankings create friendly competition. Track your progress on real-time leaderboards.

๐Ÿ”ง Getting Started

Prerequisites

Installation

  1. Clone the repository

    git clone https://github.com/jayrichh/riddlit.git
    cd riddlit
  2. Install dependencies

    npm install
  3. Set up environment variables

    Copy .env.example to .env.local and configure:

    # Database
    DATABASE_URL=your_supabase_database_url
    
    # Authentication
    NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=your_clerk_publishable_key
    CLERK_SECRET_KEY=your_clerk_secret_key
  4. Set up the database

    npm run db:push
  5. Run the development server

    npm run dev

    Open http://localhost:3000 to see the application.

๐Ÿš€ Deployment

Vercel (Recommended)

  1. Connect your repository to Vercel
  2. Configure environment variables in Vercel dashboard
  3. Deploy - Vercel will automatically build and deploy

Database Setup

  1. Create Supabase project
  2. Run migrations: npm run db:push
  3. Configure RLS policies for security

Authentication Setup

  1. Create Clerk application
  2. Configure OAuth providers (optional)
  3. Set up webhooks for user sync

๐Ÿ“Š Admin Features

Content Management

  • Riddle Creation: Add new challenges with rich text editor
  • Team Oversight: Monitor team activities and resolve issues
  • User Management: Handle user roles and permissions

Analytics

  • Engagement Metrics: Track participation and completion rates
  • Performance Insights: Identify popular riddles and team dynamics
  • Export Data: Generate reports for organizational insights

๐Ÿ› ๏ธ Development

Code Structure

  • Server Actions: All database operations use type-safe server actions
  • Component Library: Consistent UI with Shadcn/ui components
  • Type Safety: Full TypeScript coverage with strict mode

Database Schema

  • Users: Authentication and profile data
  • Teams: Team information and membership
  • Riddles: Challenge content and metadata
  • Submissions: User responses and scoring

About

A competitive team-based riddle-solving platform.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •