Skip to content

gbone001/eventayattendancediscord

Repository files navigation

🧠 System Overview Discord + Apollo → Custom Bot → PostgreSQL + CSV → Airflow DAG → Elastio Backup 🤖 Phase 1: Bot Logic — Event Tracker + Attendance Reporter ✅ Tools: discord.py

psycopg2 (PostgreSQL integration)

csv or pandas (for exporting)

🧩 Key Functions: on_message: Detect Apollo event embed and log it

on_raw_reaction_add: Track RSVP reactions by emoji

!attendance <event_id>: Summary per event

!who_is_going <event_id>: List confirmed

!who_didnt_respond <event_id>: Show passive members

!export_attendance <event_id>: Dump full CSV

Would you like me to generate the full Python script as a starting point?

🗃️ Phase 2: PostgreSQL Schema ⚙️ Tables events sql CREATE TABLE events ( id SERIAL PRIMARY KEY, event_id TEXT UNIQUE, name TEXT, timestamp TIMESTAMP, message_id BIGINT ); responses sql CREATE TABLE responses ( id SERIAL PRIMARY KEY, event_id TEXT, username TEXT, user_id BIGINT, status TEXT, responded_at TIMESTAMP ); 🔑 Relationships: event_id links both tables

Add indexes on event_id, user_id for fast lookups

Do you want me to include example Python functions to write to these tables?

🛠️ Phase 3: Airflow Automation 🧬 DAG Logic: fetch_attendance_task: Queries DB → generates CSV

export_csv_task: Writes file to /exports/

elastio_backup_task: Runs backup command

🐍 Python DAG Skeleton: python from airflow import DAG from airflow.operators.python import PythonOperator from airflow.operators.bash import BashOperator from datetime import datetime

with DAG("apollo_attendance_dag", start_date=datetime(2025,7,20), schedule_interval="@daily") as dag:

fetch_attendance = PythonOperator(
    task_id="fetch_attendance",
    python_callable=generate_csv_for_events  # your custom export function
)

backup_csv = BashOperator(
    task_id="backup_csv",
    bash_command="elastio backup ./exports/daily_apollo.csv --tag apollo-$(date +%F)"
)

fetch_attendance >> backup_csv

Want help writing that generate_csv_for_events() function or wiring up PostgreSQL queries for daily events?

Once we’ve got the scaffolding, I can help you:

Add alerts for missing RSVPs

Visualize attendance stats

Connect squad roles from Discord for tagging

Let’s start building it out piece by piece — would you like the full bot code first, the database integration, or the Airflow job scaffold?

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages