Skip to content

IntermediaDesigns/adventofblender

Repository files navigation

Advent of Blender

A community-driven daily 3D art challenge platform where Blender artists come together to create, learn, and grow. Each day brings a new challenge designed to push creative boundaries and expand Blender skills.

Next.js React TypeScript Tailwind CSS Appwrite

📋 Table of Contents

🎯 Overview

Advent of Blender is a full-stack web application that enables 3D artists to participate in daily Blender challenges. The platform supports multiple campaign types, tracks user progress, hosts competitions through leaderboards, and fosters community engagement through likes, comments, and social features.

Core Concepts

  • Campaigns: Time-bound challenge series (Advent Calendar, Daily Challenges, Tutorials, Events)
  • Challenges: Individual prompts with specific requirements, difficulty levels, and resources
  • Submissions: User-created artwork uploaded in response to challenges
  • Leaderboards: Rankings based on consistency, likes, engagement, and submissions
  • Badges: Achievements earned through participation and milestones

✨ Features

For Users

  • 🔐 Authentication & User Profiles

    • Secure signup/login with Appwrite
    • Customizable profiles with avatars, bios, and social links
    • Profile visibility controls
    • User settings and preferences
  • 🎨 Campaigns & Challenges

    • Multiple campaign types (Advent Calendar, Daily, Tutorial, Event)
    • Calendar-based challenge unlocking
    • Daily challenges with countdown timers
    • Challenge difficulty levels (Beginner, Intermediate, Advanced)
    • Reference images and tutorial resources
    • Hashtag support for social sharing
  • 📸 Submissions

    • Image upload via ImageKit integration
    • Edit and delete submissions
    • External platform links (Instagram, Twitter, ArtStation, Portfolio)
    • Submission approval workflow
    • Featured submissions showcase
  • 🏆 Gamification

    • Streak tracking (daily submission consistency)
    • Badge system with multiple achievement types
    • Multiple leaderboard categories:
      • Consistency (streak-based)
      • Likes (most liked submissions)
      • Engagement (likes + comments)
      • Submissions (total count)
      • Campaigns Completed
  • 💬 Social Features

    • Like submissions
    • Comment system with threading
    • View user profiles
    • Follow activity feed
    • Report inappropriate content
  • 🎯 Dashboard

    • Personal progress tracking
    • Submission history
    • Statistics (streak, likes, views, etc.)
    • Available campaigns
    • Joined campaigns management
  • 🖼️ Gallery

    • Browse all submissions
    • Filter by campaign, challenge, user, date
    • Search functionality
    • Featured submissions highlight
  • 🌓 UI/UX

    • Dark/Light mode support
    • Responsive design (mobile, tablet, desktop)
    • Snowfall effect for December campaigns
    • Smooth animations and transitions
    • Accessibility features

For Administrators

  • 📊 Admin Dashboard
    • User management
    • Submission moderation (approve/reject/feature)
    • Comment moderation (remove inappropriate content)
    • Campaign management
    • Challenge creation and editing
    • Analytics and statistics
    • Report handling

🛠️ Tech Stack

Frontend

Backend & Services

Development Tools

  • Package Manager: npm
  • Linting: ESLint with Next.js config
  • Type Checking: TypeScript strict mode
  • Environment: dotenv

Additional Libraries

  • Snow Effects: react-snowfall 2.3.0
  • Server SDK: node-appwrite 20.3.0

🎯 Key Features Explained

Campaign Types

  1. Advent Calendar: Traditional December calendar (31 days), unlocks daily
  2. Daily Challenge: Ongoing challenges, not tied to calendar dates
  3. Tutorial: Step-by-step learning challenges
  4. Event: Special time-limited events

Streak Calculation

Streaks are calculated based on consecutive calendar days with submissions. The system tracks:

  • Current streak (ongoing consecutive days)
  • Longest streak (all-time record)
  • Consistency rank (leaderboard position)

Badge System

Badges are awarded automatically based on:

  • Participation milestones
  • Achievement thresholds
  • Special events
  • Leaderboard positions

Leaderboard Categories

  1. Consistency: Ranked by current streak
  2. Likes: Total likes received on submissions
  3. Engagement: Combined likes + comments
  4. Submissions: Total submission count
  5. Campaigns Completed: Number of campaigns finished

Image Upload Flow

  1. User selects/upload image
  2. ImageKit authentication token generated
  3. Image uploaded to ImageKit
  4. Optimized image URL returned
  5. Submission created with ImageKit file ID

📄 License

[Add your license information here]

🙏 Acknowledgments


Note: This is a community project. For support, feature requests, or bug reports, please open an issue on GitHub.

About

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors