Skip to content

JR33D/secret-santa

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

71 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Secret Santa App

Release Docker Image License CI Conventional Commits code style: prettier

Secret Santa Organize your family's Secret Santa gift exchange with ease!

Secret Santa is a self-hosted web application that helps manage gift exchanges with features like wishlist management, assignment generation with constraints, email notifications, and assignment history tracking.


πŸ“¦ Quick Start

Using Docker (Recommended)

docker run -d \
  -p 3000:3000 \
  -v secret-santa-data:/app/data \
  -e NEXTAUTH_SECRET=$(openssl rand -base64 32) \
  -e ADMIN_PASSWORD=changeme123 \
  ghcr.io/JR33D/secret-santa:latest

Visit http://localhost:3000 and login with:

  • Username: admin
  • Password: changeme123 (change immediately!)

See full installation guide β†’


✨ Features

  • 🎁 Wishlist Management - Create and manage gift wishlists
  • πŸ‘₯ Pool Organization - Separate groups (family, friends, coworkers)
  • 🎲 Smart Assignment - Automated matching with constraint support
  • 🚫 Restrictions - Prevent couples/siblings from drawing each other
  • πŸ“§ Email Notifications - Automated assignment notifications
  • πŸ“Š History Tracking - Visual history of past assignments
  • πŸ” User Management - Secure authentication with role-based access
  • 🐳 Easy Deployment - Docker support with multi-architecture builds

πŸ“– Documentation

Getting Started

For Contributors

Project Information


πŸš€ Installation

Prerequisites

  • Docker and Docker Compose (recommended)
  • OR Node.js 18+ and npm

Option 1: Docker Compose (Production)

  1. Download configuration files

    curl -O https://raw.githubusercontent.com/JR33D/secret-santa/main/docker-compose.prod.yml
    mv docker-compose.prod.yml docker-compose.yml
    curl -O https://raw.githubusercontent.com/JR33D/secret-santa/main/.env.example
    mv .env.example .env
  2. Configure environment

    # Generate secure secret
    echo "NEXTAUTH_SECRET=$(openssl rand -base64 32)" >> .env
    echo "ADMIN_PASSWORD=your_secure_password" >> .env
  3. Start the application

    docker-compose up -d

Option 2: Development Setup

  1. Clone the repository

    git clone https://github.com/JR33D/secret-santa.git
    cd secret-santa
  2. Install dependencies

    npm ci
  3. Configure environment

    cp .env.example .env
    # Edit .env with your configuration
  4. Start development server

    npm run dev

🀝 Contributing

We love contributions! Whether it's bug fixes, new features, or documentation improvements, all contributions are welcome.

Quick Start for Contributors

  1. Fork the repository
  2. Clone your fork
  3. Create a feature branch: git checkout -b feat/amazing-feature
  4. Commit using conventional commits: git commit -m 'feat: add amazing feature'
  5. Push to your branch: git push origin feat/amazing-feature
  6. Open a Pull Request

See our Contributing Guide for detailed instructions.

Good First Issues: Check out issues tagged with "good first issue" to get started!


πŸ› Bug Reports & Feature Requests


πŸ”’ Security

Found a security vulnerability? Please review our Security Policy and report it responsibly. We take security seriously and will respond promptly.


πŸ“Š Project Stats

GitHub stars GitHub forks GitHub issues GitHub pull requests GitHub last commit


πŸ› οΈ Tech Stack

  • Frontend: Next.js 16, React 19, TypeScript, Tailwind CSS
  • Backend: Next.js API Routes, Node.js
  • Database: SQLite
  • Authentication: NextAuth.js
  • Email: Nodemailer
  • Testing: Jest, React Testing Library
  • Deployment: Docker, Docker Compose

πŸ“ License

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


πŸ™ Acknowledgments


πŸ’– Support the Project

If you find this project helpful, please consider:

  • ⭐ Starring the repository
  • πŸ› Reporting bugs and issues
  • πŸ’‘ Suggesting new features
  • πŸ“– Improving documentation
  • 🀝 Contributing code
  • πŸ“’ Sharing with others who might find it useful

Made with ❀️ for easier gift exchanges

Documentation Β· Report Bug Β· Request Feature

About

Application to assist with Family's Secret Santa Tradition.

Resources

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages