AI-Powered Sports Journalism Platform
Sport Scribe is an intelligent sports journalism platform that leverages AI agents to automatically generate high-quality sports articles, game recaps, and analysis from live game data and statistics.
- AI-Powered Content Generation: Basic AI agent framework for content generation (currently in development - basic agents implemented with room for expansion)
- Real-time Game Integration: Connects to sports APIs for live game data and statistics
- Modern Web Platform: Next.js frontend with responsive design and real-time updates
- Football-Focused Platform: Specializing in football (soccer) coverage with comprehensive league support including Premier League, La Liga, Bundesliga, Serie A, and more
- Content Management: Full editorial workflow with drafts, reviews, and publishing
- Analytics Dashboard: Track article performance and user engagement
- Frontend: Next.js 14 (App Router) + TypeScript + HeroUI (@heroui/react) + Tailwind CSS
- Backend: Python FastAPI with OpenAI integration
- Database: Supabase (PostgreSQL) with real-time capabilities
- AI System: AI agent framework (currently in development - basic
agents implemented with room for expansion):
- Data Collector: Gathers game data from sports APIs
- Researcher: Analyzes team and player backgrounds
- Writer: Generates articles with various tones and styles
- Editor: Reviews and improves content quality
- Basic content generation (fact-checking planned for future releases)
- Node.js 18+
- Python 3.11+
- Supabase account
- OpenAI API key
- Python 3.11+ installed
- Node.js 18+ installed
- Git installed
- A code editor (VS Code recommended)
cd ai-backend
python3.11 -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
pip install -r requirements.txt
pip install -r requirements-dev.txt-
Clone the repository
git clone https://github.com/vibing-ai/sport-scribe.git cd sport-scribe -
Set up environment variables
cp env.example .env cp web/env.local.example web/.env.local cp ai-backend/env.example ai-backend/.env
-
Install dependencies
# Web platform cd web && npm install && cd .. # AI backend cd ai-backend && pip install -r requirements.txt && cd ..
-
Initialize database
# Database setup requires Supabase CLI - see deployment/database-setup.md -
Start development servers
# Option 1: Docker Compose docker-compose -f docker-compose.dev.yml up # Option 2: Individual services cd web && npm run dev & cd ai-backend && python main.py &
-
Access the application
- Web Platform: http://localhost:3000
- AI Backend API: http://localhost:8000
- API Docs: http://localhost:8000/docs
For detailed setup instructions, see Getting Started Guide.
sport-scribe/
βββ ai-backend/ # Python AI agent system
β βββ agents/ # AI agent implementations
β βββ tools/ # Sports APIs and data tools
β βββ config/ # Agent configurations
β βββ tests/ # Backend tests
βββ web/ # Next.js web platform
β βββ app/ # App router pages
β βββ components/ # React components
β βββ lib/ # Utilities and integrations
β βββ hooks/ # Custom React hooks
βββ shared/ # Shared schemas and types
β βββ types/ # TypeScript interfaces
β βββ schemas/ # Database and API schemas
β βββ constants/ # Shared constants
βββ docs/ # Project documentation
βββ scripts/ # Build and deployment scripts
Sport Scribe uses a multi-agent architecture where specialized AI agents collaborate to produce high-quality sports content:
- Data Collector β Gathers real-time game data and statistics
- Researcher β Analyzes team history, player backgrounds, and context
- Writer β Generates articles with appropriate tone and style
- Editor β Reviews content for quality, grammar, and readability
- Basic content generation (fact-checking planned for future releases)
- Game recaps and summaries
- Player spotlights and profiles
- Team analysis and previews
- Season reviews and predictions
- Trade news and roster changes
Sport Scribe uses comprehensive quality tools to ensure code excellence:
# Install quality tools (one-time setup)
./scripts/setup-ci-tools.sh
# Run comprehensive quality checks
./scripts/lint-all.sh
# Auto-fix linting issues
./scripts/lint-fix.sh [ai|web|sql|all]
# Type checking
./scripts/type-check.sh
# Testing setup in progress - see CONTRIBUTING.md for current testing
# approach- shellcheck: Shell script linting
- yamllint: YAML file validation
- hadolint: Dockerfile linting
- ajv-cli: JSON schema validation
- sqlfluff: SQL linting and formatting
- ruff: Python linting and formatting (fast)
- mypy: Python type checking
- bandit: Python security analysis
- safety: Python vulnerability scanning
- ESLint: TypeScript/JavaScript linting
- Prettier: Code formatting
# Reset database
supabase db reset
# Apply migrations
supabase db push
# Generate TypeScript types
npm run generate:types- Fork the repository
- Create a feature branch:
git checkout -b feature/amazing-feature - Make your changes and add tests
- Run quality checks:
./scripts/lint-fix.sh - Commit your changes:
git commit -m 'feat: add amazing feature' - Push to the branch:
git push origin feature/amazing-feature - Open a Pull Request
See Contributing Guidelines for detailed information.
- Next.js 14 (App Router)
- TypeScript for type safety
- HeroUI (@heroui/react) for UI components
- Tailwind CSS for styling
- Supabase for database and auth
- Python 3.11+ runtime
- FastAPI for API framework
- Ruff for linting and formatting
- OpenAI for AI model integration
- Supabase for database
- Docker for containerization
- GitHub Actions for CI/CD
- Ruff for Python code quality
- ESLint for TypeScript code quality
- AI Backend: Docker containerized FastAPI service
- Web Platform: Next.js application (Vercel ready)
- Database: Supabase managed PostgreSQL
- CI/CD: GitHub Actions workflows
See Deployment Documentation for detailed instructions.
We welcome contributions! Please see our Contributing Guidelines for details.
This project is licensed under the MIT License - see the LICENSE file for details.
- OpenAI for AI model capabilities
- Supabase for backend infrastructure
- Next.js for frontend framework
- The sports data API providers