Bodega Platform monitoring via UptimeRobot Public Dashboard:
Service | Type | Status Badge |
---|---|---|
Frontend | HTTP(s) | |
Backend | HTTP(s) | |
Discord Bot | Heartbeat |
π View live status: uptime dashboard
Bodega Esports Platform is a full-stack web application designed for gaming tournament management. Its frontend is a Next.js-based React application providing a dynamic, component-driven UI. The backend is a Node.js/Express server exposing RESTful APIs. A separate Discord bot component uses Discord.js to facilitate community interactions (e.g., registering users, reporting scores). In a future update, an OCR (Optical Character Recognition) module (e.g., Tesseract) will be added to parse match screenshots and scoreboards automatically.
- SSR React app for players, team managers, and admins
- Leaderboards with season/division/stat filtering
- Auth via Supabase
- Responsive mobile-first layout with custom styling
- Exports to Google Sheets and CSV
- REST API for players, teams, matches, and stats
- Supabase Postgres with full schema and RLS
- Stat normalization, MVP scoring, match result handling
- Export-ready endpoints for leaderboard and standings
- OAuth-ready, supports Discord-based auth
- Slash commands:
/roster
,/submitstats
,/flag
,/broadcast
- OCR screenshot submission via
/submitstats
- Weekly MVP alerts, top scorers, reminders
- Deployed as Render Background Worker from
discord-bot/
- Uses heartbeat ping to Healthchecks.io
- OCR parser for 2K box scores (JPG/PNG)
- Uses PaddleOCR with PIL and fallback to Tesseract
- Exposed via
/api/ocr
FastAPI route - Supports positional parsing, stat cleanup, and stat validation
bodega-esports-platform/
βββ frontend/ # Next.js application
β βββ app/ # Next.js App Router directory
β βββ public/ # Static assets
β βββ components/ # Shared React components
β βββ pages/ # Legacy pages (if any)
β βββ next.config.js # Next.js configuration
β βββ tsconfig.json # TypeScript config
β βββ package.json # Frontend dependencies
βββ backend/ # Node.js/Express server
β βββ src/
β βββ routes/
β βββ package.json
βββ discord-bot/ # Discord bot (Node.js, Discord.js)
β βββ commands/
β βββ index.js
β βββ package.json
βββ ocr/ # Placeholder for future OCR component
βββ package.json # (Workspace or root metadata)
βββ README.md
Prerequisites:
- Node.js v16+ and npm
- Discord bot credentials (token, client ID)
- Environment variables managed via
.env
files in each module
- Navigate to the
frontend
folder:cd frontend
- Install dependencies and start the dev server:
npm install npm run dev
- The app will run at
http://localhost:3000
by default. Configure API URL and other settings via.env.local
, e.g.:NEXT_PUBLIC_API_URL=http://localhost:5000/api
- Open a new terminal and enter the
backend
folder:cd backend
- Install dependencies:
npm install
- Copy and configure environment variables:
cp .env.example .env # then edit .env to set PORT, DATABASE_URL, etc.
- Start the server:
npm run dev
- The API will be available at
http://localhost:5000
(or your configured port).
- In another terminal, go to the
discord-bot
folder:cd discord-bot
- Install dependencies:
npm install
- Copy the environment template and configure:
cp .env.example .env # set DISCORD_TOKEN, CLIENT_ID, GUILD_ID, etc.
- Deploy slash commands (if applicable):
npm run deploy
- Start the bot:
npm start
After these steps, you should have the frontend, backend, and Discord bot running locally. Each component has its own .env
and scripts to manage development and production builds.
- Frontend: Browse to
http://localhost:3000
. Use the UI to view tournaments, teams, and scores. - Backend: Interact with REST endpoints via HTTP clients (e.g.,
curl
, Postman) under/api
, e.g.,GET /api/teams
. - Discord Bot: Invite the bot using its OAuth2 URL, then use configured slash commands in your Discord server (e.g.,
/register
,/report-score
).
- OCR Integration (Placeholder): Add an OCR component (e.g., Tesseract) in
ocr/
to parse text from match screenshots and automate stat entry. - Deployment: Replace badge placeholders with real Railway and Sentry URLs once deployed, and configure CI/CD pipelines accordingly.
GPLv3 β open-source and modifiable with attribution.
Bodega Cats Gaming Club
π bodegacatsgc.gg
π¬ Discord: Bodega Cats Gaming Club