Logo Lanfrica

SONWA560/enations

Type de record:

software
Créateur:
SON
Hôte:
eNations is a web platform built to simulate an "African Nations League" football tournament. Federation representatives register their 23-player squads, whilst an administrator role manages the automated 8-team tournament. Key features include a match simulation engine, automated bracket progression, and AI-generated match commentary. # African Nations League Platform A tournament management system for the African Nations League, featuring AI-powered match commentary, real-time bracket tracking, and federation management. ## Features - **Tournament Management**: Quarter Finals → Semi Finals → Final bracket system - **AI Match Commentary**: GPT-powered structured commentary with key moments, player of match, and tactical analysis - **Federation Registration**: 8 African nations with squad management (23 players each) - **Real-time Leaderboard**: Top goal scorers tracking with live updates - **Email Notifications**: Automated match result notifications via Resend API - **Match Details**: Public pages with full commentary for played matches - **User Onboarding**: Interactive guided tour for first-time users - **Responsive Design**: Built with shadcn/ui and Tailwind CSS ## Getting Started ### Prerequisites - Node.js 18+ - npm/yarn/pnpm - Firebase project with Firestore - OpenAI API key - Resend API key ### Installation 1. Clone the repository: ```bash git clone github.com cd enations ``` 2. Install dependencies: ```bash npm install ``` 3. Set up environment variables (create `.env.local`): ```env NEXT_PUBLIC_FIREBASE_API_KEY=your_firebase_api_key NEXT_PUBLIC_FIREBASE_AUTH_DOMAIN=your_auth_domain NEXT_PUBLIC_FIREBASE_PROJECT_ID=your_project_id NEXT_PUBLIC_FIREBASE_STORAGE_BUCKET=your_storage_bucket NEXT_PUBLIC_FIREBASE_MESSAGING_SENDER_ID=your_sender_id NEXT_PUBLIC_FIREBASE_APP_ID=your_app_id OPENAI_API_KEY=your_openai_api_key RESEND_API_KEY=your_resend_api_key ``` 4. Run the development server: ```bash npm run dev ``` 5. Open localhost in your browser. ## 📋 UCT Assignment Requirements ### Player Rating System - Natural position: 50-100 (inclusive) - Other positions: 0-50 (inclusive) - Team rating = average of players' natural position ratings ### Tournament Structure - 8 teams minimum for Quarter Finals - Automatic bracket progression - Winn …