Music festival for developers. Stages are environments, bands are services, sound check is CI, mosh pit is load test, backstage is admin panel.
  • JavaScript 100%
Find a file
2026-06-30 11:14:05 +00:00
node_modules/.vite/vitest/da39a3ee5e6b4b0d3255bfef95601890afd80709 test: add e2e tests 2026-06-28 11:09:32 +00:00
src feat(#1): music festival engine — stages, bands, crowd, weather, ASCII festival 2026-06-15 13:42:28 +00:00
tests fix: e2e tests now use CommonJS require for node --test compatibility 2026-06-30 11:14:02 +00:00
package.json feat(#1): music festival engine — stages, bands, crowd, weather, ASCII festival 2026-06-15 13:42:28 +00:00
README.md feat(#1): music festival engine — stages, bands, crowd, weather, ASCII festival 2026-06-15 13:42:28 +00:00

code-music-festival

Music festival for developers. Stages are environments, bands are services, sound check is CI, mosh pit is load test, backstage is admin panel.

Usage

const { Festival, GENRES, WEATHER } = require('./src/festival');

const fest = new Festival('DevFest 2026');

// Book bands (services)
fest.bookBand('The Async Await', GENRES.ELECTRONIC);
fest.bookBand('Null Pointer Exception', GENRES.METAL);
fest.bookBand('Pure Functions', GENRES.JAZZ);

// Sell tickets
fest.sellTicket('Alice', 'vip');
fest.sellTicket('Bob', 'general');
fest.sellTicket('Carol', 'press');

// Assign bands to stages
fest.assignBand('The Async Await', 'main');
fest.assignBand('Null Pointer Exception', 'side');

// Start show
fest.startPerformance('main', 'The Async Await');
fest.endPerformance('main');

console.log(fest.festivalView());
console.log(fest.report());

Stages

  • Main Stage (Production) — 5000 capacity, sound 95%
  • Side Stage (Staging) — 1500 capacity
  • Acoustic Tent (Dev) — 300 capacity
  • DJ Booth (CI/CD) — 800 capacity
  • Underground (Shadow) — 100 capacity, secret features

Genres

  • Metal (energy 95) — Heavy Compute
  • Electronic (energy 85) — Async
  • Punk (energy 90) — Quick Hack
  • Jazz (energy 50) — Functional
  • Hip Hop (energy 75) — API
  • Classical (energy 30) — Legacy
  • Folk (energy 35) — Documentation