The General Championship Tournament Scorecard is a complete end-to-end web application designed to track and manage a multi-sport college festival. It provides an intuitive user interface with playful animations for live score updates, match tracking, and team management across 10 different sports (Cricket, Volleyball, Basketball, Football, Kabaddi, Kho-Kho, Badminton, Chess, Carrom, and Table Tennis).
- Live Scorecards: Real-time, instant score updates powered by Server-Sent Events (SSE).
- Categorized Matches: Easily navigate between Ongoing, Upcoming, and Previous matches.
- Team Roster Management: View squad details, player lists, and captain highlights.
- Admin Dashboard: Secure role-based access control for managing matches and updating scores.
- Playful UI/UX: A mobile-first, cartoon-themed design powered by Tailwind CSS and Framer Motion for bouncy interactions.
- Framework: React 18 with TypeScript
- Routing: Wouter (Lightweight React Router)
- State Management: TanStack React Query (Surgically updated via SSE stream)
- Styling: Tailwind CSS with a custom cartoon-themed design system
- UI Components: shadcn/ui library with Radix UI primitives
- Animations: Framer Motion
- Build Tool: Vite
- Runtime: Node.js with Express
- Language: TypeScript (ESM Modules)
- Real-Time Data: Server-Sent Events (SSE) with persistent connection management
- API Design: RESTful endpoints with Zod payload validation
- Database ORM: Drizzle ORM
- Database: PostgreSQL (with Drizzle Kit for migrations)
- Authentication: Passport.js (OIDC) with
connect-pg-simplefor PostgreSQL-backed session storage
To run this project locally, follow these steps:
-
Clone the repository:
git clone <your-repo-url> cd Championship-Streamer
-
Install dependencies:
npm install
-
Set up environment variables: Create a
.envfile in the root directory and add the required variables:DATABASE_URL=your_postgresql_connection_string SESSION_SECRET=your_session_secret ISSUER_URL=your_oidc_issuer_url
-
Run database migrations:
npm run db:push
-
Start the development server:
npm run dev
The application will be accessible at
http://localhost:5000.
- Create a production build (uses custom esbuild script for server and Vite for client):
npm run build
- Start in production mode:
npm run start
Built for the General Championship Tournament.
## Testing & CI/CD
- Unit Testing: Powered by Vitest and React Testing Library (using happy-dom for a fast, lightweight DOM simulation).
- CI/CD Pipeline: Automated GitHub Actions workflows ensure all tests and type checks pass cleanly on every push, maintaining code reliability.



