Skip to main content

Build and serve an interactive requirements bubble frontend

Project description

UserRequirements - 需求池前端展示

本仓库在 user_requirements/ 下存放各业务需求(每个需求一个文件夹,包含 info.json需求文档)。

本项目提供一个纯静态的前端页面,将每个需求显示为一个在屏幕中“跳动”的球体:

  • credits 越大,球体越大
  • 点击球体可在右侧(或移动端抽屉)查看需求详情
  • 顶部支持搜索筛选(标题/描述/文档),并显示当前数量与 credits 汇总

目录结构

  • user_requirements/:需求数据源
  • scripts/build_requirements_index.py:将数据源汇总成前端可读取的 JSON
  • frontend/:静态前端(Canvas 动画)

使用方式(macOS / zsh)

作为 PyPI 包使用(推荐给外部用户)

安装:

python3 -m pip install urpool

python3 -m build
python3 -m twine upload dist/urpool-0.1.0-py3-none-any.whl

如果需要抽取 PDF / Excel 文本:

python3 -m pip install "urpool[extractors]"

一条命令完成“构建 + 启动服务”(只需提供 members.jsonuser_requirements):

urpool run --requirements-dir /path/to/user_requirements --members /path/to/members.json --port 5173

多人协同时,负责人手动锁定状态通过内置 /api/locks 同步(服务端 locks.json 持久化)。 请使用 urpool run/serve,不要用 python -m http.server 直接托管静态文件。

仅构建前端产物:

urpool build --requirements-dir /path/to/user_requirements --members /path/to/members.json --output-dir /path/to/frontend

仅启动已有前端目录:

urpool serve --output-dir /path/to/frontend --port 5173

推荐:使用一条命令启动(每次启动前都会更新 user_requirements 构建产物)

/Users/alex/PycharmProjects/UserRequirements/scripts/start_frontend.sh

可选端口:

/Users/alex/PycharmProjects/UserRequirements/scripts/start_frontend.sh 5173

可选:若 需求文档 包含 PDF / Excel,建议先安装抽取依赖:

python3 -m pip install -r /Users/alex/PycharmProjects/UserRequirements/requirements-extractors.txt

未安装时不会中断构建,但 PDF/XLSX/XLS 文本将被跳过并输出 Warning。

  1. 生成前端所需数据:
python3 /Users/alex/PycharmProjects/UserRequirements/scripts/build_requirements_index.py

会生成:frontend/requirements.json

并同步:members.json -> frontend/members.json(用于前端负责人推荐加载)。

更新成员技能后,请重新执行一次该脚本。

  1. 启动一个本地静态服务器(必须使用 HTTP 方式打开,直接双击 index.html 会因为浏览器限制无法 fetch 本地文件):
cd /Users/alex/PycharmProjects/UserRequirements/frontend
python3 -m http.server 5173

如果终端显示 Serving HTTP on :: port 5173 ...(IPv6),浏览器请优先打开:

若你的浏览器/网络环境对 IPv6 访问不友好,可以强制绑定 IPv4:

cd /Users/alex/PycharmProjects/UserRequirements/frontend
python3 -m http.server 5173 --bind 127.0.0.1
  1. 浏览器访问:

打不开时也可以直接试:

数据约定

每个需求文件夹:

  • info.json(示例字段):
    • credits(数字)
    • start_date / end_date(字符串,允许不规范,前端会原样展示)
    • description(字符串)
  • 需求文档
    • 可以是文件目录
    • 若是目录,会递归读取其中所有文本文件并合并

可选改进

  • 需求数量很大时可加入缩放/拖拽、或按标签筛选
  • 可把碰撞物理替换为 Matter.js(更真实但引入依赖)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

urpool-0.1.1-py3-none-any.whl (30.2 kB view details)

Uploaded Python 3

File details

Details for the file urpool-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: urpool-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 30.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.0

File hashes

Hashes for urpool-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 9095243fe21c7cdba6efab10d566e843dc3cb9b20b72d7e2d191d16db9903d01
MD5 2278b679609c0f84f736add68544ba08
BLAKE2b-256 75a713aca0765ed40b8c2ba9b907d68e734aad6e6c635b1074e1975f6857dae5

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page