Skip to content

emb417/vpc-next

Repository files navigation

vpc-next

vpc-next is a Next.js application designed to provide leaderboards, statistics, and competition data for the Virtual Pinball Chat (VPC) league. It aggregates data from VPC APIs and the Virtual Pinball Spreadsheet (VPS) to display player rankings, weekly competition results, high scores, and detailed player profiles.

Main Technologies

Prerequisites

  • Node.js (v22+ recommended)
  • Environment variables configured in .env (see README.md for required keys).

Building and Running

Development

To run the development server:

npm install
npm run dev

The application will be available at http://localhost:8080.

Production Build

To build the application for production:

npm run build

Production Start

To start the production server:

npm start

The application will be available at http://localhost:80.

Docker Deployment

This project includes Docker support for streamlined deployment.

Build Docker Image

docker build -t vpc-next .

Run Docker Container

docker run -p 80:80 vpc-next

The application will be accessible at http://localhost.

Project Structure

  • app/: Contains the Next.js App Router structure.
    • layout.js: Root layout including global navigation.
    • page.js: Main entry point (Main Dashboard).
    • player/[username]/page.js: Dynamic routes for player profiles.
    • Other directories (competitions, highscores, season, stats) correspond to main site sections.
  • components/: Modular React components grouped by feature.
  • lib/: Business logic and data processing utilities.

Key API Integration

The app integrates with:

  1. VPC API: Provides league data, scores, and channel-specific weeks.
  2. VPS API: Provides metadata about virtual pinball tables and games.
  3. Discord CDN: Used for fetching player avatars.

Contributing

  1. Fork this repo
  2. Create a feature branch: git checkout -b my-new-feature
  3. Commit your changes: git commit -am 'Add some feature'
  4. Push to the branch: git push origin my-new-feature
  5. Create a pull request

About

vpc-next is a Next.js application designed to provide leaderboards, statistics, and competition data for the Virtual Pinball Chat (VPC) league.

Resources

Stars

Watchers

Forks

Contributors