Skip to content

devfulcrum/utd-hackathon-pnc-workshop

Repository files navigation

Experimental GenAI project for reimagining life of Product Owners and developers with Generative AI

Several utilities are made available to create bulk user stories for developing an online shopping web application and the supporting APIs. The generator uses interactive inputs (stdin) to collect story templates and produces structured outputs (CSV/JSON/Markdown) for product management, sprint planning, and API design.

Features

  • Interactive, input-driven creation of multiple user stories (no command-line arguments required).
  • Supports fields: title, description, acceptance_criteria, priority, estimate, tags, epic, author, status.
  • Export formats: CSV, JSON, Markdown outlines.
  • Basic validation on required fields.
  • Designed to be extended for integration with issue trackers or API spec generators.

Prerequisites

  • Python 3.8+ installed.
  • Recommended: develop/run inside a virtual environment or use jupyter notebook.
  • Environment variables (set in your OS or .env file):
    • JIRA_API_TOKEN=your_jira_api_token_here
    • JIRA_BASE_URL=https://your-domain.atlassian.net
    • JIRA_EMAIL=your_email
    • OPENAI_API_KEY=your_openai_api_key_here
    • HUGGINGFACE_API_KEY=your_huggingface_api_key_here

Installation

  1. Clone the repository:
    • git clone <repository-url>
  2. Create and activate a virtual environment:
    • python -m venv .venv
    • .venv\Scripts\activate (Windows)
  3. Install dependencies (if any):
    • pip install -r requirements.txt
      Note: this project currently has no required packages; add them to requirements.txt as needed.

Usage

The generator is interactive and asks for inputs. Example assumes a script named generate_stories.py.

Run the script:

  • In a terminal (Windows):
    • python generate_stories.py

Typical interactive session:

  • The script will prompt for:
    • Number of stories to create
    • For each story: title, description, acceptance_criteria, priority (Low/Medium/High), estimate (e.g., 3h, 2sp), tags (comma-separated), epic, author, status (Draft/Ready/In Progress/Done)
  • After input the script will ask for export format:
    • csv, json, or md
  • Output files will be written to an output/ directory (created if missing) with timestamps, e.g. output/user_stories_2025-11-08_150301.csv

Example minimal flow:

  1. Launch python generate_stories.py
  2. Enter 5 when asked for number of stories
  3. Provide details for each story as prompted
  4. Choose csv as export format
  5. Open output/user_stories_<timestamp>.csv

Output formats

  • CSV: easy import into spreadsheets, trackers.
  • JSON: structured data for tooling and API generation.
  • Markdown: human-readable outlines for product docs or PRDs.

Project structure

  • generate_stories.py - main interactive script (create if not present)
  • README.md - this file
  • .gitignore - ignores Python artifacts, virtualenvs, IDE files and Windows system files
  • output/ - generated exports (ignored by .gitignore if configured)
  • tests/ - unit tests for validation and export logic

Tests

  • Use PyCharm or command line to run tests.
  • Example:
    • python -m pytest tests/
  • Tests should validate input parsing, required field enforcement, and export formats.

Contributing

  • Create a feature branch from master.
  • Write tests for new behavior.
  • Keep changes small and focused.
  • Open a pull request describing the purpose and changes.

Notes for Extending

  • Add integrations for GitHub Issues/Jira/Trello export.
  • Add templates for API endpoints derived from user stories.
  • Add a CLI mode for automated pipelines (use argparse for non-interactive runs).

.gitignore

A .gitignore has been added to ignore:

  • Python bytecode and caches
  • Virtual environment directories (.venv, env, venv)
  • Build and distribution directories (build/, dist/)
  • IDE files (.idea/, PyCharm)
  • Windows system files (Thumbs.db, Desktop.ini)

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published