fediversion/backend/main.py
fullsizemalt 99e5924588
Some checks failed
Deploy Fediversion / deploy (push) Failing after 1s
feat: Sprint 2 - empty states, discovery, attendance stats
- Add EmptyState component with 6 variants
- Add discover.py router with smart filtering
  - GET /discover/shows (year, venue, city, tour filters)
  - GET /discover/years
  - GET /discover/recent
- Add GET /attendance/me/stats (by vertical breakdown)
2025-12-28 16:49:24 -08:00

66 lines
2.1 KiB
Python

from fastapi import FastAPI
import os
from routers import auth, shows, venues, songs, social, tours, artists, preferences, reviews, badges, nicknames, moderation, attendance, groups, users, search, performances, notifications, feed, leaderboards, stats, admin, chase, gamification, videos, musicians, sequences, verticals, canon, on_this_day, discover
from fastapi.middleware.cors import CORSMiddleware
# Feature flags - set to False to disable features
ENABLE_BUG_TRACKER = os.getenv("ENABLE_BUG_TRACKER", "true").lower() == "true"
app = FastAPI()
app.add_middleware(
CORSMiddleware,
allow_origins=["*"], # In production, set this to the frontend domain
allow_credentials=True,
allow_methods=["*"],
allow_headers=["*"],
)
app.include_router(auth.router)
app.include_router(shows.router)
app.include_router(venues.router)
app.include_router(songs.router)
app.include_router(social.router)
app.include_router(tours.router)
app.include_router(artists.router)
app.include_router(preferences.router)
app.include_router(reviews.router)
app.include_router(badges.router)
app.include_router(nicknames.router)
app.include_router(moderation.router)
app.include_router(attendance.router)
app.include_router(groups.router)
app.include_router(users.router)
app.include_router(search.router)
app.include_router(performances.router)
app.include_router(notifications.router)
app.include_router(feed.router)
app.include_router(leaderboards.router)
app.include_router(stats.router)
app.include_router(admin.router)
app.include_router(chase.router)
app.include_router(gamification.router)
app.include_router(videos.router)
app.include_router(musicians.router)
app.include_router(sequences.router)
app.include_router(verticals.router)
app.include_router(canon.router)
app.include_router(on_this_day.router)
app.include_router(discover.router)
# Optional features - can be disabled via env vars
if ENABLE_BUG_TRACKER:
from routers import tickets
app.include_router(tickets.router)
@app.get("/")
def read_root():
return {"Hello": "World"}
@app.get("/healthz")
def health_check():
"""Health check endpoint for monitoring and load balancers"""
return {"status": "healthy"}