Skip to content

banodoco/ados

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

ADOS - Event Management Platform

The event platform that celebrates art and open-source AI.

Features

  • 🎨 Multi-Event Support - Manage multiple events with custom questionnaires
  • πŸ” Discord Authentication - Seamless OAuth integration via Supabase
  • πŸ“ Custom Questionnaires - Per-event application forms with multiple question types
  • πŸ‘€ User Dashboard - Track application status and history
  • 🎯 Application Management - Submit and track event applications
  • πŸ“± Responsive Design - Beautiful UI that works on all devices

Tech Stack

  • Framework: Next.js 14 (App Router)
  • Language: TypeScript
  • Styling: Tailwind CSS
  • Authentication: Supabase Auth with Discord OAuth
  • Database: Supabase PostgreSQL
  • Deployment: Railway.com

Getting Started

Prerequisites

  • Node.js 18+
  • A Supabase account
  • A Discord application (for OAuth)
  • Railway account (for deployment)

Installation

  1. Clone the repository
git clone <your-repo-url>
cd ados
  1. Install dependencies
npm install
  1. Set up Supabase
  • Create a new project at supabase.com
  • Go to Project Settings > API to get your URL and anon key
  • Run the migration files in supabase/migrations/ in the SQL Editor
  • (Optional) Run supabase/seed.sql for test data
  1. Set up Discord OAuth
  • Go to Discord Developer Portal
  • Create a new application
  • Add OAuth2 redirect URL: https://[your-project].supabase.co/auth/v1/callback
  • Copy Client ID and Secret
  • In Supabase Dashboard, go to Authentication > Providers
  • Enable Discord provider and add your Client ID and Secret
  1. Configure environment variables

Create a .env.local file:

NEXT_PUBLIC_SUPABASE_URL=your_supabase_project_url
NEXT_PUBLIC_SUPABASE_ANON_KEY=your_supabase_anon_key
NEXT_PUBLIC_APP_URL=http://localhost:3000
  1. Run the development server
npm run dev

Open http://localhost:3000 in your browser.

Database Setup

Running Migrations

  1. Go to your Supabase project dashboard
  2. Navigate to the SQL Editor
  3. Copy the contents of supabase/migrations/001_initial_schema.sql
  4. Paste and run the SQL

Seeding Test Data

  1. In the Supabase SQL Editor
  2. Copy the contents of supabase/seed.sql
  3. Paste and run the SQL
  4. This will create 3 sample events with questions

Project Structure

/ados
β”œβ”€β”€ app/                      # Next.js app directory
β”‚   β”œβ”€β”€ auth/                 # Authentication routes
β”‚   β”œβ”€β”€ events/               # Event pages
β”‚   β”œβ”€β”€ dashboard/            # User dashboard
β”‚   └── success/              # Success page
β”œβ”€β”€ components/               # React components
β”‚   β”œβ”€β”€ ui/                   # UI components
β”‚   β”œβ”€β”€ Hero.tsx              # Landing page hero
β”‚   β”œβ”€β”€ Navigation.tsx        # Top nav
β”‚   β”œβ”€β”€ EventCard.tsx         # Event preview card
β”‚   └── Questionnaire.tsx     # Multi-step form
β”œβ”€β”€ lib/                      # Utility functions
β”‚   β”œβ”€β”€ supabase/             # Supabase clients
β”‚   β”œβ”€β”€ database/             # Database queries
β”‚   β”œβ”€β”€ types.ts              # TypeScript types
β”‚   └── utils.ts              # Helper functions
β”œβ”€β”€ hooks/                    # Custom React hooks
β”œβ”€β”€ supabase/                 # Database migrations & seeds
β”œβ”€β”€ public/                   # Static files
└── middleware.ts             # Next.js middleware

Deployment to Railway

Step 1: Push to GitHub

git init
git add .
git commit -m "Initial commit"
git remote add origin <your-repo-url>
git push -u origin main

Step 2: Deploy to Railway

  1. Go to Railway.app
  2. Click "New Project"
  3. Select "Deploy from GitHub repo"
  4. Select your repository
  5. Railway will auto-detect Next.js

Step 3: Configure Environment Variables

In the Railway dashboard, add these variables:

NEXT_PUBLIC_SUPABASE_URL=https://[project].supabase.co
NEXT_PUBLIC_SUPABASE_ANON_KEY=[your-anon-key]
NEXT_PUBLIC_APP_URL=https://[your-app].up.railway.app
NODE_ENV=production

Step 4: Update OAuth URLs

  1. In Discord Developer Portal, add Railway URL to redirect URLs:

    • https://[your-project].supabase.co/auth/v1/callback
  2. In Supabase Dashboard, add Railway URL to allowed redirect URLs:

    • Authentication > URL Configuration
    • Add: https://[your-app].up.railway.app/auth/callback

Usage

User Flow

  1. Landing Page - Users see the hero section with background video
  2. Events List - Browse available events
  3. Event Details - View event information and questions
  4. Sign In - Authenticate with Discord
  5. Apply - Answer questionnaire for the event
  6. Dashboard - Track application status

Creating New Events

Currently, events must be created directly in the Supabase database. Use the SQL Editor:

INSERT INTO events (name, slug, description, date, location, max_attendees, is_active)
VALUES ('Event Name', 'event-slug', 'Description', '2025-12-01 10:00:00+00', 'Location', 100, true);

Then add questions for the event:

INSERT INTO questions (event_id, question_text, question_type, order_index)
VALUES 
  ('[event-id]', 'Question 1?', 'text', 1),
  ('[event-id]', 'Question 2?', 'textarea', 2);

Managing Applications

Applications can be viewed and managed in the Supabase dashboard:

  1. Go to Table Editor > attendance
  2. View all applications
  3. Update status: pending, approved, rejected, waitlist

Development

Available Scripts

npm run dev          # Start development server
npm run build        # Build for production
npm run start        # Start production server
npm run lint         # Run ESLint
npm run type-check   # Run TypeScript compiler check

Features Roadmap

Phase 2

  • Admin dashboard for event management
  • Email notifications
  • Waitlist functionality
  • Bulk application actions

Phase 3

  • QR code check-in system
  • Attendee networking features
  • Event schedule builder

Phase 4

  • Payment integration
  • Ticketing system
  • Calendar sync
  • Social sharing

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

License

MIT

Support

For issues or questions, please create an issue in the GitHub repository.


Created by banodoco

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published