zockerei / secret-santa

Web application to manage Secret Santa gift exchanges with automated assignments and message sharing
0 stars 0 forks source link

Secret Santa Website

A web application to manage Secret Santa gift exchanges with automated assignments and message sharing

Features

Admin Features

Participant Features

Assignment Logic

Security

Database Structure

Note

Due to the assignment restrictions (no repeat assignments from previous 2 years), there is a minimum required number of participants for the system to work effectively. For smaller groups, the code must be modified to get good results

Environment Variables

Create a file named .env in the instance directory with the following variables:

Setup and Configuration

Setup varies depending how you want to host the application. Example below for a docker-compose that can be used and for hosting it on an unraid NAS.

Docker-Compose

The network br0 is used if you want to use a reverse proxy (npm for example) and host the application on unraid. Normally not needed

services:
  app:
    image: python:3.12-slim
    container_name: secret_santa
    working_dir: /app
    volumes:
      - /mnt/user/appdata/secret-santa:/app
    command: sh -c "pip install --no-cache-dir -r requirements.txt && python app.py"
    build:
      context: /mnt/user/appdata/secret-santa
      dockerfile: Dockerfile
    networks:
      - br0

networks:
  br0:
    external: true

Create a instance/.env file with the following structure:

SECRET_KEY=secret_key (16 characters)
ADMIN_NAME=admin_name
ADMIN_PASSWORD=password
FLASK_RUN_PORT=your_port (default for flask is 5000)
FLASK_ENV=production (or development, testing)
FLASK_DEBUG=0 (or 1 to enable debugging)

Change the config/logging_config.yaml file if needed