Skip to content

Read-only public demo that generates Pokémon sprint names. Forks can enable Firebase persistence.

License

Notifications You must be signed in to change notification settings

akikoiwamizu/sprint-name-generator

Repository files navigation

The Sprint Name Generator (Pokémon-Inspired)

Release License

A public, read-only version of the internal Pokémon-inspired sprint naming tool I built to make sprint planning more engaging for engineering teams.

This demo is designed to be safe to publish: it runs as a static site, loads demo data from JSON, and intentionally disables write operations. Forks can enable persistence by configuring their own Firebase project and rules.

Read-only demo: write features are intentionally disabled in this repository and in the hosted demo

Screenshot

App screenshot

Overview

The app generates sprint names using data from the PokéAPI and generates randomized names directly in the browser.

In this public demo, teams and sprint history are loaded from local JSON files and all write actions (e.g., saving, renaming, deleting) are disabled in this version to prevent misuse. Forks of the project can re-enable them by changing the configuration and rules in Firebase.

Project Structure

sprint-name-generator/
├── public/
│   ├── data/
│   │   ├── teams.json
│   │   └── sprint_history.json
│   ├── config.example.js
│   ├── favicon.png
│   └── index.html
├── docs/
│   └── images/
│       └── app.png
├── .github/
│   ├── ISSUE_TEMPLATE/
│   ├── workflows/
│   ├── dependabot.yml
│   └── pull_request_template.md
├── firebase.rc
├── firebase.json
├── firestore.rules
├── firestore.rules.example
├── LICENSE
└── CHANGELOG.md
└── README.md

Quickstart (no Firebase required)

This repo runs as a static site. Demo mode uses PokéAPI plus local JSON data under public/data/.

  1. Clone the repository

    git clone https://github.com/akikoiwamizu/sprint-name-generator.git
    cd sprint-name-generator
  2. Copy the example config

    cp public/config.example.js public/config.js
  3. Serve locally

    python3 -m http.server 8080

    Then open http://localhost:8080.

  4. Try it out

    You should see a list of demo teams and a sample sprint history.

    • First select a team
    • Click Generate to create a new sprint name
    • Attempting a write action will show a read-only alert

Demo Data Files

The public demo uses static JSON so it can run without a database:

  • public/data/teams.json
  • public/data/sprint_history.json

Forks can replace these files with their own internal data or switch to Firestore for persistence.

Team Mode & Enabling Writes

Team Mode lets you pick a team (for example, “Team Rocket”) so sprint names and sprint history are assigned and grouped by team. In the public demo, teams and history are read from JSON files. In a fork, Team Mode can be backed by Firestore for persistence.

If you want internal persistence, connect your fork to Firebase using the following steps:

  1. Create a Firebase project

  2. Enable Firestore (and Authentication if you want authenticated access)

  3. Add your Firebase web config to public/config.js:

    cp public/config.example.js public/config.js
  4. Enable writes in your fork configuration:

    window.demo = { allowWrites: true, useFirebase: true };
  5. Create/Update Firestore rules

This repo includes two rules files:

  • firestore.rules is intentionally read-only everywhere (default for the public demo)
  • firestore.rules.example is a starter template for forks that enable persistence

To enable Team Mode writes in your Firebase project:

  • Copy firestore.rules.example to firestore.rules

  • Deploy rules:

    firebase deploy --only firestore:rules

Rule requirements by feature:

  • Create team: allow create on /teams/{teamId}
  • Rename team: allow update on /teams/{teamId} for name only
  • Save sprint history: allow create on /sprintHistory/{historyId}

Example Firestore documents (one possible approach):

teams/{teamId} -> { "name": "Team Rocket", "createdAt": "2025-10-01T00:00:00Z" }
sprintHistory/{historyId} -> {
  "pokemonId": 94,
  "pokemonName": "gengar",
  "pokemonSprite": "https://...",
  "pokemonTypes": ["ghost", "poison"],
  "teamId": "team-rocket",
  "teamName": "Team Rocket",
  "selectedAt": "2025-11-05T00:00:00Z"
}

Security Notes

This public repository is intentionally structured to be safe to publish:

  • No production keys are committed
  • public/config.js is local-only (create it from config.example.js)
  • Write operations are blocked by default
  • Demo data lives in static JSON files under public/data/

If you enable Firebase in a fork, use least-privilege rules and require authentication for writes.

Contributing

Issues and PRs are welcome!

  • Bug reports: please include repro steps and screenshots if relevant
  • Feature requests: describe the intended behavior and why it matters
  • Security: if you notice a security concern, please open an issue with details (avoid posting secrets)

Legal Notice

Pokémon is a registered trademark of Nintendo and The Pokémon Company. This project is not affiliated with or endorsed by Nintendo or The Pokémon Company.

This project is non-commercial and uses data from PokéAPI for educational and demonstration purposes.

No official Pokémon media or proprietary assets are included.

License

Released under the MIT License.

About

Read-only public demo that generates Pokémon sprint names. Forks can enable Firebase persistence.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •