Consolidates the standalone hackathon backend (16 crates) into a single imphnen-hackathon crate following the existing clean architecture patterns. All endpoints are exposed under /v1/hackathon/ via the gateway. Features migrated: - Auth: Supabase-based signup/login/GitHub OAuth/password reset (own JWT) - Users: profile management with team listing - Teams: CRUD with city validation, deadline enforcement, invite system - Invitations: team member invitations with accept/reject flow - Join Requests: team join request workflow - Chat: team messaging with author/leader delete permissions - Submissions: project submission lifecycle (draft→pending→submitted) - Storage: Supabase Storage file upload endpoints - Certificates: public user certificate data endpoint - Winners: public winners listing - Admin: admin-only CRUD for all entities Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
51 lines
1.7 KiB
Bash
51 lines
1.7 KiB
Bash
RUST_ENV=development
|
|
RUST_LOG=debug
|
|
PORT=4099
|
|
SURREALDB_URL=ws://localhost:8000/rpc
|
|
SURREALDB_USERNAME=root
|
|
SURREALDB_PASSWORD=root
|
|
SURREALDB_NAMESPACE=test
|
|
SURREALDB_DBNAME=test
|
|
ACCESS_TOKEN_SECRET=your-access-token-secret-key-here
|
|
REFRESH_TOKEN_SECRET=your-refresh-token-secret-key-here
|
|
SMTP_EMAIL=your-email@example.com
|
|
SMTP_PASSWORD=your-smtp-password
|
|
SMTP_NAME="Your App Name"
|
|
SMTP_HOST=smtp.gmail.com
|
|
REDISDB_URL=localhost
|
|
FE_URL=http://localhost
|
|
MINIO_ENDPOINT=http://localhost:9000
|
|
MINIO_BUCKET_NAME=default_bucket
|
|
MINIO_ACCESS_KEY=minioadmin
|
|
MINIO_SECRET_KEY=minioadmin
|
|
MINIO_SECURE=false
|
|
|
|
GOOGLE_CLIENT_ID="your_google_client_id"
|
|
GOOGLE_CLIENT_SECRET="your_google_client_secret"
|
|
POOL_SIZE=10
|
|
CONNECT_TIMEOUT=30
|
|
IDLE_TIMEOUT=60
|
|
MAX_LIFETIME=1800
|
|
STATEMENT_TIMEOUT=30000
|
|
IDLE_IN_TRANSACTION_SESSION_TIMEOUT=60000
|
|
SSLMODE=require
|
|
RETRY_ATTEMPTS=3
|
|
RETRY_DELAY=1
|
|
GOOGLE_REDIRECT_URL=http://localhost:8000/api/v1/auth/google/callback
|
|
|
|
# Hackathon feature
|
|
HACKATHON_JWT_SECRET=your-hackathon-jwt-secret-at-least-32-chars
|
|
HACKATHON_JWT_EXPIRY_HOURS=168
|
|
HACKATHON_SUPABASE_URL=https://your-project.supabase.co
|
|
HACKATHON_SUPABASE_ANON_KEY=your-supabase-anon-key
|
|
HACKATHON_SUPABASE_SERVICE_ROLE_KEY=your-supabase-service-role-key
|
|
HACKATHON_STORAGE_BUCKET=hackathon-uploads
|
|
HACKATHON_GITHUB_CLIENT_ID=your-github-client-id
|
|
HACKATHON_GITHUB_CLIENT_SECRET=your-github-client-secret
|
|
HACKATHON_GITHUB_REDIRECT_URL=http://localhost:8080/v1/hackathon/auth/github/callback
|
|
HACKATHON_SMTP_HOST=smtp.gmail.com
|
|
HACKATHON_SMTP_USER=your-email@gmail.com
|
|
HACKATHON_SMTP_PASSWORD=your-smtp-password
|
|
HACKATHON_FROM_EMAIL=noreply@yourdomain.com
|
|
HACKATHON_FRONTEND_URL=https://hackathon.imphnen.dev
|